Google reader widget

Using curl
These several lines give you the count of unread item of your google reader account.

function hook_google_reader(username, password) f = io.popen('curl --connect-timeout 1 -fsn "https://www.google.com/accounts/ClientLogin?service=reader&Email=' .. username .. '&Passwd=' .. password .. '"') if not f then return 0 end cookie = f:read("*line") f:close command = 'curl --connect-timeout 1 -s -X GET http://www.google.com/reader/api/0/unread-count?all=true --header "Cookie: ' .. cookie .. '"' f = io.popen(command) if (not f) then return 0 end line = f:read("*line") i,j = string.find(line,'reading%-list %d+ ') line = string.sub(line,i,j) return string.gsub(line,"%D","") end

greader.py
greader.py is a script which uses a separate .netrc for storing the username/password (like the vicious GMail widget) and which caches the login token to reduce updates to a single http query.

Create ~/.netrc if necessary, then add a line like this to it:

machine www.google.com login you@gmail.com password yourpassword

It's recommended that you use a generated password. Also, make sure to chmod 600 ~/.netrc.

Then put something like this in your rc.lua:

rsswidget = widget({type = "textbox" }) function update_reader rsswidget.text = awful.util.pread("python " .. awful.util.getdir("config") .. "/greader.py") end awful.hooks.timer.register(300, update_reader) update_reader

Or as a vicious widget:

rsswidget = widget({type = "textbox" }) function update_reader return awful.util.pread("python " .. awful.util.getdir("config") .. "/greader.py") end vicious.register(rsswidget, update_reader, "$1", 300)