From 24f23fa072d408affe60140c088000695b13512a Mon Sep 17 00:00:00 2001 From: "Adrian C. (anrxc)" Date: Fri, 12 Feb 2010 00:33:07 +0100 Subject: 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? --- gmail.lua | 57 ++++++++++++++++++++++++++++++++++++++------------------- mem.lua | 2 +- thermal.lua | 3 +-- 3 files changed, 40 insertions(+), 22 deletions(-) diff --git a/gmail.lua b/gmail.lua index 854417f..d270bea 100644 --- a/gmail.lua +++ b/gmail.lua @@ -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, "(.*)") -- 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() diff --git a/mem.lua b/mem.lua index 629cc12..f3352b6 100644 --- a/mem.lua +++ b/mem.lua @@ -20,7 +20,7 @@ module("vicious.mem") local function worker(format) -- Get meminfo local f = io.open("/proc/meminfo") - local mem = { buf = {}, swp = {}, } + local mem = { buf = {}, swp = {} } for line in f:lines() do if string.match(line, "^MemTotal.*") then diff --git a/thermal.lua b/thermal.lua index a36501c..d7e98fc 100644 --- a/thermal.lua +++ b/thermal.lua @@ -18,8 +18,7 @@ module("vicious.thermal") -- {{{ Thermal widget type local function worker(format, warg) - -- Known temperature data sources - local zone = { + local zone = { -- Known temperature data sources ["sys"] = {"/sys/class/thermal/", file = "temp", div = 1000}, ["core"] = {"/sys/devices/platform/", file = "temp1_input",div = 1000}, ["proc"] = {"/proc/acpi/thermal_zone/",file = "temperature"} -- cgit v1.2.3