aboutsummaryrefslogtreecommitdiff
path: root/gmail.lua
diff options
context:
space:
mode:
authorAdrian C. (anrxc) <anrxc@sysphere.org>2009-10-01 12:08:39 +0200
committerAdrian C. (anrxc) <anrxc@sysphere.org>2009-10-01 12:08:39 +0200
commitf99a74b7c876b2cf262fc8a5853434ebc789001a (patch)
tree20f7ba8faad3b47e923bc95f2096edbe585b1275 /gmail.lua
parent5dac6a44fd38a8f599ed8ad73f98a963123c49fd (diff)
downloadvicious-legacy-f99a74b7c876b2cf262fc8a5853434ebc789001a.tar.xz
gmail: count all unread messages
Widget now uses the Gmail unread tag to get a list of all unread messages, not only the Inbox. The auth argument was removed, and login information should now be placed directly in the widget (and file made read-only by user) until a safer storage is introduced.
Diffstat (limited to 'gmail.lua')
-rw-r--r--gmail.lua19
1 files changed, 11 insertions, 8 deletions
diff --git a/gmail.lua b/gmail.lua
index 8530818..c31f425 100644
--- a/gmail.lua
+++ b/gmail.lua
@@ -10,22 +10,25 @@ local helpers = require("vicious.helpers")
-- }}}
--- Gmail: provides count of new and subject of last e-mail in a Gmail inbox
+-- Gmail: provides count of new and subject of last e-mail on Gmail
module("vicious.gmail")
+-- User data
+local user = "" -- Todo
+local pass = "" -- * find a safer storage
+
-- {{{ Gmail widget type
-local function worker(format, login)
+local function worker(format, feed)
+ local auth = user .. ":" .. pass
+ local feed = feed or "https://mail.google.com/mail/feed/atom/unread"
local mail = {
["{count}"] = "0",
["{subject}"] = "N/A"
}
- -- Todo: find a safer way to do this
- local auth = login[1] .. ":" .. login[2]
-
-- Get info from the Gmail atom feed
- local f = io.popen("curl --connect-timeout 1 -m 3 -fsu "..auth.." https://mail.google.com/mail/feed/atom")
+ local f = io.popen("curl --connect-timeout 1 -m 3 -fsu "..auth.." "..feed)
-- Could be huge don't read it all at once, info we are after is at the top
for line in f:lines() do
@@ -34,8 +37,8 @@ local function worker(format, login)
-- Find subject tags
local title = line:match("<title>(.*)</title>")
-- If the subject changed then break out of the loop
- if title ~= nil and -- Ignore the feed title
- title ~= "Gmail - Inbox for "..login[1].."@gmail.com" then
+ if title ~= nil and -- Todo: find a better way to deal with 1st title
+ title ~= "Gmail - Label &#39;unread&#39; for "..user.."@gmail.com" then
-- Spam sanitize the subject
title = helpers.escape(title)
-- Don't abuse the wibox, truncate, then store