diff options
author | Adrian C. (anrxc) <anrxc@sysphere.org> | 2010-02-12 00:33:07 +0100 |
---|---|---|
committer | Adrian C. (anrxc) <anrxc@sysphere.org> | 2010-02-12 00:33:07 +0100 |
commit | 24f23fa072d408affe60140c088000695b13512a (patch) | |
tree | 864d203032412c0163672e3552d4cdffc5e16b9d /gmail.lua | |
parent | 6c34e8532e026e56666db01a8186a5c06e62780d (diff) | |
download | vicious-legacy-24f23fa072d408affe60140c088000695b13512a.tar.xz |
gmail: reworked feed handling and changed username format
Nothing hard coded in the worker now. Feeds are together with user
data, easily swaped. Feeds are not widget args because user needs to
modify the file for login data anyway. No progress toward safer
storage, Kwallet looks promising but dbus handling is hell - what of
non KDE users? Every other script, including much praised checkgmail
has plain text login. Nobody cares?
Diffstat (limited to 'gmail.lua')
-rw-r--r-- | gmail.lua | 57 |
1 files changed, 38 insertions, 19 deletions
@@ -17,21 +17,41 @@ local helpers = require("vicious.helpers") module("vicious.gmail") --- User data -local user = "" -- Todo: -local pass = "" -- * find a safer storage +-- {{{ Variable definitions +local rss = { + inbox = { + "https://mail.google.com/mail/feed/atom", + "Gmail - Inbox for " + }, + unread = { + "https://mail.google.com/mail/feed/atom/unread", + "Gmail - Label 'unread' for " + }, + --labelname = { + -- "https://mail.google.com/mail/feed/atom/labelname", + -- "Gmail - Label 'labelname' for " + --}, +} + +-- Todo: safer storage, maybe hook into Kwallet +local cfg = { + user = "", -- user@gmail.com + pass = "", -- users password + feed = rss.unread -- default is all unread +} +-- }}} + -- {{{ Gmail widget type local function worker(format, warg) - local auth = user .. ":" .. pass - local feed = "https://mail.google.com/mail/feed/atom/unread" + local auth = cfg.user ..":".. cfg.pass local mail = { ["{count}"] = 0, ["{subject}"] = "N/A" } -- Get info from the Gmail atom feed - local f = io.popen("curl --connect-timeout 1 -m 3 -fsu "..auth.." "..feed) + local f = io.popen("curl --connect-timeout 1 -m 3 -fsu "..auth.." "..cfg.feed[1]) -- Could be huge don't read it all at once, info we are after is at the top for line in f:lines() do @@ -41,20 +61,19 @@ local function worker(format, warg) -- Find subject tags local title = string.match(line, "<title>(.*)</title>") -- If the subject changed then break out of the loop - if title ~= nil and -- Todo: find a better way to deal with 1st title - title ~= "Gmail - Label 'unread' for "..user.."@gmail.com" then - -- Check if we should scroll, or maybe truncate - if warg then - if type(warg) == "table" then - title = helpers.scroll(title, warg[1], warg[2]) - else - title = helpers.truncate(title, warg) - end - end + if title ~= nil and title ~= cfg.feed[2] .. cfg.user then + -- Check if we should scroll, or maybe truncate + if warg then + if type(warg) == "table" then + title = helpers.scroll(title, warg[1], warg[2]) + else + title = helpers.truncate(title, warg) + end + end - -- Spam sanitize the subject and store - mail["{subject}"] = helpers.escape(title) - break + -- Spam sanitize the subject and store + mail["{subject}"] = helpers.escape(title) + break end end f:close() |