X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/54f0b460c532eb43190314bab457f12f60c807a8..0a5a9eee14724f7989b286dd1e8126ea7d863193:/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