I wrote about it here.
Just two small gems and an Instapaper account.
gem install mechanize mustache
Usage: instapaper-stats.rb [method] fetch [credentials file] - Fetch new data and save to 'backup/'. info [csv file] - Show info from csv file. search [word] - Search article by word or url, word can be a regexp. csv [dir] - Print out latest backup info in CSV format. csv_full [dir] - Print out full backup info in CSV format. graph [csv file] - Write stats data from csv file to 'html/app.js'.
I use this script as a cronjob to automatically backup and graph all my saved articles.
$ crontab -l 1 0 * * * /home/badboy/git/instredis/run.sh >/dev/null 5 0 * * * /home/badboy/git/instredis/graph.sh >/dev/null
#!/bin/bash cd $(dirname $0) ~/.rvm/bin/ruby-1.9.3-p0 ./instapaper-stats.rb fetch credentials.txt
#!/bin/bash cd $(dirname $0) ~/.rvm/bin/ruby-1.9.3-p0 ./instapaper-stats.rb csv backup >> full.csv ~/.rvm/bin/ruby-1.9.3-p0 ./instapaper-stats.rb graph full.csv cp html/app.js /var/www/sites/stats/app.js
"THE BEER-WARE LICENSE" (Revision 42): <firstname.lastname@example.org> wrote this file. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return. Jan-Erik Rediger