open(my $json, '<', 'report_62836_1046_ZavrsniRadovi.json');
{
+ local $/;
undef $/;
my $data = <$json>;
close($json);
}
#warn dump($json->[0]);
-open(my $marc_fh, '>', 'radovi.marc');
+open(my $marc_fh, '>:utf8', 'radovi.marc');
my $stat;
+my $udk;
+while(<DATA>) {
+ chomp;
+ my ($smjer,$udk_broj) = split(/\t+/,$_,2);
+ $udk->{$smjer} = $udk_broj;
+}
+warn "# udk = ",dump($udk);
+
foreach my $rad ( @$json ) {
print dump($rad), "\n";
my $marc = MARC::Record->new;
$marc->encoding( 'UTF-8' );
+ my $year = $1 if $rad->{datumzavrsetka} =~ m/^(\d{4})/;
+ my $jezik = substr($rad->{jezikrada},0,3);
+
$marc->add_fields(
grep { ref($_) eq 'ARRAY' }
- [ '100', '1', '#', a => $rad->{prezime} . ', ' . $rad->{ime}, g => 'JMBAG:' . $rad->{jmbag} ],
- [ '245', '1', '0', a => $rad->{naslovhr} ],
- [ '246', '1',
- $rad->{nasloven} =~ m/The / ? 4 :
- $rad->{nasloven} =~ m/A / ? 2 : ' ' # FIXME?
- , a => $rad->{nasloven}, i => 'Naslov na engleskom: '
+ [ '003', 'HR-ZaFER' ],
+ [ '008', '160221s'.$year.' ci ||||| m||| 00| 0 '.$jezik.' d' ],
+ [ '035', ' ', ' ', a => '(HR-ZaFER)' . 'rbrzad' . $rad->{rbrzad} ],
+ [ '040', ' ', ' ', a => 'HR-ZaFER', b => 'hrv', c => 'HR-ZaFER', e => 'ppiak' ],
+ #[ '080', ' ', ' ', a => $udk->{ $rad->{smjer} } ],
+ #[ '100', '1', '#', a => $rad->{prezime} . ', ' . $rad->{ime}, g => 'JMBAG:' . $rad->{jmbag} ],
+ [ '100', '1', '#', a => $rad->{prezime} . ', ' . $rad->{ime} ],
+ [ '245', '1', '0',
+ a => $rad->{naslovhr} . ' :',
+ b =>
+ $rad->{studij} =~ m/^preddiplomski/ ? 'završni rad /' :
+ $rad->{studij} =~ m/^diplomski/ ? 'diplomski rad /' : '',
+ c => $rad->{ime} . ' ' . $rad->{prezime} . '.'
],
+ [ '246', '1', ' '
+ # $rad->{nasloven} =~ m/The / ? 4 :
+ # $rad->{nasloven} =~ m/A / ? 2 : '0' # FIXME?
+ , a => $rad->{nasloven}, i => 'Naslov na engleskom: '
+ ],
+ [ '260', ' ', ' ', a => 'Zagreb,', b => substr($rad->{ime},0,1) . '. ' . $rad->{prezime} . ',', c => substr($rad->{datumzavrsetka},0,4) . '.' ],
$rad->{'brojstranica'} ? [ '300', '#', '#', a => $rad->{'brojstranica'} . ' str. ;', c => '30 cm' ] : '',
- [ '502', '#', '#', b => $rad->{studij} . ' studij', c => 'Fakultet elektrotehnike i računarstva u Zagrebu', g => 'smjer: ' . $rad->{smjer}, g => 'šifra smjera: ' . $rad->{sifsmjer}, d => $rad->{datumzavrsetka} ],
+ [ '502', '#', '#', b => $rad->{studij} . ' studij', c => 'Fakultet elektrotehnike i računarstva u Zagrebu', g => 'smjer: ' . $rad->{smjer} . ', ' . 'šifra smjera: ' . $rad->{sifsmjer} . ', ' . 'datum predaje: ' . $rad->{datumpredaje} . ', ' . 'datum završetka: ' . $rad->{datumzavrsetka} ],
$rad->{sazetakhr} ? [ '520', '3', '#', a => 'Sažetak na hrvatskom: ' . $rad->{sazetakhr} ] : '',
$rad->{sazetaken} ? [ '520', '3', '#', a => 'Sažetak na engleskom: ' . $rad->{sazetaken} ] : '',
- $rad->{keywords} ? [ '653', '#', '#', map { ( a => $_ ) } split(/;\s*/, $rad->{keywords} ) ] : '',
- $rad->{keywords_en} ? [ '653', '#', '#', map { ( a => $_ ) } split(/;\s*/, $rad->{keywords_en}) ] : '',
+ $rad->{keywords} ? [ '653', ' ', '1', map { ( a => $_ ) } split(/;\s*/, $rad->{keywords} ) ] : '',
+ $rad->{keywords_en} ? [ '653', ' ', '1', map { ( a => $_ ) } split(/;\s*/, $rad->{keywords_en}) ] : '',
+ #[ '700', '1', '#', a => $rad->{prezmentor} . ', ' . $rad->{imementor}, 4 => 'ths', g => 'ID:' . $rad->{oznmentor} ],
[ '700', '1', '#', a => $rad->{prezmentor} . ', ' . $rad->{imementor}, 4 => 'ths' ],
- $rad->{prezmentor2} ? [ '700', '1', '#', a => $rad->{prezmentor2} . ', ' . $rad->{imementor2}, 4 => 'ths' ] : ''
+ $rad->{prezmentor2} ? [ '700', '1', '#', a => $rad->{prezmentor2} . ', ' . $rad->{imementor2}, 4 => 'ths', g => 'ID:' . $rad->{oznmentor2} ] : '',
+ [ '942', ' ', ' ',
+ c =>
+ $rad->{studij} =~ m/^preddiplomski/ ? 'Z' :
+ $rad->{studij} =~ m/^diplomski/ ? 'Y' : ''
+ ],
+ [ '952', ' ', ' ',
+ a => 'SRE', b => 'SRE', c => 'KF',
+ y =>
+ $rad->{studij} =~ m/^preddiplomski/ ? 'Z' :
+ $rad->{studij} =~ m/^diplomski/ ? 'Y' : ''
+ ]
+
);
print $marc_fh $marc->as_usmarc;
($recordid, $biblioitemnumber) = AddBiblio($marc_record, $framework);
=cut
+
+__DATA__
+Automatika 681.5
+Elektroenergetika 631.31
+Elektroničko i računalno inženjerstvo 621.37+621.391+004.02/.05
+Elektronika 621.38
+Elektrotehnički sustavi i tehnologija 621.3
+Obradba informacija 004.7/.9+621.397
+Programsko inženjerstvo i informacijski sustavi 004.4+004.6/.7
+Računalno inženjerstvo 004.4/.5+004.03/.05
+Računarska znanost 004.2/.3+004.45+004.8/.9
+Radiokomunikacijske tehnologije 621.396
+Telekomunikacije i informatika 621.391/.396