ajout script d'analyse des v...
|
1 |
#!/bin/bash |
2 | ||
3 |
groupe=${1:-LREM} |
|
recherche sur le nom uniquem...
|
4 |
nom=$2 |
5 |
groupe_ref=${3:-GDR} |
|
utilsation d'une archive com...
|
6 |
archive_scrutins=$HOME/archive_scrutins |
ajout script d'analyse des v...
|
7 | |
modification de noms de vari...
|
8 |
declare -A groupes cible_votes ref_votes |
ajout script d'analyse des v...
|
9 |
groupes[LREM]='Groupe La République en Marche' |
10 |
groupes[LR]='Groupe Les Républicains' |
|
11 |
groupes[MODEM]='Groupe du Mouvement Démocrate et apparentés' |
|
12 |
groupes[PS]='Groupe Socialistes et apparentés' |
|
13 |
groupes[UDI]='Groupe UDI, Agir et Indépendants' |
|
ajout groupe Nouvelle Gauche
|
14 |
groupes[NG]='Groupe Nouvelle Gauche' |
ajout script d'analyse des v...
|
15 |
groupes[FI]='Groupe La France insoumise' |
16 |
groupes[GDR]='Groupe de la Gauche démocrate et républicaine' |
|
17 |
groupes[LT]='Groupe Libertés et Territoires' |
|
18 |
groupes[NI]='Non inscrits' |
|
19 | ||
plus de souplesse dans les p...
|
20 |
for g in ${!groupes[@]}; do |
protection nom
|
21 |
if test "$nom" = $g; then |
plus de souplesse dans les p...
|
22 |
groupe_ref=$nom |
23 |
unset nom |
|
24 |
break |
|
25 |
fi |
|
26 |
done |
|
27 | ||
fixe pb quand groupe cible e...
|
28 |
if test -n "${groupes[$groupe]}" -a -n "${groupes[$groupe_ref]}"; then |
ajout script d'analyse des v...
|
29 |
groupes[$groupe]='/<p class="nomgroupe">'${groupes[$groupe]}' <span class="block topmargin">/,/<div class="TTgroupe topmargin-lg">/' |
fixe pb quand groupe cible e...
|
30 |
if test $groupe != $groupe_ref; then |
31 |
groupes[$groupe_ref]='/<p class="nomgroupe">'${groupes[$groupe_ref]}' <span class="block topmargin">/,/<div class="TTgroupe topmargin-lg">/' |
|
32 |
fi |
|
ajout script d'analyse des v...
|
33 |
else |
34 |
echo "groupe \"$groupe\" inconnu:" |
|
35 |
for g in ${!groupes[@]}; do |
|
36 |
echo "$g -> ${groupes[$g]}" |
|
37 |
done |
|
sortie de script
|
38 |
exit 1 |
ajout script d'analyse des v...
|
39 |
fi |
40 | ||
41 |
tempfile="/dev/shm/scrutin" |
|
42 | ||
43 |
typevotes="Pour Contre Abstention Non-votants" |
|
44 | ||
recherche sur le nom uniquem...
|
45 |
if test -n "$nom"; then |
46 |
cible="$nom ($groupe)" |
|
47 |
result="/dev/shm/comparaisons $nom ($groupe) avec $groupe_ref" |
|
groupe de référence paramétr...
|
48 |
else |
49 |
cible=$groupe |
|
50 |
result="/dev/shm/comparaisons $groupe avec $groupe_ref" |
|
51 |
fi |
|
groupe de référence: GDR
|
52 | |
modification de noms de vari...
|
53 |
echo -n 'scrutin;date;titre;adoption;' > "$result" |
ajout script d'analyse des v...
|
54 |
for typevote in $typevotes; do |
correction bug
|
55 |
for g in "$cible" $groupe_ref; do |
56 |
echo -n "$typevote - $g;" >> "$result" |
|
ajout script d'analyse des v...
|
57 |
done |
58 |
done |
|
modification de noms de vari...
|
59 |
echo >> "$result" |
ajout script d'analyse des v...
|
60 | |
61 |
last=$(wget -qO- 'http://www2.assemblee-nationale.fr/scrutins/liste/(legislature)/15/(type)/TOUS/(idDossier)/TOUS' | sed -rn 's,^.*<td class="denom">(.+)</td>.*$,\1,p' | head -1) |
|
fix premier scrutin
|
62 |
test -r "$archive_scrutins" && first=$(tar tf "$archive_scrutins" | tail -1) || first=0 |
utilsation d'une archive com...
|
63 | |
64 |
if test $first -lt $last; then |
|
65 |
echo "récupération des scrutins n°$((first+1)) à n°$last dans "$archive_scrutins" (à conserver autant que possible)" >&2 |
|
66 |
for scrutin in $(seq $((first+1)) $last); do |
|
réduction taille de l'archiv...
|
67 |
wget -qO- "http://www2.assemblee-nationale.fr/scrutins/detail/(legislature)/15/(num)/$scrutin" \ |
68 |
| sed -r '0,/< *div class="titre-bandeau-bleu +to-print" *>/d; /< *script +type="text\/javascript" *>/,$d' > /dev/shm/$scrutin \ |
|
utilsation d'une archive com...
|
69 |
&& tar -C /dev/shm -rf "$archive_scrutins" $scrutin \ |
70 |
&& rm -f /dev/shm/$scrutin \ |
|
71 |
&& echo -n '.' >&2 |
|
72 |
done |
|
73 |
echo |
|
74 |
fi |
|
75 | ||
ajout script d'analyse des v...
|
76 |
for scrutin in $(seq $last); do |
utilsation d'une archive com...
|
77 |
tar -C /dev/shm -Oxf "$archive_scrutins" $scrutin > $tempfile |
ajout script d'analyse des v...
|
78 | |
fix filtrage sur titre
|
79 |
title=$(sed -rn '/<h1 class="">Analyse du scrutin n° '$scrutin'/n; s,^.*<h3 class="president-title">(.+).</h3>,\1,p' $tempfile | sed 's/;//g; s/[ \t][ \t]+/ /g') |
ajout script d'analyse des v...
|
80 |
date=$(sed -rn 's,^.*<h1 class="">Analyse du scrutin n° '$scrutin'<br/>(.+) </h1>,\1,p' $tempfile) |
message adoption complet
|
81 |
adoption=$(sed -rn 's,^.*<p class="annonce"><span class="annoncevote">(.+).</span></p>.*$,\1,p' $tempfile) |
ajout script d'analyse des v...
|
82 | |
modification de noms de vari...
|
83 |
echo -n "$scrutin;$date;$title;$adoption;" >> "$result" |
ajout script d'analyse des v...
|
84 | |
modification de noms de vari...
|
85 |
unset cible_votes[*] ref_votes[*] |
ajout script d'analyse des v...
|
86 |
for typevote in $typevotes; do |
recherche sur le nom uniquem...
|
87 |
cible_votes[$typevote]=$(sed -rn "${groupes[$groupe]}p" $tempfile | sed -rn '/<p class="typevote">'${typevote}':/,/<.div>/p' | sed 's,</li>,\n,g' | grep -ic " <b>${nom}</b>") |
modification de noms de vari...
|
88 |
echo -n "${cible_votes[$typevote]};" >> "$result" |
89 |
ref_votes[$typevote]=$(sed -rn "${groupes[$groupe_ref]}p" $tempfile | sed -rn '/<p class="typevote">'${typevote}':/,/<.div>/p' | sed 's,</li>,\n,g' | grep -c ' <b>') |
|
90 |
echo -n "${ref_votes[$typevote]};" >> "$result" |
|
ajout script d'analyse des v...
|
91 |
done |
modification de noms de vari...
|
92 |
echo >> "$result" |
ajout script d'analyse des v...
|
93 |
done |
correction bug
|
94 | |
95 |
rm $tempfile |