X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/54f0b460c532eb43190314bab457f12f60c807a8..f2fd571bee7cd5aa0a38f0649868ab042023698d:/widgets/yawn/init.lua?ds=sidebyside diff --git a/widgets/yawn/init.lua b/widgets/yawn/init.lua index ecd1314..36cdf54 100644 --- a/widgets/yawn/init.lua +++ b/widgets/yawn/init.lua @@ -1,4 +1,3 @@ - --[[ Licensed under GNU General Public License v2 @@ -47,8 +46,7 @@ yawn_notification_preset = {} local function fetch_weather() local url = api_url .. units_set .. city_id - local f = io.popen("curl --connect-timeout 1 -fsm 1 '" - .. url .. "'" ) + local f = io.popen("curl --connect-timeout 1 -fsm 3 '" .. url .. "'" ) local text = f:read("*all") f:close() @@ -59,24 +57,24 @@ local function fetch_weather() yawn.icon:set_image(icon_path .. "na.png") if text == "" then weather_data = "Service not available at the moment." - yawn.widget:set_text("N/A") + yawn.widget:set_text(" N/A") else weather_data = "City not found!\n" .. "Are you sure " .. city_id .. " is your Yahoo city ID?" - yawn.widget:set_text("?") + yawn.widget:set_text(" ?") end return end -- Processing raw data weather_data = text:gsub("<.->", "") - weather_data = weather_data:match("Current Conditions:.-Full") + weather_data = weather_data:match("Current Conditions:.-Full") or "" -- may still happens in case of bad connectivity - if weather_data == nil then + if weather_data == "" then yawn.icon:set_image(icon_path .. "na.png") - yawn.widget:set_text("?") + yawn.widget:set_text(" ?") return end @@ -115,11 +113,8 @@ local function fetch_weather() sky = sky .. forecast:gsub(" ", ""):gsub("/", "") .. ".png" -- In case there's no defined icon for current forecast - f = io.popen(sky) - if f == nil then + if io.open(sky) == nil then sky = icon_path .. "na.png" - else - io.close(f) end -- Localization @@ -153,7 +148,7 @@ function yawn.hide() end function yawn.show(t_out) - if yawn.widget._layout.text == "?" + if yawn.widget._layout.text:match("?") then fetch_weather(settings) end