/[webpac-proto]/common.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /common.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.12 - (hide annotations)
Sun Oct 27 21:20:33 2002 UTC (21 years, 4 months ago) by dpavlin
Branch: MAIN
CVS Tags: HEAD
Changes since 1.11: +6 -3 lines
added debug

1 dpavlin 1.3 #!/usr/bin/perl
2 dpavlin 1.1
3 dpavlin 1.2 #package common;
4    
5 dpavlin 1.1 use strict;
6 dpavlin 1.2
7     $common::install_dir="/local/index";
8     $common::mpsindex="/local/mps-5.3/bin/mpsindex -l 9 -b";
9 dpavlin 1.10 #$common::isis_data="/var/autofs/misc/isis_data/";
10     $common::isis_data="/data/isis_data/";
11 dpavlin 1.2 #$common::isis_data="/mnt/20020606/Isis/Data/"; # doma
12    
13     $common::mps_header="V 5 3
14     L hr-HR
15     F 700+ 1 Autor
16     F 200+ 2 Naslov
17 dpavlin 1.3 F 210+ 3 Izdavanje
18 dpavlin 1.2 F 225 4 Nakladnièka cjelina
19     F 300+ 5 Napomene
20     F 330 6 Sadr¾aj
21     F 464 7 Analitièki radovi
22     F 610 8 Kljuène rijeèi
23     F 675 9 UDK
24     F 686 10 CC
25     F 990 11 Signatura
26     F 991 12 Inventarni broj
27 dpavlin 1.9 F ISN 13 ISBN, ISSN
28 dpavlin 1.3 F MFN 14 MFN
29     F 215+ 15 Materijalni opis
30 dpavlin 1.8 F 101 16 Jezik
31 dpavlin 1.9 F tip 17 Tip graðe
32 dpavlin 1.2 ";
33 dpavlin 1.1
34 dpavlin 1.5 $common::database_cf="/local/search/databases.cf";
35    
36 dpavlin 1.1 #--------------------------------------------------------------------
37     #
38 dpavlin 1.11 # open_data_files($db_dir)
39     #
40     # input: $db_dir - database directory name (e.g. 'ps')
41     # return: path on filesystem to data dir
42    
43     sub open_data_files {
44 dpavlin 1.12 my ($db_dir,$debug) = @_;
45 dpavlin 1.11
46     mkdir "$common::install_dir/$db_dir" if (!-e "$common::install_dir/$db_dir");
47     mkdir "$common::install_dir/$db_dir/data" if (!-e "$common::install_dir/$db_dir/data");
48    
49     my $dir="$common::install_dir/$db_dir/data";
50    
51     open(S,"> $dir/stream") || die "can't open output $dir/stream: $!";
52     open(R,"> $dir/bib") || die "can't open output $dir/bib: $!";
53 dpavlin 1.12 if (! $debug) {
54     open(MPS,"| $common::mpsindex -d $common::install_dir/$db_dir -autokey") || die "can't start MPS indexer $common::mpsindex: $!";
55     } else {
56     open(MPS,"> /tmp/mpsindex") || die "mps: $!";
57     }
58 dpavlin 1.11
59     print S $common::mps_header;
60     print MPS $common::mps_header;
61    
62     return $dir;
63     }
64    
65     #--------------------------------------------------------------------
66     #
67 dpavlin 1.1 # mps_expand(nr,"space separated string");
68     #
69    
70     sub mps_expand {
71     my $nr = shift @_;
72     my $out = "";
73     while (my $fld = shift @_) {
74     if ($fld =~ s/\s*[,;\.!?'"<>\[\]]*\s+/ /g) {
75 dpavlin 1.6 $fld =~ s/></ /g;
76 dpavlin 1.1 foreach my $w (split(/\s+/,$fld)) {
77     # FIX: this should be replaced by stemmer!
78 dpavlin 1.6 # remove chars from beginning of word
79     $w =~ s/^['"<(\[]//g;
80     # remove chars from end of word
81     $w =~ s/[,;\.!?'">)\]]$//g;
82 dpavlin 1.11 # preglasi öÖäÄüÜ
83     if ($w =~ m/[öÖäÄüÜ]/) {
84 dpavlin 1.6 $out .= "W $w $nr\n";
85 dpavlin 1.11 $w =~ s/[öÖ]/oe/g;
86     $w =~ s/[äÄ]/ae/g;
87     $w =~ s/[üÜ]/ue/g;
88 dpavlin 1.6 $out .= "W $w $nr\n";
89 dpavlin 1.7 # Irish Last names
90     } elsif (($nr == 1 || $nr == 2 || $nr == 3 || $nr == 6 || $nr == 7 || $nr == 8) && $w =~ m/^Ma?c([A-Z].+)/) {
91     $out .= "W Mc$1 $nr\n";
92     $out .= "W Mac$1 $nr\n";
93 dpavlin 1.6 } else {
94     $out .= "W $w $nr\n";
95     }
96 dpavlin 1.1 }
97     } else {
98     $out .= "W $fld $nr\n";
99     }
100     }
101 dpavlin 1.11 return $out;
102 dpavlin 1.1 }
103    
104     1;
105    

  ViewVC Help
Powered by ViewVC 1.1.26