diff options
author | Adrian C. (anrxc) <anrxc@sysphere.org> | 2010-03-14 01:55:33 +0100 |
---|---|---|
committer | Adrian C. (anrxc) <anrxc@sysphere.org> | 2010-03-14 01:55:33 +0100 |
commit | 237470c8f45190b213e3a173ce6ae1a74b3e11fe (patch) | |
tree | 7f53c8144761947d4bde20715bcad34f4be0d6c0 /gmail.lua | |
parent | 9a82d4113a8271b7dfc7506f2b07379e3ede89a8 (diff) | |
download | vicious-legacy-237470c8f45190b213e3a173ce6ae1a74b3e11fe.tar.xz |
API: transform widgets namespace table to a directory
Diffstat (limited to 'gmail.lua')
-rw-r--r-- | gmail.lua | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/gmail.lua b/gmail.lua deleted file mode 100644 index b4bd081..0000000 --- a/gmail.lua +++ /dev/null @@ -1,83 +0,0 @@ ---------------------------------------------------- --- Licensed under the GNU General Public License v2 --- * (c) 2010, Adrian C. <anrxc@sysphere.org> ---------------------------------------------------- - --- {{{ Grab environment -local type = type -local tonumber = tonumber -local io = { popen = io.popen } -local setmetatable = setmetatable -local helpers = require("vicious.helpers") -local string = { - find = string.find, - match = string.match -} --- }}} - - --- Gmail: provides count of new and subject of last e-mail on Gmail -module("vicious.gmail") - - --- {{{ Variable definitions -local rss = { - inbox = { - "https://mail.google.com/mail/feed/atom", - "Gmail %- Inbox" - }, - unread = { - "https://mail.google.com/mail/feed/atom/unread", - "Gmail %- Label" - }, - --labelname = { - -- "https://mail.google.com/mail/feed/atom/labelname", - -- "Gmail %- Label" - --}, -} - --- Default is all unread -local feed = rss.unread --- }}} - - --- {{{ Gmail widget type -local function worker(format, warg) - local mail = { - ["{count}"] = 0, - ["{subject}"] = "N/A" - } - - -- Get info from the Gmail atom feed - local f = io.popen("curl --connect-timeout 1 -m 3 -fsn " .. 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 - mail["{count}"] = -- Count comes before messages and matches at least 0 - tonumber(string.match(line, "<fullcount>([%d]+)</fullcount>")) or mail["{count}"] - - -- Find subject tags - local title = string.match(line, "<title>(.*)</title>") - -- If the subject changed then break out of the loop - if title ~= nil and not string.find(title, feed[2]) 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 - end - end - f:close() - - return mail -end --- }}} - -setmetatable(_M, { __call = function(_, ...) return worker(...) end }) |