finish import script
[koha_gimpoz] / misc / gimpoz / import-images.pl
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4 use autodie;
5 use Data::Dump qw(dump);
6
7 use MARC::Record;
8
9 $|=1;
10 use lib '/srv/koha_gimpoz/';
11
12 BEGIN {
13         $ENV{KOHA_CONF} = '/etc/koha/sites/gimpoz/koha-conf.xml';
14 }
15 use C4::Images;
16 use C4::Biblio;
17 use C4::Items;
18
19 my $source_dir = '/data/gimpoz/import';
20 my $replace = 0;
21 my $frameworkcode = '';
22
23 my $biblionumber;
24
25 open(my $find, '-|', qq{find $source_dir -iname "*.jpg" | sort});
26 while(<$find>) {
27         chomp;
28 #       next unless m/\s*-\s*([a-k])\s*/i ;
29         my $path = $_;
30         warn "# path $path\n";
31         s{^\Q$source_dir\E/*}{};
32         my $uri = $_;
33         my $student = $1 if s{^(.+?)/}{};
34         $student =~ s/^(\d+).*/$1/;
35         my $lokacija = $1 if s{^(.+?)/}{};
36
37         my $inventarni_broj = $_;
38         $inventarni_broj =~ s/\.jpg$//i;
39
40         if ( $inventarni_broj =~ m/\s*-\s*([b-k])\s*$/i ) {
41                 warn "# $biblionumber dio $1\n";
42         } else {
43                 $inventarni_broj =~ m/\s*-\s*a\s*$/i; # remove first -a
44                 my $record = MARC::Record->new;
45                 $record->add_fields(
46                         [ 245, " ", " ", a => $inventarni_broj ],
47                         [ 942, " ", " ", c => "NO" ],
48                         [ 952, " ", " ", a => "GIMPOZ" ],
49                         [ 952, " ", " ", b => "GIMPOZ" ],
50                         [ 952, " ", " ", c => uc(substr($lokacija,0,1)) ],
51                         [ 952, " ", " ", t => $inventarni_broj ],
52                         [ 952, " ", " ", u => $uri ], # FIXME
53                 );
54
55                 warn $record->as_formatted;
56
57                 my $biblioitemnumber;
58                 ($biblionumber,$biblioitemnumber) = AddBiblio($record,$frameworkcode);
59                 warn "# AddBiblio $biblionumber $biblioitemnumber [$inventarni_broj]\n";
60
61                 my ($biblionumber, $biblioitemnumber, $itemnumber)
62                         = AddItemFromMarc($record, $biblionumber);
63
64                 warn "# AddItemFromMarc $biblionumber $biblioitemnumber $itemnumber\n";
65
66         }
67
68         my $image = GD::Image->new($path);
69         warn "# $path ", $image->width,"x",$image->height,$/;
70         PutImage($biblionumber, $image, $replace);
71
72         print dump( $biblionumber, $student, $lokacija, $inventarni_broj ),$/;
73 }
74