#!/bin/bash
groupe=${1:-LREM}
nom=$2
groupe_ref=${3:-GDR}
archive_scrutins=$HOME/archive_scrutins
declare -A groupes cible_votes ref_votes
groupes[LREM]='Groupe La République en Marche'
groupes[LR]='Groupe Les Républicains'
groupes[MODEM]='Groupe du Mouvement Démocrate et apparentés'
groupes[PS]='Groupe Socialistes et apparentés'
groupes[UDI]='Groupe UDI, Agir et Indépendants'
groupes[NG]='Groupe Nouvelle Gauche'
groupes[FI]='Groupe La France insoumise'
groupes[GDR]='Groupe de la Gauche démocrate et républicaine'
groupes[LT]='Groupe Libertés et Territoires'
groupes[NI]='Non inscrits'
for g in ${!groupes[@]}; do
if test "$nom" = $g; then
groupe_ref=$nom
unset nom
break
fi
done
if test -n "${groupes[$groupe]}" -a -n "${groupes[$groupe_ref]}"; then
groupes[$groupe]='/<p class="nomgroupe">'${groupes[$groupe]}' <span class="block topmargin">/,/<div class="TTgroupe topmargin-lg">/'
if test $groupe != $groupe_ref; then
groupes[$groupe_ref]='/<p class="nomgroupe">'${groupes[$groupe_ref]}' <span class="block topmargin">/,/<div class="TTgroupe topmargin-lg">/'
fi
else
echo "groupe \"$groupe\" inconnu:"
for g in ${!groupes[@]}; do
echo "$g -> ${groupes[$g]}"
done
exit 1
fi
tempfile="/dev/shm/scrutin"
typevotes="Pour Contre Abstention Non-votants"
if test -n "$nom"; then
cible="$nom ($groupe)"
result="/dev/shm/comparaisons $nom ($groupe) avec $groupe_ref"
else
cible=$groupe
result="/dev/shm/comparaisons $groupe avec $groupe_ref"
fi
echo -n 'scrutin;date;titre;adoption;' > "$result"
for typevote in $typevotes; do
for g in "$cible" $groupe_ref; do
echo -n "$typevote - $g;" >> "$result"
done
done
echo >> "$result"
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)
test -r "$archive_scrutins" && first=$(tar tf "$archive_scrutins" | tail -1) || first=0
if test $first -lt $last; then
echo "récupération des scrutins n°$((first+1)) à n°$last dans "$archive_scrutins" (à conserver autant que possible)" >&2
for scrutin in $(seq $((first+1)) $last); do
wget -qO- "http://www2.assemblee-nationale.fr/scrutins/detail/(legislature)/15/(num)/$scrutin" \
| sed -r '0,/< *div class="titre-bandeau-bleu +to-print" *>/d; /< *script +type="text\/javascript" *>/,$d' > /dev/shm/$scrutin \
&& tar -C /dev/shm -rf "$archive_scrutins" $scrutin \
&& rm -f /dev/shm/$scrutin \
&& echo -n '.' >&2
done
echo
fi
for scrutin in $(seq $last); do
tar -C /dev/shm -Oxf "$archive_scrutins" $scrutin > $tempfile
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')
date=$(sed -rn 's,^.*<h1 class="">Analyse du scrutin n° '$scrutin'<br/>(.+) </h1>,\1,p' $tempfile)
adoption=$(sed -rn 's,^.*<p class="annonce"><span class="annoncevote">(.+).</span></p>.*$,\1,p' $tempfile)
echo -n "$scrutin;$date;$title;$adoption;" >> "$result"
unset cible_votes[*] ref_votes[*]
for typevote in $typevotes; do
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:+${nom}</br>}")
echo -n "${cible_votes[$typevote]};" >> "$result"
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>')
echo -n "${ref_votes[$typevote]};" >> "$result"
done
echo >> "$result"
done
echo $result
rm $tempfile