From bcbde507eb857a67a25fe415a133fd7e639a6bdf Mon Sep 17 00:00:00 2001 From: streetturtle Date: Sun, 12 Jul 2020 17:36:28 -0400 Subject: [PATCH] [weather] fix #161 + redesign with breaking change --- weather-widget/README.md | 96 +- .../VitalyGorbachev/broken-clouds-night.svg | 1 + .../icons/VitalyGorbachev/broken-clouds.svg | 1 + .../icons/VitalyGorbachev/clear-sky-night.svg | 1 + .../icons/VitalyGorbachev/clear-sky.svg | 1 + .../VitalyGorbachev/few-clouds-night.svg | 1 + .../icons/VitalyGorbachev/few-clouds.svg | 1 + .../icons/VitalyGorbachev/mist-night.svg | 1 + weather-widget/icons/VitalyGorbachev/mist.svg | 1 + .../icons/VitalyGorbachev/rain-night.svg | 1 + weather-widget/icons/VitalyGorbachev/rain.svg | 1 + .../scattered-clouds-night.svg | 1 + .../VitalyGorbachev/scattered-clouds.svg | 1 + .../VitalyGorbachev/shower-rain-night.svg | 1 + .../icons/VitalyGorbachev/shower-rain.svg | 1 + .../icons/VitalyGorbachev/snow-night.svg | 1 + weather-widget/icons/VitalyGorbachev/snow.svg | 1 + .../VitalyGorbachev/thunderstorm-night.svg | 1 + .../icons/VitalyGorbachev/thunderstorm.svg | 1 + .../broken-clouds-night.png | Bin 0 -> 4101 bytes .../broken-clouds.png | Bin 0 -> 1600 bytes .../clear-sky-night.png | Bin 0 -> 4338 bytes .../weather-underground-icons/clear-sky.png | Bin 0 -> 1029 bytes .../few-clouds-night.png | Bin 0 -> 4511 bytes .../weather-underground-icons/few-clouds.png | Bin 0 -> 1634 bytes .../weather-underground-icons/mist-night.png | Bin 0 -> 1042 bytes .../icons/weather-underground-icons/mist.png | Bin 0 -> 1042 bytes .../weather-underground-icons/rain-night.png | Bin 0 -> 1728 bytes .../icons/weather-underground-icons/rain.png | Bin 0 -> 1728 bytes .../scattered-clouds-night.png | Bin 0 -> 1044 bytes .../scattered-clouds.png | Bin 0 -> 1044 bytes .../shower-rain-night.png | Bin 0 -> 1728 bytes .../weather-underground-icons/shower-rain.png | Bin 0 -> 1728 bytes .../weather-underground-icons/snow-night.png | Bin 0 -> 1191 bytes .../icons/weather-underground-icons/snow.png | Bin 0 -> 1191 bytes .../thunderstorm-night.png | Bin 0 -> 2052 bytes .../thunderstorm.png | Bin 0 -> 2052 bytes weather-widget/screenshots/example1.png | Bin 0 -> 46387 bytes weather-widget/screenshots/example2.png | Bin 0 -> 26446 bytes weather-widget/screenshots/weather-widget.png | Bin 0 -> 26906 bytes weather-widget/weather.json | 1224 +++++++++++++++++ weather-widget/weather.lua | 605 +++++--- 42 files changed, 1731 insertions(+), 212 deletions(-) create mode 100644 weather-widget/icons/VitalyGorbachev/broken-clouds-night.svg create mode 100644 weather-widget/icons/VitalyGorbachev/broken-clouds.svg create mode 100644 weather-widget/icons/VitalyGorbachev/clear-sky-night.svg create mode 100644 weather-widget/icons/VitalyGorbachev/clear-sky.svg create mode 100644 weather-widget/icons/VitalyGorbachev/few-clouds-night.svg create mode 100644 weather-widget/icons/VitalyGorbachev/few-clouds.svg create mode 100644 weather-widget/icons/VitalyGorbachev/mist-night.svg create mode 100644 weather-widget/icons/VitalyGorbachev/mist.svg create mode 100644 weather-widget/icons/VitalyGorbachev/rain-night.svg create mode 100644 weather-widget/icons/VitalyGorbachev/rain.svg create mode 100644 weather-widget/icons/VitalyGorbachev/scattered-clouds-night.svg create mode 100644 weather-widget/icons/VitalyGorbachev/scattered-clouds.svg create mode 100644 weather-widget/icons/VitalyGorbachev/shower-rain-night.svg create mode 100644 weather-widget/icons/VitalyGorbachev/shower-rain.svg create mode 100644 weather-widget/icons/VitalyGorbachev/snow-night.svg create mode 100644 weather-widget/icons/VitalyGorbachev/snow.svg create mode 100644 weather-widget/icons/VitalyGorbachev/thunderstorm-night.svg create mode 100644 weather-widget/icons/VitalyGorbachev/thunderstorm.svg create mode 100644 weather-widget/icons/weather-underground-icons/broken-clouds-night.png create mode 100755 weather-widget/icons/weather-underground-icons/broken-clouds.png create mode 100644 weather-widget/icons/weather-underground-icons/clear-sky-night.png create mode 100755 weather-widget/icons/weather-underground-icons/clear-sky.png create mode 100644 weather-widget/icons/weather-underground-icons/few-clouds-night.png create mode 100755 weather-widget/icons/weather-underground-icons/few-clouds.png create mode 100755 weather-widget/icons/weather-underground-icons/mist-night.png create mode 100755 weather-widget/icons/weather-underground-icons/mist.png create mode 100755 weather-widget/icons/weather-underground-icons/rain-night.png create mode 100755 weather-widget/icons/weather-underground-icons/rain.png create mode 100755 weather-widget/icons/weather-underground-icons/scattered-clouds-night.png create mode 100755 weather-widget/icons/weather-underground-icons/scattered-clouds.png create mode 100755 weather-widget/icons/weather-underground-icons/shower-rain-night.png create mode 100755 weather-widget/icons/weather-underground-icons/shower-rain.png create mode 100755 weather-widget/icons/weather-underground-icons/snow-night.png create mode 100755 weather-widget/icons/weather-underground-icons/snow.png create mode 100755 weather-widget/icons/weather-underground-icons/thunderstorm-night.png create mode 100755 weather-widget/icons/weather-underground-icons/thunderstorm.png create mode 100644 weather-widget/screenshots/example1.png create mode 100644 weather-widget/screenshots/example2.png create mode 100644 weather-widget/screenshots/weather-widget.png create mode 100644 weather-widget/weather.json diff --git a/weather-widget/README.md b/weather-widget/README.md index 730c1f5..defe1b7 100644 --- a/weather-widget/README.md +++ b/weather-widget/README.md @@ -1,8 +1,13 @@ # Weather widget -![Weather Widget](./weather-widget.png) +

+ screenshot +

-Note that widget uses the Arc icon theme, so it should be [installed](https://github.com/horst3180/arc-icon-theme#installation) first under **/usr/share/icons/Arc/** folder. +Widget consists of three sections: + - current weather, including humidity, wind speed, UV index + - hourly forecast for the next 24 hours + - daily forecast for the next five days ## Customization @@ -10,34 +15,63 @@ It is possible to customize widget by providing a table with all or some of the | Name | Default | Description | |---|---|---| -| `font` | `Play 9` | Font | -| `city` | `Montreal,ca` | City name and country code, [more info](https://openweathermap.org/current) | -| `api_key` | none| API key, required | -| `units` | `metric` | `metric` for celsius, `imperial` for fahrenheit | -| `both_units_widget` | `false` | show temperature in both units (15°C (59°F)) or in one (15°C) | -| `both_units_popup` | `false` | same as above but for popup | -| `notification_position` | `top_right` | The notification position | +| coordinates | Required | Table with two elements: latitude and longitude, e.g. `{46.204400, 6.143200}` | +| api_key | Required | Get it [here](https://openweathermap.org/appid) | +| font_name | `beautiful.font:gsub("%s%d+$", "")` | **Name** of the font to use e.g. 'Play' | +| both_units_widget | false | Show temperature in both units - '28°C (83°F) | +| units | metric | `metric` for celsius, `imperial` for fahrenheit | +| show_hourly_forecast | false | Show hourly forecase section | +| time_format_12h |false | 12 or 24 hour format (13:00 - default or 1pm) | +| show_daily_forecast | false | Show daily forecast section | +| icon_pack_name | weather-underground-icons | Name of the icon pack, could be `weather-underground-icon` or `VitalyGorbachev` or create your own, more details below | +| icons_extension | `.svg` | File extension of icons in the pack | -### Example: +### Icons: + +Widget comes with two predefined icon packs: + + - weather-underground-icons taken from [here](https://github.com/manifestinteractive/weather-underground-icons) + - VitalyGorbachev taken from [here](https://www.flaticon.com/authors/vitaly-gorbachev) + +To add your custom icons, create a folder with the pack name under `/icons` and use the folder name in widget's config. There should be 18 icons, preferably 128x128 minimum. Icons should also respect the naming convention, please check widget's source. + +### Examples: + + +#### Custom font, icons + +![example1](./screenshots/example1.png) ```lua -weather_widget({ - api_key = 'your-api-key', +weather_curl_widget({ + api_key='', + coordinates = {45.5017, -73.5673}, + time_format_12h = true, units = 'imperial', - font = 'Ubuntu Mono 9' + both_units_widget = true, + font_name = 'Carter One', + icons = 'VitalyGorbachev', + show_hourly_forecast = true, + show_daily_forecast = true, +}), +``` + +#### Only current weather + +![example2](./screenshots/example2.png) + +```lua +weather_curl_widget({ + api_key='', + coordinates = {45.5017, -73.5673}, }), ``` + ## Installation -1. Install lua socket - to make HTTP calls to get the weather information. - - ```bash - $ sudo apt-get install lua-socket - ``` - 1. Download json parser for lua from [github.com/rxi/json.lua](https://github.com/rxi/json.lua) and place it under **~/.config/awesome/** (don't forget to star a repo ): ```bash @@ -66,15 +100,27 @@ weather_widget({ layout = wibox.layout.fixed.horizontal, ... --default - weather_widget({api_key = 'your-api-key'}), - --customized weather_widget({ - api_key = 'your-api-key', + coordinates = {45.5017, -73.5673}, + api_key='c3d7320b359da4e48c2d682a04076576', + }), + , + --customized + weather_curl_widget({ + api_key='', + coordinates = {45.5017, -73.5673}, + time_format_12h = true, units = 'imperial', - font = 'Ubuntu Mono 9' - }) + both_units_widget = true, + font_name = 'Carter One', + icons = 'VitalyGorbachev', + show_hourly_forecast = true, + show_daily_forecast = true, + }), ... ``` -You can read how it works in more details [here](http://pavelmakhov.com/2017/02/weather-widget-for-awesome-wm) +## How it works + +TBW \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/broken-clouds-night.svg b/weather-widget/icons/VitalyGorbachev/broken-clouds-night.svg new file mode 100644 index 0000000..8b7fc48 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/broken-clouds-night.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/broken-clouds.svg b/weather-widget/icons/VitalyGorbachev/broken-clouds.svg new file mode 100644 index 0000000..d42ea59 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/broken-clouds.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/clear-sky-night.svg b/weather-widget/icons/VitalyGorbachev/clear-sky-night.svg new file mode 100644 index 0000000..44f096c --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/clear-sky-night.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/clear-sky.svg b/weather-widget/icons/VitalyGorbachev/clear-sky.svg new file mode 100644 index 0000000..dc82163 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/clear-sky.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/few-clouds-night.svg b/weather-widget/icons/VitalyGorbachev/few-clouds-night.svg new file mode 100644 index 0000000..8b7fc48 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/few-clouds-night.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/few-clouds.svg b/weather-widget/icons/VitalyGorbachev/few-clouds.svg new file mode 100644 index 0000000..d42ea59 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/few-clouds.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/mist-night.svg b/weather-widget/icons/VitalyGorbachev/mist-night.svg new file mode 100644 index 0000000..960b07d --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/mist-night.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/mist.svg b/weather-widget/icons/VitalyGorbachev/mist.svg new file mode 100644 index 0000000..770f8d7 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/mist.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/rain-night.svg b/weather-widget/icons/VitalyGorbachev/rain-night.svg new file mode 100644 index 0000000..11ecf00 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/rain-night.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/rain.svg b/weather-widget/icons/VitalyGorbachev/rain.svg new file mode 100644 index 0000000..11ecf00 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/scattered-clouds-night.svg b/weather-widget/icons/VitalyGorbachev/scattered-clouds-night.svg new file mode 100644 index 0000000..8b7fc48 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/scattered-clouds-night.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/scattered-clouds.svg b/weather-widget/icons/VitalyGorbachev/scattered-clouds.svg new file mode 100644 index 0000000..d42ea59 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/scattered-clouds.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/shower-rain-night.svg b/weather-widget/icons/VitalyGorbachev/shower-rain-night.svg new file mode 100644 index 0000000..4d1897c --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/shower-rain-night.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/shower-rain.svg b/weather-widget/icons/VitalyGorbachev/shower-rain.svg new file mode 100644 index 0000000..4d1897c --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/shower-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/snow-night.svg b/weather-widget/icons/VitalyGorbachev/snow-night.svg new file mode 100644 index 0000000..bee891e --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/snow-night.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/snow.svg b/weather-widget/icons/VitalyGorbachev/snow.svg new file mode 100644 index 0000000..e2ea140 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/snow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/thunderstorm-night.svg b/weather-widget/icons/VitalyGorbachev/thunderstorm-night.svg new file mode 100644 index 0000000..1813197 --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/thunderstorm-night.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/VitalyGorbachev/thunderstorm.svg b/weather-widget/icons/VitalyGorbachev/thunderstorm.svg new file mode 100644 index 0000000..44a733c --- /dev/null +++ b/weather-widget/icons/VitalyGorbachev/thunderstorm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weather-widget/icons/weather-underground-icons/broken-clouds-night.png b/weather-widget/icons/weather-underground-icons/broken-clouds-night.png new file mode 100644 index 0000000000000000000000000000000000000000..061d1cde74c39e1de8d9fb3a468900dc4a63a2b7 GIT binary patch literal 4101 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 literal 0 HcmV?d00001 diff --git a/weather-widget/icons/weather-underground-icons/clear-sky-night.png b/weather-widget/icons/weather-underground-icons/clear-sky-night.png new file mode 100644 index 0000000000000000000000000000000000000000..cc40d0f9d156e01ea82a984d024d0a623fa3f48c GIT binary patch literal 4338 zcmb`L=RX?`w8oQ2kfBXr1W}_!wK|Np zsl929+N(x`+xs`%`{JDEb6%X!=lkNkc+T_0%*22ZhJXP807fH2U5kGj`@cm``>(&# zaQ^a7fB_Z;IsoDj?-~HWQfs8EZ50aKbf62w=pl+;A9Y!QzJtr@i9&jrNI_dC*>(#H zlxG7#iq|1o7Ba0aj>l~f`1adwy%z$UwYz>^V zGiqe!A6d+H)ekQD`fp#D{(XD0Jsop?;wGiDC(8Pa-Vl5R#0Gp4tE(l1{6CJz3ZQXv z!Q9hP>Dy%kPmESwtm99GbRvW?YcQP<3l!sfc>Zu6N#}_x2R4u|K`n z5v<=99vbiRaV;z$=a70m&WHX4rti4RX30!o{}nlTst%BUYDbUk8*ps3N}+p(bAcxm zZ}X|x`x=Rb-Ry>OH4R_W^7k*AJj*B$sTNV=bCIVF?|k2MhtT+jQ$}5qrTKj^^t0^K z$Q8U~#j5km%6k|)0P_iBU0ohaxbLr@d0BOX+tMeIH-P`aZdM4^N+pDxZck1EWjx{J zmP;`ox7lIOENs6I*H+bE#M5BOHuEx>m8fD3o5=iRDn1p@?V;&Dc&C>su+|WMAfuxt^Hz8^i$1dn}!5@P%>U~ zwz*FSo2!8%>lz{zEc~Q8_g}XAjkB0M%gI!KXqb_b_WR?KCC+4bHO_EJO`s@Fu&at{ zl$D%|jxP+>7+EEhike>X)L)6WWO=k-)?>RcN!!_cZnB@uiY%>)WE$AK8w^t@!2}y) zv7)+XUp!RkM9P08IQPyS8)O8R$V!@Rs}ljH@J#`_VXB22pB9UXoxyK5>nlvEs}c?Y zVc96NGO8?C?G*O$cwVd7NOmPIzTfZVR&r5E(gw-e5i$E>s1o)jP|ta<0t(`{j1}{V z`o{mLN&rPqe(;@e7dl@*XK5L>yfyu)u~N^Y@H>>Su-kY;DD*(9EX)|#9t`_}Y4~mc zRuOdFF8@tAsx6Eh)-y+p1%3|sV>UezG}~>szzQ*xl!!7k&lVF(avr}R5{cJJyk8E_ z`pmN}QyXv&DtSs1)J)el&_Hxd{|FXiC#9d|*gWnH72oPA)hVn9<4whHAB*{EYN+p2 zC5mgg`~Ky0BFt%nuXi3*u81(5-R|>&@@+7@=}-TzEh*Ojih>{js(EfCc6UZ5(wq72 z{p=MQ3TJ&=exTwhw(`q)7c3F{te-*tMG35!R?Kea-ts8aqyWu%ZAfEnh{?7{X@l!( z!ur7)%V>0&>iXVDQ`^gu$1>GCN9mxNyY%gehM!+>`vq+g3+^>%*@#FeUEN!a)0Z;_ zT9MYIg?yd;R%SN*%wHuPd*j&;s*y2l3`(p!phT}E(7^4tG05HX{nR~mq*6?_o zO9S4QMvg^KPx)xZU&p863HGiy0WF*VihUOpN9+KZ8S}FNJq#2?`L)f7ITTV>VkAT9 zptYk3$5O<~!)qKvCZS=}ClxiIhE03e`{}jI5`PNqS|fzVv?w%A#_knWcRVecXoB>M zYe0bo8cy_m_jhw0Wu>%IE^}YbYjhp{3vs&S?=Ud`Us_u7Cbij6o0?Co0cjaupjbm+ zBu+2yag6vu__7&wdWzoSmVIfo#fHn^*)z*pu%w#~9DwDhI}oSQi#2vPO*zCu?eVIb zFJnLmxCik_`D4P~glGA;%{|ws_G64n}-M|X-j?{tbIpf}HdiI<4#Eg)Qa4<2Hz3TvV+N3v)pB|{YbBJ0P2>mY4tpd|o-Pv!uW zxCrf}7Lx+vsw&j!OWcB;qhKZ*%3j@%<@Pn$XzS_sPg&545H0Xs;ocsiNBhaSUXVhC zw9(T^lg+?rm-Z!fYri|Tx@106_{Qe8;Zfy-8Ms!DF4vYfX<|5nCMo}kxpX}G^I9PM z9v5x?t)7S;`(pzicT&exaRI1%Hu4P({gtZfma#VbXQMeG8~vXRZ0XxcR2jWX{USk( zUe5Lfg(SVI@uAN<)L$arK~p^!sezIn>r5`Y2LlqiAwm# zuLXGKo5u`g;FzQ<>f1d0i$AyVBVxgYYE7^0He>1CxL7kWUbE`tw#Wy+EB3&)^WRx1 z*cO7`lfVZOYDO!%lCq^v(XmOW__)AjVbn~J0&DjCNRAal;v$L!^?9L4J>Ql~{+v?= z&tdX0iZ(5W3|DGsVo{ADSL*{)#|07|<;U!Y&g!~YY7$TrPSh5kTOH&421;pInx096 z{+OzXp-V%f*`;p$Gw|Z`GU==^y82y&AOmSpnDgJBJ`K8_8D>4!iyfUKS9@=;s2aab zxQLj)Ly9*PylYq2y5yEVX|g=r(banEK3S0T5Y|0(@<3oZt)pI`=xIpK(^U8t)5CbR zQ`bjF;rat*Va4EKD9xQoGdb;M1bZM8RxsCTE*rws_QUCCth(gKG#M@m!j7@%ON)1v zP98>)XZ{dME&{5?zSVqH%;lWYnE~v%GVs9GqvmzS1TFs8&ryY!e3?K7v$38UEFi@M z=l-jt*h`khI6|BxSw#{HdLVvw{nbCJ&u#*)^DWHabw$)iq#pEx?qU6-bxaBo23QB$>oGDjp#6l3$dn0emdzrasNH6cHsYIgET=h{l!Qzh zZ0fpqlpF4huL0Ti{oP|RANdvzy>In;gEzkRxJnr_g6Y~wqP8e+{mdb!Zp)1F5nNaF>qlJws;ceAA7AcHJZX+-S^@zW;%l-|O3kqB&j?Ae{F1^noLpngg4a zC7PhmB>lvRfdvrxW=NrsK&-Z0@ZnbRM@dCP_;_Ii_&qWcDKn7`|pd0uGk+ieG^M%4^cRD;+1 zI#bk7a9`8qL>ZNbR$ixjCV^Z<^|xHMBOFQj=3x8gyUV-Od<8ilAD`rGh!FR6)z56Z z(?*KAK-+ll>~r)FU!}2_$Z+Q{eA0IMK|>O<_4CJ>xW0SvToEQId7X#v;7CzHe;(sU z=i+QP%sqnl#8uIHkumr&f#)gDp+focIL;@bTNOMNfZ7Fxjx!_d^iD#ohxr^ojZjmV zS`2>h4*3X?MUY_s)Ym%5eRx1p;35ESX5mBL_0Kr6Lz(|{yHxAlx73ZiTS=mk>qX<{ z61RCn7C-e`b6@X>VoI;%95jPC=~!WGhUl~(E!-pEY<>ucSLXKdOOX4Y0*6U6`iml8 zYs-zu*~uqcD_lgtfDh6AcA_D?Re>Mjb-vRWRE}HAKvjlND9JYk5}epdhU3}77k@Mc zFr?<_gqRi^7C&8V8kq;@OD)Ey9Mq&>Fv9u0^ps=zrCnSmtF{QGUuJ3{`usA;&C6Ox zfBA~8A9MXzOXGJ2v9!+f6d$qLES{|b>ibY9UEPlK$g{q*AGpkMBt{Y*q>;rlN?nP- z@7vAr^8jssiSgW|g%tc4e))c)Cwn1jkdQjMFK<42Sv^`po>wDnSI~#AtVH9_p=Hv4 z?E+h`Nu`N_;b({A^xa^B=7$jz5uMdM%oU{jDkGNEL>Xi9ePJIc^XchxQ-{FwA%Qo< z7qF&?vVHDlehgqVc3{{1m1mxb%iKBks8ax}AI$t;sW*4Qjf+c>>1nq+|6Io}94t0f zBB?x!$m1f7oFa?8TR|91rYO4CPPLQP_|J@!t>`c$HE>d-At#04`AMQRH3d3J~f@eipYkxamf zaOEk}t-Kny1nJ7#xmW6~0HdD4DmL!AM~dSfvr^@4g|Uv{;(hOgb9QS1GR;KYXwYe5 zRK`cwXnG+oep>tTqhFpc@5DCRFc7yVSTxQnvRwIH!sCnkMK{!!5uR+7HH0id({Ql|AbV%U>?>NzI>~%XN-0bh94LF1S=GjBQ7JE#WUsK45_O zf>R)w36Jp|-LV}E8rIxn(`zqWxYNeoA_6jVlBMt w`^$|!_WwnB-Fe%Y`~Ugh|8G=qDzp=`ige1|33T}IFT?;C>6z#fb)0bj1KQ;Z`2YX_ literal 0 HcmV?d00001 diff --git a/weather-widget/icons/weather-underground-icons/clear-sky.png b/weather-widget/icons/weather-underground-icons/clear-sky.png new file mode 100755 index 0000000000000000000000000000000000000000..acf8e5cd108a3d4beecfbd8415111d6594d77753 GIT binary patch literal 1029 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 TIp*zM;{vECYA966S%&`)ZTg3Q literal 0 HcmV?d00001 diff --git a/weather-widget/icons/weather-underground-icons/few-clouds.png b/weather-widget/icons/weather-underground-icons/few-clouds.png new file mode 100755 index 0000000000000000000000000000000000000000..7580fc5a9519d884b1393a69ef332a0be930af6f GIT binary patch literal 1634 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD~={fzcwsC&U%V{SOA;mdjuuX}Abb z36KpTzb!`>N0I^>B88+Fp%PgQ*g_Bi5kzLd*>LqBbs&|}5C)hHbqPcSs1kzE6u`Nd zTHsR18X-196eEixYln*;(z$*R7)CtJGo}Ttjtt()ngl4lM18*^e9~ z*gmj7nx7_W7$%~9aMhLO2MaqcG;`cKJnzV5J&`wZr`~=3Yk#QkA$b~!He1%J&S^^mW* zYAYNg`^B&P@oGy>;kn_vA$b1&HS4l}T2xQ_`gUbNgNgLVMPld5-t0NB?j%dl-0;5# z)n5b&=WUnHl6!b-Ub_8q=Q$?Ylf(aAZjHXT^Mc4O=l)B&F;T%$u`)7u)DzyY>wRQ$ zi+gy+>~RiXD05NLArISH57BD{&Uydd?7#BB<#a;7sbpmXch3)xuXkh3U!1O+pQxOC z>-s~^O%LOFl!?kaeW!IeM{1kseD%Za%!`W#5 zC-+~44_7bUcks##EB$jRb!Ts7&Q0*VE8r&ObLixSJ%@F#rav&uWD@rGx#j%fEYpg# z6?Iuok0oQ;C!2p}2<0j^_0c}a;Kp`^CI6OA%9aC8)&lV>X38g=TJ5pf+T)q5*^&(o zYgSI175Rd>{`SWI*S0ho@IAQScd_hk%&`cC4HGygXDts-cU`Sywd!2F#ah0(hi(OZ zsQmvvA;!jabH=&dlMO$7p8x+yzFzrx+j4ou2KTFPdtW54=L_L1)UseGFMcNUtG0qw zu>H;1qth?&{+n5@74IPXo^9Vl1FxqM1^17{IPQ)+DI}X3xJpcS^pln%qC7-uYb1!tjoo-VHCGPG`Q$zocXH<=(R2hQW$?9j4+B ze+qr+NHgY4pQD?ac`&nCTSwV4;@4TV`PZ5Y^IT@@teMGsBJ_CEx9CklQ*GvL%=B0{ zV|(K-7TH}-LYuCe8hRRR-)Fw`bNqx5h4nW7+}0V{a~VFL9$^`t+10UG_W8USN4`D! zz;ONg_w@W)txq#gZR+2C_hQ0+uiM49K9pBw|)J)^ru)I(GFa?>Op`-~GE0>KSj z|0Zm7;=LT)QFY1nPNPzDOzq7VVj-1%iHp*1l`U4&4Vm5gh}&>)(!H3cVd6@anJ*G1 ztx@@6AaXxGHr?g-?mWlE9v$B%Z&(mn9(8(&{}G8^jy@3h7hlhCy7J5EtL{E(zygoK M)78&qol`;+0CaY1iU0rr literal 0 HcmV?d00001 diff --git a/weather-widget/icons/weather-underground-icons/mist-night.png b/weather-widget/icons/weather-underground-icons/mist-night.png new file mode 100755 index 0000000000000000000000000000000000000000..102142a239ae2ff93f0b63119eb555e3e3370082 GIT binary patch literal 1042 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 b{PB#puke(aTQKzi^E-p5tDnm{r-UW|;ps;f literal 0 HcmV?d00001 diff --git a/weather-widget/icons/weather-underground-icons/snow.png b/weather-widget/icons/weather-underground-icons/snow.png new file mode 100755 index 0000000000000000000000000000000000000000..0a7f006b266013503ffc9a6d680f3e130fa86e8f GIT binary patch literal 1191 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&)dl#3xB}_I9ajblt(>s^FVF>= zB|(0{42JuktTVg!%SYx*OGRdU8kVMQc0b zC+WBuJ9n}%)+f6J)m&r~$mqEBM|38W)%?yDUNM0N#!re3HHpoWoH#U?pExTlnfixuX9vUV&x#xDPdrohHZ)?@O4IXUJlpZ)=7*`C;l@o4PPH3;cnt&**FHzP~i ziTx|PgBy8w996i)R;9J?S^Kt{x`ovj&wkA?UC}X)Wf1WGXgA>mm54kX% z@x>W+Nu|{XCmy^tEBbe^{G9wtev^Xn zFB2W^+F4&Wv%V0?Yv(<9dZzTNhwM#X`OZ58syk0uR%MiTzAe+I{G!X+7j2B&r(C?ay8RSA2CZ|93D!dD{N1&(>?F?W^dK{ zXRVFQGoP@NYyGu9OHSrLZ;af2u0+oPYFSC=_ld>5nmLF%x>zJEq68y@W|OzOF(F^`||iT1s- z*S~(MRlN99z+vApW0oVoovuAIXHq?s(BLGpP;0V)_1t`}IX4gF+e%l#Y5CfWJ%o?LIS(?#_p(PD?%uEpCp{JdTXhHY88W2dLz7msaO zYcF#9RlJfrny^8I@WF@c*^GH!bt;gI2F!1T b{PB#puke(aTQKzi^E-p5tDnm{r-UW|;ps;f literal 0 HcmV?d00001 diff --git a/weather-widget/icons/weather-underground-icons/thunderstorm-night.png b/weather-widget/icons/weather-underground-icons/thunderstorm-night.png new file mode 100755 index 0000000000000000000000000000000000000000..210210435319ffe8cbb502195662b7b152d47839 GIT binary patch literal 2052 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 l&g!=cC;<{?z&Xvzx!uq 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 MmlG=!(f|Ix0I=7KF#rGn literal 0 HcmV?d00001 diff --git a/weather-widget/screenshots/weather-widget.png b/weather-widget/screenshots/weather-widget.png new file mode 100644 index 0000000000000000000000000000000000000000..c7fc37eccebe5e5ade6a02f6d29da3418369b4e0 GIT binary patch literal 26906 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�ZwLGxTJ6Vc4;p;`YiyE%ECgT{xEP;yY3%DaoL3@H-N(oVg`?%t(#=W*|y z(HKImpU=QUmxsZ&!#VpQ^`#OOD|TvQ3yMkkjI}h*Zw1`cMxf-6dmQZV$AJjs&t=_H zcH$jyyMHN4;os+4^C`gZ`f!@o?JkL=(dn&kRvBeZQ3Q1P#~b8&P?-D~Eyrf?B$-z6 z%aF)Lp%);mSqu*J_%X@K!oI`5f3LjM%K+Xuk^xFarC}>3Xe%JV@sZy>zU8PbKTs{G zsVzDfyJS`SCXx6fk5%?gk40{5!ypJ0I>FEC_H-K-rq=shB~!mj3=jG6m-+9jlx;R+ z>#Jrm`T7325&#TB!J`IkhxKD#t-g;Dx4l3>UtBZ<^32Ih>tK)7O0dWe59tmn5CAn^ zgBX4iQA%YkA|By>Em6Jo1qMqtqkQzSn3BTy$OX_)SFc|~by`E31?p+&brlq{Hhs?m z9n!}B4>{mZM;8w#@8y7S)tsgawn0THe2AW_vKyex)Dr6 z7>bF3dV0y2k_QJOe}^7gE`!svmG{T!ZFopXmrAkfn@xM@EvQCAyioib1R)qmRpP4Q zf8s#eiMKQ*yW^fCt9Ic7?X;8M0n@DA8%i zjqblIMZUkiBNe-S`+S#<#$N(Iw^q8mIGwGxarW=AYCTof#%ZQN*Nex3{5}=Q_Xtgw zr8*}Eb^XCRqa@%uNqH!l1tc&C->N1xvZ_`N6Qi`Zy_ zlkh(J+>I=F2C4J9A8}sa<9p@|9;l+JJ`672>Qr7VG@N`>*orl13|jC$t!Fa$rZ87# zkh1!t3kcGWpE1X$Eay@hh09j8X(GW10o+;aUjzMsrbbiS)PK0d1m))!($doJ?7fzL zb%Kqk5Z>n29|b@bgw>h$mxUv7N#Mx+d_1#6<)HL1-Y*%V@Xkq+=_~K!WfCz@nZIM< zY*_>!6W^#6L~M@9Lw_!)D47!$&a@hd5({$_D~NMOXgMu+)Y=_f8FilIq2)jWBht$p zcCJ3?hrRRk@{Nt{cB`A$urYr_Do_aDJN&Izyg&+0OvD|Q_o^`>D%4~^eDTmr%%{#2 zEr{J?%99lx-I@7uhCB`_XEq_94EMzJYuVa_^!}@;N5!;)jvMDmXAKHf1#}OV1V|3F zP?bS*5)Un0Aq|qFDzEYXZ{RW60RlT(<^TES|7{fKGvc9rvfX z1u7GV4-E99hpf&Xv!33xEH0+BI`r&f6Fl>Lz?P#P>3{G7xue%|Wb9pd8Z|ECZQN?O-UW;l5*`+%y2>m&bV;4{H{?V5WG?FE_m$|L% z{oGOIFo?M`X0p4ObL4!F$?H6?TlPmeotpymwD_EUJ7gZ(&0(bt26;HG@G=T)l@Xa3 z;E?iJ34)sVg~(+_qmC-`mo^8&a|Lf!4`Vh9=ZZ_S)q6gip`D+C;=+C3`+{W2V9T0d2;vOza zw1>GchB-hkH}SaGCUFMUE?EjCi*+CFOSr48ezhZ$KZ`A0QUh03bnCwB#OT#UVu+Nk zFwr9#phl3#DKf552$61ZKt% zhMx*u`>$6Jx{llLJB_L>XLmM0t0%MW?XBKML}Uejw(LDyhNKnI7DXM0RtwH|PK7B* z-Uf-TP3oA$5TDNtCZmDt0^6V3{i2||dutt!DN8`-%tltzh&B7%kM(RZU;4INv^I8a zn6&sFZ5=bMQVj3FNjie$*>rc*7Q@3304*rdb2ufcr#)Qwe*8997}-soITESa_wgXB zVWQoA5U2*wi6}(s6KEujU}B=hq=~eTzockCj&(13A1gx9Y4hBj`(Ug3Ex3w??lrmS zI{xbgU=Ug#-RT?}bb$YI4U^b-zslDx^$DCu>HQhp&nK7bFnC46>-;EmmECxWkTgOvad+nS|m3ulrdi^R-cB_p9fzoorCd3 zP5toO=a%cPPc(xlmj^;m=i@!|p4dohDWfDsBXMm&^yyvt0C-%yA*VBoiO=Fs{dm$L zpse#Y#hHLz&NpcU9bziJ<(gR3+S;nO+|5idw(xl0!93&4md4F3LPH~4R;DAgxp<2X z4EhZ*3fGhF7xfAOK>pOQF>#g}JWKO-b&ZS5$jq4l9?3L=hyG?r`Jp3#LG(1}e4AQ< zY~wHN`|y)06bOu;1Ne(&XU5QzD}Ntc0@q{C%NsLMYH~Zes}#B49*x10o|qZj8CzRz~eA^BkwEIm*E3CeM}=f?=KP%0Gf{&tTmzL39%Wg>4KbonIM~*8Vzse5gi1pT;Iu!<*>b$)O4R z@pCQkplLW=1bO`YHt;bV>L;&S^qcbKmh`_n`+DqMWMi^?U2@=cqK5Lg^=zJKSINmM zx4Ir&J<-S(1qvKbrRoj~)nQCe%0Z;l_Ka*-El;|8fw#!F?Ky`MwGsE^PN($abGPLA zHF}sjn^C)UvoR$ku>|%D21|Xn#jLEYExx4yG8I{LCiC{;US|Vi?9X_Q)xq>LE8Y6h z*ze{QLj=Q71Q`B36Z3N>OctJ24GOU=4$pz8;$}(NxLco@ESk=vT>%%lR8Rg=^@(__ zy}&aIU(2>|)&p%e<7%e0U+_t*D}z@r=Sj34m}STBTgF#&tVYMjLv;yXP&(Aktb64I^j=px736zcHlBftg#@D99+o16YB4Vv4w=Z` zI{*Yih5q}GfM{D*;07wJnFTwqsR1yx&H$xDib2d2kpWuYy8xDF$qleW>sJG_%1hOy z=JJ&r(pl(*eQix&h%>qN?>s7kuruLDm6*igOUq-0`AiIhi-@`@1Vn56%)s_b40ttU$1a^-`zW`U4a~IMuF+H zQmEzRlvPwTn6MF4so$A!*UXY+(-4xT2tVgl2$(Id-hRWH{#lt=X#NoKAllR6^QrK& zr{={zEjqJS`470gj?^d_Q2GE|6c9n7oJpoaxvJ?1;sxqssk}bGxY-sv`nAnYC;dHM z8{@Rf-*)CbNuwjal8I%A zD*uW8VV$b$1GvTZCcArG%jbCLL349^f0KR=uebfm^wQ{u`!N$)%;zEh{z}J&-$15r z6KLu(YSq&hz`+Kti!0)Evy@9an_% zSZQz8r#C84E}+%lYB~8w^9~DO($x7K&<%fk6A=#-bF7tbOQV8lK`!cLMY3!hZ-szg z#6E7j;I~E>iLvBaqu*>H!co!V{z-Tk2{X~dm)FAP13|p}v{-_5A zCZ*|nT5sjNg8xE^uS8oyrYsq7#FzY7x{|D;osSv}NjUq84#-q}OWL0&^x5ywOY|&M z`oP0)LlDa_9uLn+8joksA=38luvrWcVAd1R>0Bk;jzHDqN$={riFj|)XYb6L=j_+; z8@=ayKy||x#afp1pb3+WX)?FE@twr`r1K}M^MQt?dw|%}sL?vT-EWJY+;3YypZM|$ zPdA1x%KTOPX7Q*q%-R@hoOEfWM#H<}xcRR#Nw|8t39_PLnr8xML$sm+``xg~6ad-o z4>}%&#}{t@Ym=ifR+ ztkDx3Jzn*y3G;?ryfk4`Oz_g(VgPj*Ojo3F_#)NcDyQL~7_SlWyI15~MtTaLTMroI;_4;n_wajwRm|GTMkC$i{iOJptVTG3U^v?yH}~e_ zQ?!LPzHbT{n`S<5O8zM5YaTo`My5bL;hXY@KxKIcrMA|XTIor4y^EPTwPJ+=fEH34 zzHFO~j$bm`&>+ApWRRoEu<3RlXot~j&!acBJ(KJaVf+zlQv;l&fAJFZOfnmE&)#Zs zaaGeB9yPTMt@i2Nt}vLX8v7NvzrNn)f2n`IYzLfoK=v?OB;Arl;l4_0WGJ7LWSqrb ziTA3>h2;_zNEW8Zp}THCpmqhvVi)U0{Fh5ihJM?}(Cwq5^-F+{V6J;8S^w>~A@X^r z_<4{4NGCi9d#+h#UJG~05-xxare%oTSR2N{BIBEtMf^U8Uyk)PA=MjX5_ktyMKNQN zx{>q?kPIOxR0V6K7Nw+=F=?{Q2Gpe|Bas9G*_;=$r_JP+7OE;#Wg!HQa-N|`Acl!U zIb=fjU!F_NV+Rp{cFUd73h*LtQ}Z9;3bEZtUyAX$kVEkaOROAiTTw_u2Pg{R@50r8 ziPNNMdT;R46D2Z7VaR+BmVkn=Lc5IEEU=-Rx=BO5hLVtoX)v};+-1_ReY4PQi9jO5 z9@0d3Vl$(z)M|hIldF-G|14A>&Q*6d6h+am$Ty zg-D$t!D1~4W59^y3aQ+KZWv>@Qj~I1lwY6{c$Xny8$x45%05Z9Vcs*Yh=f|XNX}l+ zpgG1aBYP9G0Ik z`AG_#ASVTeg5{9_5`$c>6lwyn0|aGI*e(l`0}g|Jkpjz8OC_OVN1_57nWUjgjG-K6 z_``eB36yCh5*L;%1KB=iPW~`*rN8a_?@Pw2Bo-uqFk^G;m)gE zHE?r?EzYaZuPRsw;@zgy*tiH7a$}U4@(SF9aIS4ec0$?^Y!{Z~$JSwJh!q}-OfV`H zibPT{7Gw$)5ie%wrvQ>g3= 0 and uvi < 3 then color = '#A3BE8C' + elseif uvi >= 3 and uvi < 6 then color = '#EBCB8B' + elseif uvi >= 6 and uvi < 8 then color = '#D08770' + elseif uvi >= 8 and uvi < 11 then color = '#BF616A' + elseif uvi >= 11 then color = '#B48EAD' + end + + return '' .. uvi .. '' +end local function worker(args) local args = args or {} - local font = args.font or 'Play 9' - local city = args.city or 'Montreal,ca' - local api_key = args.api_key or naughty.notify{preset = naughty.config.presets.critical, text = 'OpenweatherMap API key is not set'} + --- Validate required parameters + if args.coordinates == nil or args.api_key == nil then + show_warning('Required parameters are not set: ' .. + (args.coordinates == nil and 'coordinates' or '') .. + (args.api_key == nil and ', api_key ' or '')) + return + end + + local coordinates = args.coordinates + local api_key = args.api_key + local font_name = args.font_name or beautiful.font:gsub("%s%d+$", "") local units = args.units or 'metric' + local time_format_12h = args.time_format_12h local both_units_widget = args.both_units_widget or false - local both_units_popup = args.both_units_popup or false - local position = args.notification_position or "top_right" + local show_hourly_forecast = args.show_hourly_forecast + local show_daily_forecast = args.show_daily_forecast + local icon_pack_name = args.icons or 'weather-underground-icons' + local icons_extension = args.icons_extension or '.png' - local weather_api_url = ( - 'https://api.openweathermap.org/data/2.5/weather' - .. '?q=' .. city - .. '&appid=' .. api_key - .. '&units=' .. units - ) - - local icon_widget = wibox.widget { - { - id = "icon", - resize = false, - widget = wibox.widget.imagebox, - }, - layout = wibox.container.margin(_, 0, 0, 3), - set_image = function(self, path) - self.icon.image = path - end, - } - - local temp_widget = wibox.widget { - font = font, - widget = wibox.widget.textbox, - } + local owm_one_cal_api = + ('https://api.openweathermap.org/data/2.5/onecall' .. + '?lat=' .. coordinates[1] .. '&lon=' .. coordinates[2] .. '&appid=' .. api_key .. + '&units=' .. units .. '&exclude=minutely' .. + (show_hourly_forecast == false and ',hourly' or '') .. + (show_daily_forecast == false and ',daily' or '')) weather_widget = wibox.widget { - icon_widget, - temp_widget, + { + { + id = 'icon', + resize = true, + widget = wibox.widget.imagebox + }, + valign = 'center', + widget = wibox.container.place, + }, + { + id = 'txt', + widget = wibox.widget.textbox + }, layout = wibox.layout.fixed.horizontal, - } - - --- Maps openWeatherMap icons to Arc icons - local icon_map = { - ["01d"] = "weather-clear-symbolic.svg", - ["02d"] = "weather-few-clouds-symbolic.svg", - ["03d"] = "weather-clouds-symbolic.svg", - ["04d"] = "weather-overcast-symbolic.svg", - ["09d"] = "weather-showers-scattered-symbolic.svg", - ["10d"] = "weather-showers-symbolic.svg", - ["11d"] = "weather-storm-symbolic.svg", - ["13d"] = "weather-snow-symbolic.svg", - ["50d"] = "weather-fog-symbolic.svg", - ["01n"] = "weather-clear-night-symbolic.svg", - ["02n"] = "weather-few-clouds-night-symbolic.svg", - ["03n"] = "weather-clouds-night-symbolic.svg", - ["04n"] = "weather-overcast-symbolic.svg", - ["09n"] = "weather-showers-scattered-symbolic.svg", - ["10n"] = "weather-showers-symbolic.svg", - ["11n"] = "weather-storm-symbolic.svg", - ["13n"] = "weather-snow-symbolic.svg", - ["50n"] = "weather-fog-symbolic.svg" - } - - --- Return wind direction as a string. - local function to_direction(degrees) - -- Ref: https://www.campbellsci.eu/blog/convert-wind-directions - if degrees == nil then - return "Unknown dir" - end - local directions = { - "N", - "NNE", - "NE", - "ENE", - "E", - "ESE", - "SE", - "SSE", - "S", - "SSW", - "SW", - "WSW", - "W", - "WNW", - "NW", - "NNW", - "N", - } - return directions[math.floor((degrees % 360) / 22.5) + 1] - end - - -- Convert degrees Celsius to Fahrenheit - local function celsius_to_fahrenheit(c) - return c*9/5+32 - end - - -- Convert degrees Fahrenheit to Celsius - local function fahrenheit_to_celsius(f) - return (f-32)*5/9 - end - - local weather_timer = gears.timer({ timeout = 60 }) - local resp - - local function gen_temperature_str(temp, fmt_str, show_other_units) - local temp_str = string.format(fmt_str, temp) - local s = temp_str .. '°' .. (units == 'metric' and 'C' or 'F') - - if (show_other_units) then - local temp_conv, units_conv - if (units == 'metric') then - temp_conv = celsius_to_fahrenheit(temp) - units_conv = 'F' + set_image = function(self, path) + self:get_children_by_id('icon')[1].image = path + end, + set_text = function(self, text) + self:get_children_by_id('txt')[1].text = text + end, + is_ok = function(self, is_ok) + if is_ok then + self:get_children_by_id('icon')[1]:set_opacity(1) + self:get_children_by_id('icon')[1]:emit_signal('widget:redraw_needed') else - temp_conv = fahrenheit_to_celsius(temp) - units_conv = 'C' + self:get_children_by_id('icon')[1]:set_opacity(0.2) + self:get_children_by_id('icon')[1]:emit_signal('widget:redraw_needed') end - - local temp_conv_str = string.format(fmt_str, temp_conv) - s = s .. ' ' .. '('.. temp_conv_str .. '°' .. units_conv .. ')' end - return s - end + } - local function error_display(resp_json) - weather_timer.timeout = math.min(15 * 60, weather_timer.timeout * 2) - weather_timer:again() - local err_resp = json.decode(resp_json) - naughty.notify{ - title = 'Weather Widget Error', - text = err_resp.message, - preset = naughty.config.presets.critical, - } - end - - weather_timer:connect_signal("timeout", function () - local resp_json = {} - local res, status = http.request{ - url=weather_api_url, - sink=ltn12.sink.table(resp_json), - -- ref: - -- http://w3.impa.br/~diego/software/luasocket/old/luasocket-2.0/http.html - create=function() - -- ref: https://stackoverflow.com/a/6021774/595220 - local req_sock = socket.tcp() - -- 't' — overall timeout - req_sock:settimeout(0.2, 't') - -- 'b' — block timeout - req_sock:settimeout(0.001, 'b') - return req_sock - end - } - if (resp_json ~= nil) then - resp_json = table.concat(resp_json) + local current_weather_widget = wibox.widget { + { + { + { + id = 'icon', + resize = true, + forced_width = 128, + forced_height = 128, + widget = wibox.widget.imagebox + }, + align = 'center', + widget = wibox.container.place + }, + { + id = 'description', + font = font_name .. ' 10', + align = 'center', + widget = wibox.widget.textbox + }, + forced_width = 128, + layout = wibox.layout.align.vertical + }, + { + { + { + id = 'temp', + font = font_name .. ' 48', + widget = wibox.widget.textbox + }, + { + id = 'feels_like_temp', + align = 'center', + font = font_name .. ' 9', + widget = wibox.widget.textbox + }, + layout = wibox.layout.fixed.vertical + }, + { + { + id = 'wind', + font = font_name .. ' 9', + widget = wibox.widget.textbox + }, + { + id = 'humidity', + font = font_name .. ' 9', + widget = wibox.widget.textbox + }, + { + id = 'uv', + font = font_name .. ' 9', + widget = wibox.widget.textbox + }, + expand = 'inside', + layout = wibox.layout.align.vertical + }, + spacing = 16, + forced_width = 150, + layout = wibox.layout.fixed.vertical + }, + forced_width = 300, + layout = wibox.layout.flex.horizontal, + update = function(self, weather) + self:get_children_by_id('icon')[1]:set_image(WIDGET_DIR .. '/icons/' .. icon_pack_name .. '/' .. icon_map[weather.weather[1].icon] .. icons_extension) + self:get_children_by_id('temp')[1]:set_text(gen_temperature_str(weather.temp, '%.0f', false, units)) + self:get_children_by_id('feels_like_temp')[1]:set_text('Feels like ' .. gen_temperature_str(weather.feels_like, '%.0f', false, units)) + self:get_children_by_id('description')[1]:set_text(weather.weather[1].description) + self:get_children_by_id('wind')[1]:set_markup('Wind: ' .. weather.wind_speed .. 'm/s (' .. to_direction(weather.wind_deg) .. ')') + self:get_children_by_id('humidity')[1]:set_markup('Humidity: ' .. weather.humidity .. '%') + self:get_children_by_id('uv')[1]:set_markup('UV: ' .. uvi_index_color(weather.uvi)) end + } - if (status ~= 200 and resp_json ~= nil and resp_json ~= '') then - if (not pcall(error_display, resp_json)) then - naughty.notify{ - title = 'Weather Widget Error', - text = 'Cannot parse answer', - preset = naughty.config.presets.critical, + + local daily_forecast_widget = { + forced_width = 300, + layout = wibox.layout.flex.horizontal, + update = function(self, forecast, timezone_offset) + local count = #self + for i = 0, count do self[i]=nil end + for i, day in ipairs(forecast) do + if i > 5 then break end + local day_forecast = wibox.widget { + { + text = os.date('%a', tonumber(day.dt) + tonumber(timezone_offset)), + align = 'center', + font = font_name .. ' 9', + widget = wibox.widget.textbox + }, + { + { + { + image = WIDGET_DIR .. '/icons/' .. icon_pack_name .. '/' .. icon_map[day.weather[1].icon] .. icons_extension, + resize = true, + forced_width = 48, + forced_height = 48, + widget = wibox.widget.imagebox + }, + align = 'center', + layout = wibox.container.place + }, + { + text = day.weather[1].description, + font = font_name .. ' 8', + align = 'center', + forced_height = 50, + widget = wibox.widget.textbox + }, + layout = wibox.layout.fixed.vertical + }, + { + { + text = gen_temperature_str(day.temp.day, '%.0f', false, units), + align = 'center', + font = font_name .. ' 9', + widget = wibox.widget.textbox + }, + { + text = gen_temperature_str(day.temp.night, '%.0f', false, units), + align = 'center', + font = font_name .. ' 9', + widget = wibox.widget.textbox + }, + layout = wibox.layout.fixed.vertical + }, + spacing = 8, + layout = wibox.layout.fixed.vertical } + table.insert(self, day_forecast) end - elseif (resp_json ~= nil and resp_json ~= '') then - resp = json.decode(resp_json) - icon_widget.image = path_to_icons .. icon_map[resp.weather[1].icon] - temp_widget:set_text(gen_temperature_str(resp.main.temp, '%.0f', both_units_widget)) - weather_timer.timeout = 60 - weather_timer:again() end - end) - weather_timer:start() - weather_timer:emit_signal("timeout") + } - --- Notification with weather information. Popups when mouse hovers over the icon - local notification - weather_widget:connect_signal("mouse::enter", function() - notification = naughty.notify{ - icon = path_to_icons .. icon_map[resp.weather[1].icon], - icon_size=20, - text = - '' .. resp.weather[1].main .. ' (' .. resp.weather[1].description .. ')
' .. - 'Humidity: ' .. resp.main.humidity .. '%
' .. - 'Temperature: ' .. gen_temperature_str(resp.main.temp, '%.1f', - both_units_popup) .. '
' .. - 'Pressure: ' .. resp.main.pressure .. 'hPa
' .. - 'Clouds: ' .. resp.clouds.all .. '%
' .. - 'Wind: ' .. resp.wind.speed .. 'm/s (' .. to_direction(resp.wind.deg) .. ')', - timeout = 5, hover_timeout = 10, - position = position, - screen = mouse.screen, - width = (both_units_popup == true and 210 or 200) + local hourly_forecast_graph = wibox.widget { + step_width = 12, + color = '#EBCB8B', + background_color = beautiful.bg_normal, + forced_height = 100, + forced_width = 300, + widget = wibox.widget.graph, + set_max_value = function(self, new_max_value) + self.max_value = new_max_value + end, + set_min_value = function(self, new_min_value) + self.min_value = new_min_value + end + } + + local hourly_forecast_widget = { + layout = wibox.layout.fixed.vertical, + update = function(self, hourly) + local hours_below = { + id = 'hours', + layout = wibox.layout.flex.horizontal + } + local temp_below = { + id = 'temp', + forced_width = 300, + layout = wibox.layout.flex.horizontal + } + + local max_temp = -1000 + local min_temp = 1000 + local values = {} + for i, hour in ipairs(hourly) do + if i > 25 then break end + values[i] = hour.temp + if max_temp < hour.temp then max_temp = hour.temp end + if min_temp > hour.temp then min_temp = hour.temp end + if (i - 1) % 5 == 0 then + table.insert(hours_below, wibox.widget { + text = os.date(time_format_12h and '%I%p' or '%H:00', tonumber(hour.dt)), + align = 'center', + font = font_name .. ' 9', + widget = wibox.widget.textbox + }) + table.insert(temp_below, wibox.widget { + markup = '' .. string.format('%.0f', hour.temp) .. '°' .. '', + align = 'center', + font = font_name .. ' 9', + widget = wibox.widget.textbox + }) + end + end + hourly_forecast_graph:set_max_value(max_temp) + hourly_forecast_graph:set_min_value(min_temp * 0.7) -- move graph a bit up + for i, value in ipairs(values) do + hourly_forecast_graph:add_value(value) + end + + local count = #self + for i = 0, count do self[i]=nil end + + + table.insert(self, temp_below) + table.insert(self, wibox.widget{ + { + hourly_forecast_graph, + reflection = {horizontal = true}, + widget = wibox.container.mirror + }, + { + temp_below, + valign = 'bottom', + widget = wibox.container.place + }, + id = 'graph', + layout = wibox.layout.stack + }) + table.insert(self, hours_below) + end + } + + local function update_widget(widget, stdout, stderr) + if stderr ~= '' then + if not warning_shown then + show_warning(stderr) + warning_shown = true + widget:is_ok(false) + tooltip:add_to_object(widget) + + widget:connect_signal('mouse::enter', function() tooltip.text = stderr end) + end + return + end + + warning_shown = false + tooltip:remove_from_object(widget) + widget:is_ok(true) + + local result = json.decode(stdout) + + widget:set_image(WIDGET_DIR .. '/icons/' .. icon_pack_name .. '/' .. icon_map[result.current.weather[1].icon] .. icons_extension) + widget:set_text(gen_temperature_str(result.current.temp, '%.0f', both_units_widget, units)) + + current_weather_widget:update(result.current) + + local final_widget = { + current_weather_widget, + spacing = 16, + layout = wibox.layout.fixed.vertical } - end) - weather_widget:connect_signal("mouse::leave", function() - naughty.destroy(notification) - end) + if show_hourly_forecast then + hourly_forecast_widget:update(result.hourly) + table.insert(final_widget, hourly_forecast_widget) + end + + if show_daily_forecast then + daily_forecast_widget:update(result.daily, result.timezone_offset) + table.insert(final_widget, daily_forecast_widget) + end + + weather_popup:setup({ + { + final_widget, + margins = 10, + widget = wibox.container.margin + }, + bg = beautiful.bg_normal, + widget = wibox.container.background + }) + end + + weather_widget:buttons(awful.util.table.join(awful.button({}, 1, function() + if weather_popup.visible then + weather_popup.visible = not weather_popup.visible + else + weather_popup:move_next_to(mouse.current_widget_geometry) + end + end))) + + -- watch('cat /home/pmakhov/.config/awesome/awesome-wm-widgets/weather-widget/weather.json', 5, update_widget, weather_widget) + watch(string.format(GET_FORECAST_CMD, owm_one_cal_api), 5, update_widget, weather_widget) return weather_widget end -return setmetatable(weather_widget, { __call = function(_, ...) - return worker(...) -end }) +return setmetatable(weather_widget, {__call = function(_, ...) return worker(...) end})