- -- Processing raw data
- weather_data = text:gsub("<.->", "")
- weather_data = weather_data:match("Current Conditions:.-Full")
- weather_data = weather_data:gsub("Current Conditions:.-\n", "Now: ")
- weather_data = weather_data:gsub("Forecast:.-\n", "")
- weather_data = weather_data:gsub("\nFull", "")
- weather_data = weather_data:gsub("[\n]$", "")
- weather_data = weather_data:gsub(" [-] " , ": ")
- weather_data = weather_data:gsub("[.]", ",")
- weather_data = weather_data:gsub("High: ", "")
- weather_data = weather_data:gsub(" Low: ", " - ")
-
- -- Getting info for text widget
- local now = weather_data:sub(weather_data:find("Now:")+5,
- weather_data:find("\n")-1)
- forecast = now:sub(1, now:find(",")-1)
- units = now:sub(now:find(",")+2, -2)
-
- -- Day/Night icon change
- local hour = tonumber(os.date("%H"))
- sky = icon_path
-
- if forecast == "Clear" or
- forecast == "Fair" or
- forecast == "Partly Cloudy" or
- forecast == "Mostly Cloudy"
- then
- if hour >= 6 and hour <= 18
+ -- Processing raw data
+ weather_data = text:gsub("<.->", "")
+ weather_data = weather_data:match("Current Conditions:.-Full") or ""
+
+ -- may still happens in case of bad connectivity
+ if weather_data == "" then
+ yawn.icon:set_image(icon_path .. "na.png")
+ yawn.widget:set_text(" ? ")
+ return
+ end
+
+ weather_data = weather_data:gsub("Current Conditions:.-\n", "Now: ")
+ weather_data = weather_data:gsub("Forecast:.-\n", "")
+ weather_data = weather_data:gsub("\nFull", "")
+ weather_data = weather_data:gsub("[\n]$", "")
+ weather_data = weather_data:gsub(" [-] " , ": ")
+ weather_data = weather_data:gsub("[.]", ",")
+ weather_data = weather_data:gsub("High: ", "")
+ weather_data = weather_data:gsub(" Low: ", " - ")
+
+ -- Getting info for text widget
+ local now = weather_data:sub(weather_data:find("Now:")+5,
+ weather_data:find("\n")-1)
+ forecast = now:sub(1, now:find(",")-1)
+ units = now:sub(now:find(",")+2, -2)
+
+ -- Day/Night icon change
+ local hour = tonumber(os.date("%H"))
+ sky = icon_path
+
+ if string.find(forecast, "Clear") or
+ string.find(forecast, "Fair") or
+ string.find(forecast, "Partly Cloudy") or
+ string.find(forecast, "Mostly Cloudy")