Changeset 2562


Ignore:
Timestamp:
Jan 3, 2012, 3:19:04 AM (8 years ago)
Author:
goya
Message:

ajoute fonctions, extras, et mandats à nouveau parseur députés. Reste à débugger les fonctions et intégrer les nvx champs au load

Location:
cpc/trunk/project/batch
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • cpc/trunk/project/batch/common/common.pm

    r2561 r2562  
    2828  return $d2 if (!$d1);
    2929  return $d1 if (!$d2);
    30   if ($d1 =~ /(\d)+\/(\d+)\/(\d+)/) {
     30  if ($d1 =~ /^(\d+)\/(\d+)\/(\d+)$/) {
    3131    $y = $3; $m = $2; $d = $1;
    32     if ($d2 =~ /(\d)+\/(\d+)\/(\d+)/) {
     32    if ($d2 =~ /^(\d+)\/(\d+)\/(\d+)$/) {
    3333      return $d1 if ($3 lt $y || ($3 eq $y && $2 lt $m) || ($3 eq $y && $2 eq $m && $1 lt $d));
    3434      return $d2;
  • cpc/trunk/project/batch/depute/parse_depute_new.pl

    r2561 r2562  
    2222while ($string =~ s/(<li class="contact-adresse">([^<]*)?)(<\/?p>)+(.*<\/li>(<li class="contact-adresse">|<\/ul>))/\1 \4/gi) {}
    2323$string =~ s/(<(div|p|li|abbr|img|a|dt)[ >])/\n\1/ig;
     24$string =~ s/\s*'\s*/'/g;
    2425
    2526if ($display_text) {
     
    2930
    3031my %depute;
     32
     33sub clean_vars {
     34  $encours = $lieu = $organisme = $fonction = "";
     35}
    3136
    3237sub add_mandat {
     
    3439  $end = shift;
    3540  $cause = shift;
    36   $cause =~ s/(remplacement.*)\s*:\s*(.*)\s*$/\1(\2)/i;
    37   $depute{'suppleant_de'} = $2 if ($2);
     41  if ($cause =~ /(remplacement.*)\s*:\s*(.*)\s*$/i) {
     42    $depute{'suppleant_de'} = $2;
     43    $cause =~ s/\s*:\s*(.*)\s*$/ \(\1\)/;
     44  }
    3845  $depute{'premiers_mandats'}{"$start / $end / ".lc($cause)} = 1;
    3946  $depute{'debut_mandat'} = max_date($start,$depute{'debut_mandat'});
    40   $depute{'fin_mandat'} = max_date($end,$depute{'fin_mandat'}) if ($endi !~ /^$/);
     47  $depute{'fin_mandat'} = max_date($end,$depute{'fin_mandat'}) if ($end !~ /^$/ && max_date($end,"20/06/2007") != "20/06/2007");
    4148}
    4249
     
    9198  } elsif ($line =~ /Mandat du ([\d\/]+)( \(.*\))? au ([\d\/]+)( \((.*)\))?/i) {
    9299    add_mandat($1,$3,$5);
     100  } elsif ($line =~ /class="article-title/) {
     101    clean_vars();
     102    $line =~ s/\s*<[^>]+>\s*//g;
     103    if ($line =~ /(Bureau|Commissions?|Missions? (temporaire|d'information)s?|Délégations? et Offices?)/i) {
     104      $encours = "fonctions";
     105    } elsif ($line =~ /(Organismes? extra-parlementaires?|Fonctions? dans les instances internationales ou judiciaires)/i) {
     106      $encours = "extras";
     107    } elsif ($line =~ /(Mandats? loca[lux]+ en cours|Mandats? intercommuna)/i) {
     108      $encours = "autresmandats";
     109    } elsif ($line =~ /^Anciens mandats/i && $line !~ /Assemblée nationale/i) {
     110      $encours = "anciensmandats";
     111    } elsif ($line =~ /(Groupes? d'études?|Groupes? d'amitié)/i) {
     112      $encours = "groupes";
     113      $type_groupe = $line;
     114    }
     115  } elsif ($line =~ /<div id="/i) {
     116    clean_vars();
     117  } elsif ($encours !~ /^$/) {
     118    $line =~ s/\s*<[^>]+>\s*//g;
     119    next if ($line =~ /^$/);
     120    if ($encours =~ /anciensmandats/) {
     121      if ($line =~ /du (\d+\/\d+\/\d+) au (\d+\/\d+\/\d+) \((.*)\)/i) {
     122        $depute{$encours}{"$lieu / $organisme / $3 / $1 / $2"} = 1;
     123      } elsif ($line =~ /^([^(]*) d[elau'\s]+([A-ZÀÉÈÊËÎÏÔÙÛÇ].*)$/) {
     124        $organisme = $1;
     125        $lieu = $2;
     126        $organisme = "Conseil de Paris" if ($lieu =~ s/ \(Département de Paris\)/ (Département)/);
     127      } else {
     128        $lieu = $line;
     129        $organisme = "Communauté d'agglomération";
     130      }
     131    } elsif ($encours =~ /autresmandats/) {
     132      $lieu = $4 if ($line =~ s/^(.*) d([ue](s| la)? |'|e l')([A-ZÀÉÈÊËÎÏÔÙÛÇ].*)$/\1/);
     133      $organisme = ucfirst($4) if ($line =~ s/^(.*) d((u|e la) |e l')(.*)$/\1/);
     134      $fonction = $line;
     135      $organisme = "Conseil municipal" if ($fonction =~ /Maire/i);
     136      $lieu =~ s/, (.*)$/ (\1)/;
     137      $depute{$encours}{"$lieu / $organisme / $fonction"} = 1;
     138    } elsif ($encours =~ /groupes/ && $line =~ s/^\s*(.*) : - //) {
     139      $fonction = $1;
     140      $type = "Groupe d'amitié France-";
     141      $type = "Groupe d'études " if ($type_groupe =~ /étude/i);
     142      foreach $gpe (split / - /, $line) {
     143        $depute{$encours}{"$type$gpe / $fonction"} = 1;
     144      }
     145    } else {
     146      $line =~ s/ (\(ex|depuis le) .*$//;
     147      $fonction = $1 if ($line =~ s/^\s*((\S+\s*){1,3}( du bureau)?) d((u|e la) |e l')(.*)$/\6/);
     148      $organisme = ucfirst($line);
     149      $organisme =~ s/^(Assemblée nationale)/Bureau de l'\1/i;
     150      $depute{$encours}{"$organisme / $fonction"} = 1;
     151    }
    93152  }
    94153}
     
    100159# - multiples sites_web, facebook? tiwtter?
    101160# - find suppléant si existe
    102 #
    103 #CHAMPS :
    104 #fonctions [ "orga minuscule / fonction / ", "" ]
    105 #extras :
    106 #autres_mandats:
    107 #anciens_autres_mandats:
     161# - add gestion mission tempo
     162# - gérer stockage anciens mandats, premiers_mandats, groupes...
    108163
    109164#On récupère le nom de famille à partir des emails
Note: See TracChangeset for help on using the changeset viewer.