diff options
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() |