This bot will periodically update my graphs of opinion poll data for Norwegian elections with new data from PollOfPolls. Examples of such plots (made by User:Amaurea) can be found here [1].

  • Operator: Amaurea (talk)
  • Tasks: Periodic uploads of updated graphs of opinion polling data
  • Operation: Automatic
  • When: Daily
  • Maximum edit rate: 12/minute (but will only upload/overwrite 10-20 (currently 12) per day
  • Language: Python

Source code edit

The bot has 3 parts. The first is an overall driver script that fetches the raw data and then calls the plotting and uploading parts:

  
wget -O tmp/gallup.json http://www.pollofpolls.no/api/gallup.php
wget -O storting.csv 'http://www.pollofpolls.no/lastned.csv?tabell=gallupsnitttabell&antall=0&type=riks&int=m&kommuneid=0&start=1950-01-01&slutt=2100-01-01'
./csv2table storting.csv > storting.txt
./json2table gallup.json > gallup.txt
gnuplot storting.gpi
gnuplot storting_errs.gpi
# Make the svgs palatable to wikipedia
for i in storting.svg storting_blocks.svg storting_small.svg; do
  sed 's/ onmouse[^>]*>/>/g' $i > tmp.svg;
  mv tmp.svg $i;
done
./wikipedia_upload

The various conversion and plotting scripts are here: csv2table, json2table, storting.gpi, storting_errs.gpi.

Finally, the actual upload script, which is the only thing that interacts with Wikipedia, is here: wikipedia_upload.

This script is a bit crufty because it grew gradually from a much simpler and less capable one. If I were to do this again I would probably write the whole thing in python.