]>
git.madduck.net Git - etc/awesome.git/blobdiff - widgets/imap.lua
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
--]]
local helpers = require("lain.helpers")
--]]
local helpers = require("lain.helpers")
-local shell = require("awful.util").shell
local naughty = require("naughty")
local wibox = require("wibox")
local string = { format = string.format,
gsub = string.gsub }
local naughty = require("naughty")
local wibox = require("wibox")
local string = { format = string.format,
gsub = string.gsub }
local tonumber = tonumber
local setmetatable = setmetatable
-- Mail IMAP check
-- lain.widgets.imap
local tonumber = tonumber
local setmetatable = setmetatable
-- Mail IMAP check
-- lain.widgets.imap
-local function worker(args )
+local function worker(args)
local imap = helpers.make_widget_textbox()
local args = args or {}
local server = args.server
local imap = helpers.make_widget_textbox()
local args = args or {}
local server = args.server
local head_command = "curl --connect-timeout 3 -fsm 3"
local request = "-X 'SEARCH (UNSEEN)'"
local head_command = "curl --connect-timeout 3 -fsm 3"
local request = "-X 'SEARCH (UNSEEN)'"
+ if not server or not mail or not password then return end
+
helpers.set_map(mail, 0)
if not is_plain then
helpers.set_map(mail, 0)
if not is_plain then
- helpers.async(string.format("%s -s '%s'", shell, password), function(f)
- password = f:gsub("\n", "")
- end)
+ if type(password) == "string" or type(password) == "table" then
+ helpers.async(password, function(f) password = f:gsub("\n", "") end)
+ elseif type(password) == "function" then
+ local p = password()
+ end
mail_notification_preset.screen = awful.screen.focused()
end
mail_notification_preset.screen = awful.screen.focused()
end
- curl = string.format("%s -c '%s --url imaps://%s:%s/INBOX -u %s:%q %s -k' ",
- shell, head_command, server, port, mail, password, request)
+ curl = string.format("%s --url imaps://%s:%s/INBOX -u %s:%q %s -k ",
+ head_command, server, port, mail, password, request)
helpers.async(curl, function(f)
_, mailcount = string.gsub(f, "%d+", "")
helpers.async(curl, function(f)
_, mailcount = string.gsub(f, "%d+", "")
- helpers.newtimer(mail, timeout, updat e)
+ imap.timer = helpers.newtimer(mail, timeout, update, true, tru e)
- return setmetatable(imap, { __index = imap.widget })
end
return setmetatable({}, { __call = function(_, ...) return worker(...) end })
end
return setmetatable({}, { __call = function(_, ...) return worker(...) end })