#!/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]='/

'${groupes[$groupe]}' /,/

/' if test $groupe != $groupe_ref; then groupes[$groupe_ref]='/

'${groupes[$groupe_ref]}' /,/

/' fi else echo "groupe \"$groupe\" inconnu:" for g in ${!groupes[@]}; do echo "$g -> ${groupes[$g]}" done exit 1 fi tempfile="/dev/shm/scrutin" id_cols="Scrutin Date Titre Adoption" typevotes="Pour Contre Abstention Non-votants" nb_cols=$(wc -w <<< "$id_cols $typevotes $typevotes") if test -n "$nom"; then cible="$nom ($groupe)" else cible=$groupe fi result="comparaisons $cible avec $groupe_ref" mkdir -p "/dev/shm/$result/META-INF" cat > "/dev/shm/$result/META-INF/manifest.xml" << EOmetainf EOmetainf printf 'application/vnd.oasis.opendocument.spreadsheet' > "/dev/shm/$result/mimetype" content="/dev/shm/$result/content.xml" cat > "$content" << EOcontent EOcontent for i in $(seq $nb_cols); do cat >> "$content" << EOcontent EOcontent done cat >> "$content" << EOcontent EOcontent for i in $(seq $nb_cols); do echo "" >> "$content" done echo '' >> "$content" for colonne in $id_cols; do cat >> "$content" << EOcontent $colonne EOcontent done for typevote in $typevotes; do for g in "$cible" $groupe_ref; do cat >> "$content" << EOcontent $typevote - $g EOcontent done done echo '' >> "$content" last=$(wget -qO- 'http://www2.assemblee-nationale.fr/scrutins/liste/(legislature)/15/(type)/TOUS/(idDossier)/TOUS' | sed -rn 's,^.*(.+).*$,\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 printf "." tar -C /dev/shm -Oxf "$archive_scrutins" $scrutin > $tempfile title=$(sed -rn '/

Analyse du scrutin n° '$scrutin'/n; s,^.*

(.+).

,\1,p' $tempfile | sed "s/;//g; s/[ \t][ \t]+/ /g; s/^Scrutin public sur *//; s/^l[ae'] *//") date=$(sed -rn 's,^.*

Analyse du scrutin n° '$scrutin'
(.+)

,\1,p' $tempfile) adoption=$(sed -rn 's,^.*

(.+).

.*$,\1,p' $tempfile) cat >> "$content" << EOcontent $scrutin $date ${title//\'/'} ${adoption//\'/'} EOcontent unset cible_votes[*] ref_votes[*] for typevote in $typevotes; do cible_votes[$typevote]=$(sed -rn "${groupes[$groupe]}p" $tempfile | sed -rn '/

'${typevote}':/,/<.div>/p' | sed 's,,\n,g' | grep -ic " ${nom:+${nom}
}") ref_votes[$typevote]=$(sed -rn "${groupes[$groupe_ref]}p" $tempfile | sed -rn '/

'${typevote}':/,/<.div>/p' | sed 's,,\n,g' | grep -c ' ') cat >> "$content" << EOcontent ${cible_votes[$typevote]} ${ref_votes[$typevote]} EOcontent done echo '' >> "$content" done echo rm $tempfile cat >> "$content" << EOcontent EOcontent ( cd "/dev/shm/$result" && zip -r ../"$result" * > /dev/null 2>&1 && cd .. && rm -fr "$result" ) mv -f "/dev/shm/$result.zip" "$result.ods" echo "$result.ods"