gmail: add scrolling support and truncate control

Same as the mpd widget. No argument, string is returned in
full. Number enables truncate. Table enables scrolling.
This commit is contained in:
Adrian C. (anrxc) 2009-11-03 01:34:48 +01:00
parent 9e91408ccb
commit 44d943d024
1 changed files with 15 additions and 7 deletions

View File

@ -4,6 +4,7 @@
---------------------------------------------------
-- {{{ Grab environment
local type = type
local tonumber = tonumber
local io = { popen = io.popen }
local setmetatable = setmetatable
@ -21,9 +22,9 @@ local user = "" -- Todo:
local pass = "" -- * find a safer storage
-- {{{ Gmail widget type
local function worker(format, feed)
local function worker(format, warg)
local auth = user .. ":" .. pass
local feed = feed or "https://mail.google.com/mail/feed/atom/unread"
local feed = "https://mail.google.com/mail/feed/atom/unread"
local mail = {
["{count}"] = 0,
["{subject}"] = "N/A"
@ -42,10 +43,17 @@ local function worker(format, feed)
-- 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
-- Spam sanitize the subject
title = helpers.escape(title)
-- Don't abuse the wibox, truncate, then store
mail["{subject}"] = helpers.truncate(title, 22)
-- 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