scripts / analyse-votes-AN /
Newer Older
97 lines | 3.853kb
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
1
#!/bin/bash
2

            
3
groupe=${1:-LREM}
recherche sur le nom uniquem...
Sébastien MARQUE authored on 2019-02-18
4
nom=$2
5
groupe_ref=${3:-GDR}
utilsation d'une archive com...
Sébastien MARQUE authored on 2019-02-20
6
archive_scrutins=$HOME/archive_scrutins
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
7

            
modification de noms de vari...
Sébastien MARQUE authored on 2019-02-17
8
declare -A groupes cible_votes ref_votes
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
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
Sébastien MARQUE authored on 2019-02-20
14
groupes[NG]='Groupe Nouvelle Gauche'
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
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...
Sébastien MARQUE authored on 2019-02-20
20
for g in ${!groupes[@]}; do
protection nom
Sébastien MARQUE authored on 2019-03-30
21
    if test "$nom" = $g; then
plus de souplesse dans les p...
Sébastien MARQUE authored on 2019-02-20
22
        groupe_ref=$nom
23
        unset nom
24
        break
25
    fi
26
done
27

            
fixe pb quand groupe cible e...
Sébastien Marque authored on 2019-02-18
28
if test -n "${groupes[$groupe]}" -a -n "${groupes[$groupe_ref]}"; then
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
29
    groupes[$groupe]='/<p class="nomgroupe">'${groupes[$groupe]}' <span class="block topmargin">/,/<div class="TTgroupe topmargin-lg">/'
fixe pb quand groupe cible e...
Sébastien Marque authored on 2019-02-18
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...
Sébastien MARQUE authored on 2019-02-17
33
else
34
    echo "groupe \"$groupe\" inconnu:"
35
    for g in ${!groupes[@]}; do
36
        echo "$g -> ${groupes[$g]}"
37
    done
sortie de script
Sébastien MARQUE authored on 2019-02-17
38
    exit 1
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
39
fi
40

            
41
tempfile="/dev/shm/scrutin"
42

            
43
typevotes="Pour Contre Abstention Non-votants"
44

            
recherche sur le nom uniquem...
Sébastien MARQUE authored on 2019-02-18
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...
Sébastien MARQUE authored on 2019-02-17
48
else
49
    cible=$groupe
50
    result="/dev/shm/comparaisons $groupe avec $groupe_ref"
51
fi
groupe de référence: GDR
Sébastien MARQUE authored on 2019-02-17
52

            
modification de noms de vari...
Sébastien MARQUE authored on 2019-02-17
53
echo -n 'scrutin;date;titre;adoption;' > "$result"
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
54
for typevote in $typevotes; do
correction bug
Sébastien MARQUE authored on 2019-02-20
55
    for g in "$cible" $groupe_ref; do
56
        echo -n "$typevote - $g;" >> "$result"
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
57
    done
58
done
modification de noms de vari...
Sébastien MARQUE authored on 2019-02-17
59
echo >> "$result"
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
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
Sébastien MARQUE authored on 2019-03-30
62
test -r "$archive_scrutins" && first=$(tar tf "$archive_scrutins" | tail -1) || first=0
utilsation d'une archive com...
Sébastien MARQUE authored on 2019-02-20
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...
Sébastien MARQUE authored on 2019-03-30
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...
Sébastien MARQUE authored on 2019-02-20
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...
Sébastien MARQUE authored on 2019-02-17
76
for scrutin in $(seq $last); do
utilsation d'une archive com...
Sébastien MARQUE authored on 2019-02-20
77
    tar -C /dev/shm -Oxf "$archive_scrutins" $scrutin > $tempfile
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
78

            
meilleure présentation du sc...
Sébastien MARQUE authored on 2019-03-31
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; s/^Scrutin public sur *//; s/^l[ae'] *//")
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
80
    date=$(sed -rn 's,^.*<h1 class="">Analyse du scrutin n° '$scrutin'<br/>(.+) </h1>,\1,p' $tempfile)
message adoption complet
Sébastien MARQUE authored on 2019-02-20
81
    adoption=$(sed -rn 's,^.*<p class="annonce"><span class="annoncevote">(.+).</span></p>.*$,\1,p' $tempfile)
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
82

            
modification de noms de vari...
Sébastien MARQUE authored on 2019-02-17
83
    echo -n "$scrutin;$date;$title;$adoption;" >> "$result"
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
84

            
modification de noms de vari...
Sébastien MARQUE authored on 2019-02-17
85
    unset cible_votes[*] ref_votes[*]
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
86
    for typevote in $typevotes; do
fix bug comparaison groupe à...
Sébastien MARQUE authored on 2019-03-30
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 "&nbsp;<b>${nom:+${nom}</br>}")
modification de noms de vari...
Sébastien MARQUE authored on 2019-02-17
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 '&nbsp;<b>')
90
        echo -n "${ref_votes[$typevote]};" >> "$result"
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
91
    done
modification de noms de vari...
Sébastien MARQUE authored on 2019-02-17
92
    echo >> "$result"
ajout script d'analyse des v...
Sébastien MARQUE authored on 2019-02-17
93
done
correction bug
Sébastien MARQUE authored on 2019-02-20
94

            
affiche nom du fichier des r...
Sébastien MARQUE authored on 2019-03-30
95
echo $result
96

            
correction bug
Sébastien MARQUE authored on 2019-02-20
97
rm $tempfile