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?
This commit is contained in:
Adrian C. (anrxc) 2010-02-12 00:33:07 +01:00
parent 6c34e8532e
commit 24f23fa072
3 changed files with 40 additions and 22 deletions

View File

@ -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,8 +61,7 @@ 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 &#39;unread&#39; for "..user.."@gmail.com" then
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

View File

@ -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

View File

@ -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"}