source: cpc/trunk/project/batch/documents/parse_metas.pl @ 1362

Last change on this file since 1362 was 1362, checked in by teymour, 11 years ago

Ajout du contenu des documents
+ correction de compute_latest.sh

File size: 4.9 KB
Line 
1#!/usr/bin/perl
2
3$dir = $file = $source = shift;
4$dir =~ s/^([^\/]+)\/.*$/\1/;
5$source =~ s/^[^\/]+\///;
6$source =~ s/http(.?)-/http\1:/;
7$source =~ s/_/\//g;
8$id = $source;
9$id =~ s/^http\:\/\/.*(\d{4})(-[at].*)?\.asp$/\1\2/i;
10$id =~ s/^0+//;
11$num = $annexe = $id;
12$num =~ s/^(\d+)(-[at].*)?$/\1/i;
13$annexe =~ s/^\d+(-[at])?(.*)?$/\2/i;
14
15open(FILE, $file) ;
16@string = <FILE>;
17close FILE;
18
19$string = "@string";
20$string =~ s/<br>\s*\n//gi;
21$string =~ s/&#339;|œ+/oe/g;
22$string =~ s/&#8217;/'/g;
23$string =~ s/&#8211;/-/g;
24$string =~ s/&#8230;/\.\.\./g;
25$string =~ s/<\/?u>//gi;
26$string =~ s/<\/?sup>//gi;
27$string =~ s/<\/?span( style=[^>]+)?>//gi;
28$string =~ s/<!\-\-\w*\-\->//ig;
29$string =~ s/\r//g;
30$string =~ s/&nbsp;/ /gi;
31$string =~ s/ +/ /g;
32$string =~ s/ +,/,/g;
33$string =~ s/, +/,/g;
34$string =~ s/,/, /g;
35$string =~ s/ +/ /g;
36$string =~ s/\s+/ /g;
37$string =~ s/&quot;//g;
38
39$keywords = "";
40#print $string."\n";
41if ($string =~ /<meta name="LEGISLATURE_SESSION"([^>]+)>/) {
42  $line = $1;
43  $line =~ s/^.*content="(\d+)(ème)?[^"]*".*$/\1/;
44  $legislature = $line;
45}
46if ($string =~ /<meta name="AUTEUR"([^>]+)>/) {
47  $line = $1;
48  $line =~ s/^.*content="([^"]+)".*$/\1/;
49  $line =~ s/Premier Ministre Premier ministre/Premier Ministre/;
50  $auteurs = $line;
51}
52if ($string =~ /<meta name="DATE_DEPOT"([^>]+)>/) {
53  $line = $1;
54  $line =~ s/^.*content="([^"]+)".*$/\1/;
55  if ($line =~ /(\d{1,2})\/(\d{2})\/(\d{4})/) {
56$date0 = $3.'-'.$2.'-'.sprintf('%02d', $1);
57  }
58}
59if ($string =~ /<meta name="DATE_PUBLICATION"([^>]+)>/) {
60  $line = $1;
61  $line =~ s/^.*content="([^"]+)".*$/\1/;
62  if ($line =~ /(\d{1,2})\/(\d{2})\/(\d{4})/) {
63$date1 = $3.'-'.$2.'-'.sprintf('%02d', $1);
64  }
65}
66if ($string =~ /<meta name="(DIVISION_DATE_DISTRIBUTION|DATE_LIGNE)"([^>]+)>/ && !$date1) {
67  $line = $1;
68  $line =~ s/^.*content="([^"]+)".*$/\1/;
69  if ($line =~ /(\d{1,2})\/(\d{2})\/(\d{4})/) {
70$date1 = $3.'-'.$2.'-'.sprintf('%02d', $1);
71  }
72}
73if ($string =~ /<meta name="URL_DOSSIER"([^>]+)>/) {
74  $line = $1;
75  $line =~ s/^.*content="[^"]+\/([^"]+)\.asp(#[^"]+)?".*$/\1/;
76  $dossier = $line;
77}
78if ($string =~ /<meta name="TYPE_DOCUMENT"([^>]+)>/) {
79  $line = $1;
80  $line =~ s/^.*content="([^"]+)".*$/\1/;
81  $type0 = $line;
82}
83if ($string =~ /<meta name="INTITULE_CLASSE_ESPECE"([^>]+)>/ && !$type0) {
84  $line = $1;
85  $line =~ s/^.*content="([^"]+)".*$/\1/;
86  $type0 = $line;
87}
88if ($string =~ /<meta name="LIBELLE_ESPECE"([^>]+)>/) {
89  $line = $1;
90  $line =~ s/^.*content="([^"]+)".*$/\1/;
91  if (!($line =~ /^tel quel$/)) {
92$type1 = $line;
93  }
94}
95if ($string =~ /<meta name="TITRE"([^>]+)>/) {
96  $line = $1;
97  $line =~ s/^.*content="([^"]+)".*$/\1/;
98  $line =~ s/\s*\(([n°\s]+)?\d+( rect)?(ifié)?\)\s*$//;
99  $titre = $line;
100}
101if ($string =~ /<meta name="RUBRIQUE"([^>]+)>/) {
102  $line = $1;
103  $line =~ s/^.*content="([^"]+)".*$/\1/;
104  $categorie = $line;
105}
106if ($string =~ /<meta name="DIVISION_INTITULE"([^>]+)>/ && !$categorie) {
107  $line = $1;
108  $line =~ s/^.*content="([^"]+)".*$/\1/;
109  $categorie = $line;
110}
111if ($string =~ /<meta name="SOUS_RUBRIQUE"([^>]+)>/) {
112  $line = $1;
113  $line =~ s/^.*content="([^"]+)".*$/\1/;
114  $keywords .= $line.".";
115}
116if ($string =~ /<meta name="MOTS_CLES"([^>]+)>/) {
117  $line = $1;
118  $line =~ s/^.*content="([^"]+)".*$/\1/;
119  $keywords .= $line.".";
120}
121
122$keywords = lc $keywords;
123$keywords =~ s/^\s+//;
124$keywords =~ s/\s+$//;
125$keywords =~ s/À/à/g;
126$keywords =~ s/É/é/g;
127$keywords =~ s/È/è/g;
128$keywords =~ s/Ê/ê/g;
129$keywords =~ s/Î/î/g;
130$keywords =~ s/Ï/ï/g;
131$keywords =~ s/Ô/ô/g;
132$keywords =~ s/Ù/ù/g;
133$keywords =~ s/Ç/ç/g;
134$keywords =~ s/ +\././g;
135$keywords =~ s/\. +/./g;
136$keywords =~ s/\.+/./g;
137$keywords =~ s/^\.+//g;
138$keywords =~ s/\.+$//g;
139$keywords =~ s/([\s\(,\.])l\./\1L/gi;
140
141if ($categorie =~ /Texte de la commission/i && $id =~ /-a0/) {
142  $categorie = "";
143  $type0 = "Texte de la commission";
144}
145$categorie = lc $categorie;
146$categorie =~ s/^\s+//;
147$categorie =~ s/\s+$//;
148$categorie =~ s/À/à/g;
149$categorie =~ s/É/é/g;
150$categorie =~ s/È/è/g;
151$categorie =~ s/Ê/ê/g;
152$categorie =~ s/Î/î/g;
153$categorie =~ s/Ï/ï/g;
154$categorie =~ s/Ô/ô/g;
155$categorie =~ s/Ù/ù/g;
156$categorie =~ s/Ç/ç/g;
157
158$string =~ s/<[^>]*>//gi;
159$string =~ s/"//gi;
160$string =~ s/[\n\t]/ /gi;
161$string =~ s/  +/ /gi;
162
163$string =~ s/if \(window!= top\) top\.location\.href=location\.href//i;
164$string =~ s/Recherche \| Aide \| Plan du site Accueil \&gt\; Documents parlementaires \&gt\; Les rapports législatifs//i;
165$string =~ s/_____ ASSEMBL'E NATIONALE CONSTITUTION DU 4 OCTOBRE 1958 TREIZIÈME LÉGISLATURE//i;
166$string =~ s/__*//i;
167#print "\n";
168print '{"source": "'.$source.'", "legislature": "'.$legislature.'", "id": "'.$id.'", "numero": "'.$num.'", "annexe": "'.$annexe.'", "date_depot": "'.$date0.'", "date_publi": "'.$date1.'", "auteurs": "'.$auteurs.'", "dossier": "'.$dossier.'", "type": "'.$type0.'", "type_details": "'.$type1.'", "titre": "'.$titre.'", "categorie": "'.$categorie.'", "motscles": "'.$keywords.'", "contenu": "'.$string.'"}'."\n";
Note: See TracBrowser for help on using the repository browser.