[gnome-weather/ewlsh/weather-icons] Bundle colorful weather icons as resources. - Moves icon lookup logic to Weather for more finegraine




commit 5fabf65cd9bfac0b20a75044c7f821e015f42a4c
Author: Evan Welsh <contact evanwelsh com>
Date:   Tue Aug 11 10:59:32 2020 -0500

    Bundle colorful weather icons as resources.
    - Moves icon lookup logic to Weather for more finegrained options.

 data/org.gnome.Weather.data.gresource.xml |  14 ++++
 data/status/weather-clear-night.svg       |  64 ++++++++++++++++++
 data/status/weather-clear.svg             |  15 ++++
 data/status/weather-few-clouds-night.svg  |  70 +++++++++++++++++++
 data/status/weather-few-clouds.svg        |  17 +++++
 data/status/weather-fog.svg               |  19 ++++++
 data/status/weather-overcast.svg          |   9 +++
 data/status/weather-severe-alert.svg      |  12 ++++
 data/status/weather-showers-scattered.svg |  17 +++++
 data/status/weather-showers.svg           |  21 ++++++
 data/status/weather-snow.svg              |  25 +++++++
 data/status/weather-storm.svg             |  33 +++++++++
 data/status/weather-tornado.svg           |  27 ++++++++
 data/status/weather-windy.svg             |  23 +++++++
 src/app/city.js                           | 109 +++++++++++++++++++++++++++++-
 15 files changed, 474 insertions(+), 1 deletion(-)
---
diff --git a/data/org.gnome.Weather.data.gresource.xml b/data/org.gnome.Weather.data.gresource.xml
index eb357d3..78fe8ca 100644
--- a/data/org.gnome.Weather.data.gresource.xml
+++ b/data/org.gnome.Weather.data.gresource.xml
@@ -9,6 +9,20 @@
     <file preprocess="xml-stripblanks">hour-entry.ui</file>
     <file preprocess="xml-stripblanks">day-entry.ui</file>
     <file>application.css</file>
+    <!-- Status Icons -->
+    <file>status/weather-clear.svg</file>
+         <file>status/weather-clear-night.svg</file>
+         <file>status/weather-few-clouds.svg</file>
+         <file>status/weather-few-clouds-night.svg</file>
+         <file>status/weather-fog.svg</file>
+         <file>status/weather-overcast.svg</file>
+         <file>status/weather-severe-alert.svg</file>
+         <file>status/weather-showers.svg</file>
+         <file>status/weather-showers-scattered.svg</file>
+         <file>status/weather-snow.svg</file>
+         <file>status/weather-storm.svg</file>
+         <file>status/weather-tornado.svg</file>
+         <file>status/weather-windy.svg</file>
   </gresource>
   <gresource prefix="/org/gnome/shell">
     <file>ShellWeatherIntegration.xml</file>
diff --git a/data/status/weather-clear-night.svg b/data/status/weather-clear-night.svg
new file mode 100644
index 0000000..d61471b
--- /dev/null
+++ b/data/status/weather-clear-night.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <radialGradient id="a" cx="66.351357" cy="215.690948" gradientTransform="matrix(1.267811 0 0 1.316795 
-17.769594 -241.114555)" gradientUnits="userSpaceOnUse" r="57.147449">
+        <stop offset="0" stop-color="#f6f5f4"/>
+        <stop offset="0.826966" stop-color="#c9c8c5"/>
+        <stop offset="1" stop-color="#e1e1e1"/>
+    </radialGradient>
+    <linearGradient id="b" gradientUnits="userSpaceOnUse">
+        <stop offset="0" stop-color="#fdfacf"/>
+        <stop offset="0.4" stop-color="#f9f06b"/>
+        <stop offset="1" stop-color="#f6d32d"/>
+    </linearGradient>
+    <linearGradient id="c" gradientTransform="matrix(0.376795 -0.376795 0.376795 0.376795 -37.010773 
-4.914297)" x1="160.234024" x2="160.234024" xlink:href="#b" y1="218.688614" y2="257.980621"/>
+    <linearGradient id="d" gradientUnits="userSpaceOnUse">
+        <stop offset="0" stop-color="#f5c211"/>
+        <stop offset="1" stop-color="#f5c211" stop-opacity="0"/>
+    </linearGradient>
+    <radialGradient id="e" cx="107.50499" cy="217.035126" gradientTransform="matrix(5.443289 0.0167383 
-0.0118364 3.849196 -474.611847 -814.383657)" r="2.35742" xlink:href="#d"/>
+    <filter id="f" height="100%" width="100%" x="0%" y="0%">
+        <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+    </filter>
+    <mask id="g">
+        <g filter="url(#f)">
+            <rect fill-opacity="0.442" height="128" width="128"/>
+        </g>
+    </mask>
+    <linearGradient id="h" gradientUnits="userSpaceOnUse">
+        <stop offset="0" stop-color="#fefbee"/>
+        <stop offset="1" stop-color="#f6ce43" stop-opacity="0.925197"/>
+    </linearGradient>
+    <radialGradient id="i" cx="104.183548" cy="209.276962" gradientTransform="matrix(1.59822 0 0 1.662441 
-61.748764 -327.676702)" r="9.074218" xlink:href="#h"/>
+    <clipPath id="j">
+        <rect height="128" width="128"/>
+    </clipPath>
+    <linearGradient id="k" gradientTransform="matrix(0.269905 -0.269905 0.269905 0.269905 -9.873905 
34.436936)" x1="160.234024" x2="160.234024" xlink:href="#b" y1="218.688614" y2="257.980621"/>
+    <radialGradient id="l" cx="107.50499" cy="217.035126" gradientTransform="matrix(3.899127 0.01199 
-0.00847864 2.75725 -323.335567 -545.400788)" r="2.35742" xlink:href="#d"/>
+    <mask id="m">
+        <g filter="url(#f)">
+            <rect fill-opacity="0.442" height="128" width="128"/>
+        </g>
+    </mask>
+    <radialGradient id="n" cx="104.183548" cy="209.276962" gradientTransform="matrix(1.144834 0 0 1.190837 
-27.594181 -196.763685)" r="9.074218" xlink:href="#h"/>
+    <clipPath id="o">
+        <rect height="128" width="128"/>
+    </clipPath>
+    <path d="m 63.851562 4.644531 c -32.78125 0 -59.355468 26.574219 -59.355468 59.355469 s 26.574218 
59.355469 59.355468 59.355469 c 24.105469 0 45.816407 -14.578125 54.9375 -36.894531 c -2.679687 0.503906 
-5.402343 0.753906 -8.128906 0.753906 c -24.472656 0 -44.308594 -19.839844 -44.308594 -44.308594 c 0 
-13.65625 6.296876 -26.546875 17.0625 -34.945312 c -6.289062 -2.195313 -12.902343 -3.316407 -19.5625 
-3.316407 z m 0 0" fill="url(#a)"/>
+    <path d="m 80.65625 7.074219 c -9.117188 8.390625 -14.304688 20.210937 -14.304688 32.601562 c 0 0.535157 
0.011719 1.066407 0.027344 1.601563 c 0.484375 -13.074219 6.71875 -25.269532 17.039063 -33.316406 c -0.914063 
-0.316407 -1.835938 -0.613282 -2.761719 -0.886719 z m -76.136719 55.316406 c -0.015625 0.539063 -0.023437 
1.074219 -0.023437 1.609375 c 0 32.78125 26.574218 59.355469 59.355468 59.355469 c 24.105469 0 45.816407 
-14.578125 54.941407 -36.890625 c -0.519531 0.09375 -1.042969 0.183594 -1.5625 0.261718 c -9.9375 20.429688 
-30.660157 33.398438 -53.378907 33.398438 c -32.148437 0 -58.453124 -25.597656 -59.332031 -57.734375 z m 0 0" 
fill="#deddda"/>
+    <path d="m 126.148438 21 l -13.433594 4.714844 l -4.714844 13.433594 l -4.714844 -13.433594 l -13.433594 
-4.714844 l 13.433594 -4.714844 l 4.714844 -13.433594 l 4.714844 13.433594 z m 0 0" fill="url(#c)"/>
+    <path d="m 108 21 l 4.714844 4.714844 l 13.433594 -4.714844 z m 0 0" fill="#f5c211"/>
+    <path d="m 108 21 l -4.714844 4.714844 l -13.433594 -4.714844 z m 0 0" fill="#f5c211"/>
+    <path d="m 108 21 l 4.714844 4.714844 l -4.714844 13.433594 z m 0 0" fill="url(#e)"/>
+    <path d="m 108 21 l 4.714844 -4.714844 l -4.714844 -13.433594 z m 0 0" fill="#f5c211" 
fill-opacity="0.488189"/>
+    <g clip-path="url(#j)" mask="url(#g)">
+        <path d="m 108 21 l -4.714844 -4.714844 l -13.433594 4.714844 z m 0 0" fill="url(#i)"/>
+    </g>
+    <path d="m 107 53 l -9.621094 3.378906 l -3.378906 9.621094 l -3.378906 -9.621094 l -9.621094 -3.378906 
l 9.621094 -3.378906 l 3.378906 -9.621094 l 3.378906 9.621094 z m 0 0" fill="url(#k)"/>
+    <path d="m 94 53 l 3.378906 3.378906 l 9.621094 -3.378906 z m 0 0" fill="#f5c211"/>
+    <path d="m 94 53 l -3.378906 3.378906 l -9.621094 -3.378906 z m 0 0" fill="#f5c211"/>
+    <path d="m 94 53 l 3.378906 3.378906 l -3.378906 9.621094 z m 0 0" fill="url(#l)"/>
+    <path d="m 94 53 l 3.378906 -3.378906 l -3.378906 -9.621094 z m 0 0" fill="#f5c211" 
fill-opacity="0.488189"/>
+    <g clip-path="url(#o)" mask="url(#m)">
+        <path d="m 94 53 l -3.378906 -3.378906 l -9.621094 3.378906 z m 0 0" fill="url(#n)"/>
+    </g>
+</svg>
diff --git a/data/status/weather-clear.svg b/data/status/weather-clear.svg
new file mode 100644
index 0000000..057d33f
--- /dev/null
+++ b/data/status/weather-clear.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientTransform="matrix(0.707107 0.707107 0.707107 -0.707107 0 -172)" 
gradientUnits="userSpaceOnUse" x1="188.443939" x2="261.099121" y1="-77.78183" y2="-150.437057">
+        <stop offset="0" stop-color="#f6d32d"/>
+        <stop offset="1" stop-color="#f5c211"/>
+    </linearGradient>
+    <radialGradient id="b" cx="280.994202" cy="488.848419" gradientTransform="matrix(0.347005 0 0 0.342234 
-33.50647 -129.482063)" gradientUnits="userSpaceOnUse" r="224">
+        <stop offset="0" stop-color="#fdfacf"/>
+        <stop offset="0.4" stop-color="#f9f06b"/>
+        <stop offset="1" stop-color="#f6d32d"/>
+    </radialGradient>
+    <path d="m 20 20 h 88 v 88 h -88 z m 0 0" fill="#f5c211"/>
+    <path d="m 2 64 l 62 62 l 62 -62 l -62 -62 z m 0 0" fill="url(#a)"/>
+    <path d="m 112 64 c 0 26.507812 -21.492188 48 -48 48 s -48 -21.492188 -48 -48 s 21.492188 -48 48 -48 s 
48 21.492188 48 48 z m 0 0" fill="url(#b)"/>
+</svg>
diff --git a/data/status/weather-few-clouds-night.svg b/data/status/weather-few-clouds-night.svg
new file mode 100644
index 0000000..c6dcbbe
--- /dev/null
+++ b/data/status/weather-few-clouds-night.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <radialGradient id="a" cx="66.351357" cy="215.690948" gradientTransform="matrix(1.267811 0 0 1.316795 
-17.769594 -241.114555)" gradientUnits="userSpaceOnUse" r="57.147449">
+        <stop offset="0" stop-color="#f6f5f4"/>
+        <stop offset="0.826966" stop-color="#c9c8c5"/>
+        <stop offset="1" stop-color="#e1e1e1"/>
+    </radialGradient>
+    <linearGradient id="b" gradientUnits="userSpaceOnUse">
+        <stop offset="0" stop-color="#fdfacf"/>
+        <stop offset="0.4" stop-color="#f9f06b"/>
+        <stop offset="1" stop-color="#f6d32d"/>
+    </linearGradient>
+    <linearGradient id="c" gradientTransform="matrix(0.376795 -0.376795 0.376795 0.376795 -37.010773 
-4.914297)" x1="160.234024" x2="160.234024" xlink:href="#b" y1="218.688614" y2="257.980621"/>
+    <linearGradient id="d" gradientUnits="userSpaceOnUse">
+        <stop offset="0" stop-color="#f5c211"/>
+        <stop offset="1" stop-color="#f5c211" stop-opacity="0"/>
+    </linearGradient>
+    <radialGradient id="e" cx="107.50499" cy="217.035126" gradientTransform="matrix(5.443289 0.0167383 
-0.0118364 3.849196 -474.611847 -814.383657)" r="2.35742" xlink:href="#d"/>
+    <filter id="f" height="100%" width="100%" x="0%" y="0%">
+        <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+    </filter>
+    <mask id="g">
+        <g filter="url(#f)">
+            <rect fill-opacity="0.442" height="128" width="128"/>
+        </g>
+    </mask>
+    <linearGradient id="h" gradientUnits="userSpaceOnUse">
+        <stop offset="0" stop-color="#fefbee"/>
+        <stop offset="1" stop-color="#f6ce43" stop-opacity="0.925197"/>
+    </linearGradient>
+    <radialGradient id="i" cx="104.183548" cy="209.276962" gradientTransform="matrix(1.59822 0 0 1.662441 
-61.748764 -327.676702)" r="9.074218" xlink:href="#h"/>
+    <clipPath id="j">
+        <rect height="128" width="128"/>
+    </clipPath>
+    <linearGradient id="k" gradientTransform="matrix(0.269905 -0.269905 0.269905 0.269905 -9.873905 
34.436936)" x1="160.234024" x2="160.234024" xlink:href="#b" y1="218.688614" y2="257.980621"/>
+    <radialGradient id="l" cx="107.50499" cy="217.035126" gradientTransform="matrix(3.899127 0.01199 
-0.00847864 2.75725 -323.335567 -545.400788)" r="2.35742" xlink:href="#d"/>
+    <mask id="m">
+        <g filter="url(#f)">
+            <rect fill-opacity="0.442" height="128" width="128"/>
+        </g>
+    </mask>
+    <radialGradient id="n" cx="104.183548" cy="209.276962" gradientTransform="matrix(1.144834 0 0 1.190837 
-27.594181 -196.763685)" r="9.074218" xlink:href="#h"/>
+    <clipPath id="o">
+        <rect height="128" width="128"/>
+    </clipPath>
+    <linearGradient id="p" gradientUnits="userSpaceOnUse" x1="79" x2="79" y1="111.162453" y2="90">
+        <stop offset="0" stop-color="#eef4fc"/>
+        <stop offset="1" stop-color="#ffffff"/>
+    </linearGradient>
+    <path d="m 63.851562 4.644531 c -32.78125 0 -59.355468 26.574219 -59.355468 59.355469 s 26.574218 
59.355469 59.355468 59.355469 c 24.105469 0 45.816407 -14.578125 54.9375 -36.894531 c -2.679687 0.503906 
-5.402343 0.753906 -8.128906 0.753906 c -24.472656 0 -44.308594 -19.839844 -44.308594 -44.308594 c 0 
-13.65625 6.296876 -26.546875 17.0625 -34.945312 c -6.289062 -2.195313 -12.902343 -3.316407 -19.5625 
-3.316407 z m 0 0" fill="url(#a)"/>
+    <path d="m 80.65625 7.074219 c -9.117188 8.390625 -14.304688 20.210937 -14.304688 32.601562 c 0 0.535157 
0.011719 1.066407 0.027344 1.601563 c 0.484375 -13.074219 6.71875 -25.269532 17.039063 -33.316406 c -0.914063 
-0.316407 -1.835938 -0.613282 -2.761719 -0.886719 z m -76.136719 55.316406 c -0.015625 0.539063 -0.023437 
1.074219 -0.023437 1.609375 c 0 32.78125 26.574218 59.355469 59.355468 59.355469 c 24.105469 0 45.816407 
-14.578125 54.941407 -36.890625 c -0.519531 0.09375 -1.042969 0.183594 -1.5625 0.261718 c -9.9375 20.429688 
-30.660157 33.398438 -53.378907 33.398438 c -32.148437 0 -58.453124 -25.597656 -59.332031 -57.734375 z m 0 0" 
fill="#deddda"/>
+    <path d="m 126.148438 21 l -13.433594 4.714844 l -4.714844 13.433594 l -4.714844 -13.433594 l -13.433594 
-4.714844 l 13.433594 -4.714844 l 4.714844 -13.433594 l 4.714844 13.433594 z m 0 0" fill="url(#c)"/>
+    <path d="m 108 21 l 4.714844 4.714844 l 13.433594 -4.714844 z m 0 0" fill="#f5c211"/>
+    <path d="m 108 21 l -4.714844 4.714844 l -13.433594 -4.714844 z m 0 0" fill="#f5c211"/>
+    <path d="m 108 21 l 4.714844 4.714844 l -4.714844 13.433594 z m 0 0" fill="url(#e)"/>
+    <path d="m 108 21 l 4.714844 -4.714844 l -4.714844 -13.433594 z m 0 0" fill="#f5c211" 
fill-opacity="0.488189"/>
+    <g clip-path="url(#j)" mask="url(#g)">
+        <path d="m 108 21 l -4.714844 -4.714844 l -13.433594 4.714844 z m 0 0" fill="url(#i)"/>
+    </g>
+    <path d="m 107 53 l -9.621094 3.378906 l -3.378906 9.621094 l -3.378906 -9.621094 l -9.621094 -3.378906 
l 9.621094 -3.378906 l 3.378906 -9.621094 l 3.378906 9.621094 z m 0 0" fill="url(#k)"/>
+    <path d="m 94 53 l 3.378906 3.378906 l 9.621094 -3.378906 z m 0 0" fill="#f5c211"/>
+    <path d="m 94 53 l -3.378906 3.378906 l -9.621094 -3.378906 z m 0 0" fill="#f5c211"/>
+    <path d="m 94 53 l 3.378906 3.378906 l -3.378906 9.621094 z m 0 0" fill="url(#l)"/>
+    <path d="m 94 53 l 3.378906 -3.378906 l -3.378906 -9.621094 z m 0 0" fill="#f5c211" 
fill-opacity="0.488189"/>
+    <g clip-path="url(#o)" mask="url(#m)">
+        <path d="m 94 53 l -3.378906 -3.378906 l -9.621094 3.378906 z m 0 0" fill="url(#n)"/>
+    </g>
+    <path d="m 90 72 c -7.8125 0.007812 -14.902344 4.566406 -18.15625 11.667969 c -2.117188 -1.089844 
-4.464844 -1.664063 -6.84375 -1.667969 c -7.890625 0.007812 -14.425781 6.128906 -14.949219 14 c -0.015625 0 
-0.035156 0 -0.050781 0 c -4.097656 0 -7.617188 2.46875 -9.160156 6 h -0.839844 v 4 c 0 5.523438 4.476562 10 
10 10 h 56 c 6.628906 0 12 -5.371094 12 -12 v -4 h -0.707031 c -1.210938 -3.421875 -3.90625 -6.109375 
-7.328125 -7.3125 c 0.015625 -0.230469 0.027344 -0.457031 0.035156 -0.6875 c 0 -11.046875 -8.953125 -20 -20 
-20 z m 0 0" fill="#dceafa"/>
+    <path d="m 90 68 c -7.8125 0.007812 -14.902344 4.566406 -18.15625 11.667969 c -2.117188 -1.089844 
-4.464844 -1.664063 -6.84375 -1.667969 c -7.890625 0.007812 -14.425781 6.128906 -14.949219 14 c -0.015625 0 
-0.035156 0 -0.050781 0 c -5.523438 0 -10 4.476562 -10 10 s 4.476562 10 10 10 h 56 c 6.628906 0 12 -5.371094 
12 -12 c -0.003906 -5.09375 -3.226562 -9.628906 -8.035156 -11.3125 c 0.015625 -0.230469 0.027344 -0.457031 
0.035156 -0.6875 c 0 -11.046875 -8.953125 -20 -20 -20 z m 0 0" fill="url(#p)"/>
+</svg>
diff --git a/data/status/weather-few-clouds.svg b/data/status/weather-few-clouds.svg
new file mode 100644
index 0000000..c7554df
--- /dev/null
+++ b/data/status/weather-few-clouds.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <radialGradient id="a" cx="280.994202" cy="488.848419" gradientTransform="matrix(0.347005 0 0 0.342234 
-33.50647 -129.482063)" gradientUnits="userSpaceOnUse" r="224">
+        <stop offset="0" stop-color="#fdfacf"/>
+        <stop offset="0.4" stop-color="#f9f06b"/>
+        <stop offset="1" stop-color="#f6d32d"/>
+    </radialGradient>
+    <linearGradient id="b" gradientUnits="userSpaceOnUse" x1="79" x2="79" y1="111.162453" y2="90">
+        <stop offset="0" stop-color="#eef4fc"/>
+        <stop offset="1" stop-color="#ffffff"/>
+    </linearGradient>
+    <path d="m 20 20 h 88 v 88 h -88 z m 0 0" fill="#f5c211"/>
+    <path d="m 126 64 l -62 62 l -62 -62 l 62 -62 z m 0 0" fill="#f6d32d"/>
+    <path d="m 112 64 c 0 26.507812 -21.492188 48 -48 48 s -48 -21.492188 -48 -48 s 21.492188 -48 48 -48 s 
48 21.492188 48 48 z m 0 0" fill="url(#a)"/>
+    <path d="m 90 72 c -7.8125 0.007812 -14.902344 4.566406 -18.15625 11.667969 c -2.117188 -1.089844 
-4.464844 -1.664063 -6.84375 -1.667969 c -7.890625 0.007812 -14.425781 6.128906 -14.949219 14 c -0.015625 0 
-0.035156 0 -0.050781 0 c -4.097656 0 -7.617188 2.46875 -9.160156 6 h -0.839844 v 4 c 0 5.523438 4.476562 10 
10 10 h 56 c 6.628906 0 12 -5.371094 12 -12 v -4 h -0.707031 c -1.210938 -3.421875 -3.90625 -6.109375 
-7.328125 -7.3125 c 0.015625 -0.230469 0.027344 -0.457031 0.035156 -0.6875 c 0 -11.046875 -8.953125 -20 -20 
-20 z m 0 0" fill="#dceafa"/>
+    <path d="m 90 68 c -7.8125 0.007812 -14.902344 4.566406 -18.15625 11.667969 c -2.117188 -1.089844 
-4.464844 -1.664063 -6.84375 -1.667969 c -7.890625 0.007812 -14.425781 6.128906 -14.949219 14 c -0.015625 0 
-0.035156 0 -0.050781 0 c -5.523438 0 -10 4.476562 -10 10 s 4.476562 10 10 10 h 56 c 6.628906 0 12 -5.371094 
12 -12 c -0.003906 -5.09375 -3.226562 -9.628906 -8.035156 -11.3125 c 0.015625 -0.230469 0.027344 -0.457031 
0.035156 -0.6875 c 0 -11.046875 -8.953125 -20 -20 -20 z m 0 0" fill="url(#b)"/>
+</svg>
diff --git a/data/status/weather-fog.svg b/data/status/weather-fog.svg
new file mode 100644
index 0000000..d832402
--- /dev/null
+++ b/data/status/weather-fog.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="63.581118" x2="63.581118" y1="80.50203800792" 
y2="49.887587">
+        <stop offset="0" stop-color="#eef4fc"/>
+        <stop offset="1" stop-color="#ffffff"/>
+    </linearGradient>
+    <g fill="none" stroke-linecap="round">
+        <path d="m 19.773438 94.050781 h 70.367187" stroke="#99c1f1" stroke-width="4"/>
+        <path d="m 19.773438 93.65625 h 70.367187" stroke="#c8def7"/>
+        <path d="m 27.773438 102.050781 h 70.367187" stroke="#99c1f1" stroke-width="4"/>
+        <path d="m 27.773438 101.65625 h 70.367187" stroke="#c8def7"/>
+        <path d="m 23.773438 110.050781 h 70.367187" stroke="#99c1f1" stroke-width="4"/>
+        <path d="m 23.773438 109.65625 h 70.367187" stroke="#c8def7"/>
+        <path d="m 45.773438 118.050781 h 70.367187" stroke="#99c1f1" stroke-width="4"/>
+        <path d="m 45.773438 117.65625 h 70.367187" stroke="#c8def7"/>
+    </g>
+    <path d="m 79.492188 24.347656 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578124 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.015625 -20.867187 8.867188 -21.625 20.257812 
c -0.023437 0 -0.050781 0 -0.074219 -0.003906 c -5.929687 0 -11.019531 3.574219 -13.253906 8.679688 h 
-1.210938 v 1.253906 c 0 11 7.835938 19 18.835938 19 h 72 c 14 0 22 -9 22 -22 v -1.144531 h -1.023438 c 
-1.753906 -4.949219 -5.648437 -8.839844 -10.601562 -10.582031 c 0.023438 -0.328126 0.039062 -0.660157 
0.050781 -0.992188 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" fill="#dceafa"/>
+    <path d="m 79.492188 18.0625 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578125 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.011718 -20.867187 8.867187 -21.625 20.257812 
c -0.023437 -0.003906 -0.050781 -0.003906 -0.074219 -0.003906 c -7.988281 0 -14.46875 6.476562 -14.46875 
14.464844 c 0 7.992187 6.480469 14.46875 14.46875 14.46875 h 81.011719 c 9.585937 0 17.359375 -7.773438 
17.359375 -17.359375 c -0.007812 -7.371094 -4.667969 -13.933594 -11.625 -16.367188 c 0.023438 -0.332031 
0.039062 -0.664062 0.050781 -0.992187 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" 
fill="url(#a)"/>
+</svg>
diff --git a/data/status/weather-overcast.svg b/data/status/weather-overcast.svg
new file mode 100644
index 0000000..36e01a8
--- /dev/null
+++ b/data/status/weather-overcast.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="63.581118" x2="63.581118" y1="110.50203800792" 
y2="79.887587">
+        <stop offset="0" stop-color="#eef4fc"/>
+        <stop offset="1" stop-color="#ffffff"/>
+    </linearGradient>
+    <path d="m 79.492188 54.347656 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578124 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.015625 -20.867187 8.867188 -21.625 20.257812 
c -0.023437 0 -0.050781 0 -0.074219 -0.003906 c -5.929687 0 -11.019531 3.574219 -13.253906 8.679688 h 
-1.210938 v 1.253906 c 0 11 7.835938 19 18.835938 19 h 72 c 14 0 22 -9 22 -22 v -1.144531 h -1.023438 c 
-1.753906 -4.949219 -5.648437 -8.839844 -10.601562 -10.582031 c 0.023438 -0.328126 0.039062 -0.660157 
0.050781 -0.992188 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" fill="#dceafa"/>
+    <path d="m 79.492188 48.0625 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578125 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.011718 -20.867187 8.867187 -21.625 20.257812 
c -0.023437 -0.003906 -0.050781 -0.003906 -0.074219 -0.003906 c -7.988281 0 -14.46875 6.476562 -14.46875 
14.464844 c 0 7.992187 6.480469 14.46875 14.46875 14.46875 h 81.011719 c 9.585937 0 17.359375 -7.773438 
17.359375 -17.359375 c -0.007812 -7.371094 -4.667969 -13.933594 -11.625 -16.367188 c 0.023438 -0.332031 
0.039062 -0.664062 0.050781 -0.992187 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" 
fill="url(#a)"/>
+</svg>
diff --git a/data/status/weather-severe-alert.svg b/data/status/weather-severe-alert.svg
new file mode 100644
index 0000000..1a2d371
--- /dev/null
+++ b/data/status/weather-severe-alert.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.418886" x2="-16.418886" 
y1="80.50203800792" y2="49.887587">
+        <stop offset="0" stop-color="#62a0ea"/>
+        <stop offset="1" stop-color="#99c1f1"/>
+    </linearGradient>
+    <path d="m 79.492188 24.347656 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578124 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.015625 -20.867187 8.867188 -21.625 20.257812 
c -0.023437 0 -0.050781 0 -0.074219 -0.003906 c -5.929687 0 -11.019531 3.574219 -13.253906 8.679688 h 
-1.210938 v 1.253906 c 0 11 7.835938 19 18.835938 19 h 72 c 14 0 22 -9 22 -22 v -1.144531 h -1.023438 c 
-1.753906 -4.949219 -5.648437 -8.839844 -10.601562 -10.582031 c 0.023438 -0.328126 0.039062 -0.660157 
0.050781 -0.992188 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" fill="#3584e4"/>
+    <path d="m 79.492188 18.0625 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578125 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.011718 -20.867187 8.867187 -21.625 20.257812 
c -0.023437 -0.003906 -0.050781 -0.003906 -0.074219 -0.003906 c -7.988281 0 -14.46875 6.476562 -14.46875 
14.464844 c 0 7.992187 6.480469 14.46875 14.46875 14.46875 h 81.011719 c 9.585937 0 17.359375 -7.773438 
17.359375 -17.359375 c -0.007812 -7.371094 -4.667969 -13.933594 -11.625 -16.367188 c 0.023438 -0.332031 
0.039062 -0.664062 0.050781 -0.992187 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" 
fill="url(#a)"/>
+    <path d="m 106.667969 110.347656 l -32.984375 -61.996094 c -0.949219 -1.722656 -2.664063 -2.679687 
-4.574219 -2.679687 s -3.632813 1.148437 -4.597656 2.871094 l -32.738281 61.996093 c -0.769532 1.527344 
-0.78125 3.632813 0.167968 5.164063 c 0.949219 1.53125 2.476563 2.296875 4.386719 2.296875 h 65.722656 c 
1.910157 0 3.636719 -0.957031 4.40625 -2.488281 c 0.960938 -1.53125 0.96875 -3.445313 0.210938 -5.164063 z m 
0 0" fill="#ed333b"/>
+    <path d="m 39.230469 110.160156 c -0.621094 1.019532 -0.007813 1.839844 1.019531 1.839844 h 57.886719 c 
1.027343 0 1.648437 -0.820312 1.035156 -1.839844 l -29.121094 -54.433594 c -0.613281 -1.023437 -1.433593 
-1.023437 -1.847656 0 z m 0 0" fill="#ffffff"/>
+    <path d="m 69.070312 103.257812 c -2.015624 0 -3.566406 -1.578124 -3.566406 -3.628906 c 0 -2.207031 
1.394532 -3.628906 3.566406 -3.628906 c 2.167969 0 3.410157 1.421875 3.566407 3.628906 c 0 2.050782 -1.398438 
3.628906 -3.566407 3.628906 z m -1.136718 -11.726562 l -1.964844 -15.71875 h 6.203125 l -1.964844 18.3125 z m 
0 0" fill="#121312"/>
+</svg>
diff --git a/data/status/weather-showers-scattered.svg b/data/status/weather-showers-scattered.svg
new file mode 100644
index 0000000..a666bc5
--- /dev/null
+++ b/data/status/weather-showers-scattered.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="63.581118" x2="63.581118" y1="72.50203800792" 
y2="41.887587">
+        <stop offset="0" stop-color="#eef4fc"/>
+        <stop offset="1" stop-color="#ffffff"/>
+    </linearGradient>
+    <path d="m 79.492188 16.347656 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578124 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.015625 -20.867187 8.867188 -21.625 20.257812 
c -0.023437 0 -0.050781 0 -0.074219 -0.003906 c -5.929687 0 -11.019531 3.574219 -13.253906 8.679688 h 
-1.210938 v 1.253906 c 0 11 7.835938 19 18.835938 19 h 72 c 14 0 22 -9 22 -22 v -1.144531 h -1.023438 c 
-1.753906 -4.949219 -5.648437 -8.839844 -10.601562 -10.582031 c 0.023438 -0.328126 0.039062 -0.660157 
0.050781 -0.992188 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" fill="#dceafa"/>
+    <path d="m 79.492188 10.0625 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578125 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.011718 -20.867187 8.867187 -21.625 20.257812 
c -0.023437 -0.003906 -0.050781 -0.003906 -0.074219 -0.003906 c -7.988281 0 -14.46875 6.476562 -14.46875 
14.464844 c 0 7.992187 6.480469 14.46875 14.46875 14.46875 h 81.011719 c 9.585937 0 17.359375 -7.773438 
17.359375 -17.359375 c -0.007812 -7.371094 -4.667969 -13.933594 -11.625 -16.367188 c 0.023438 -0.332031 
0.039062 -0.664062 0.050781 -0.992187 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" 
fill="url(#a)"/>
+    <g fill="#62a0ea">
+        <path d="m 44 88 l -12 12 l 0.027344 0.011719 c -1.332032 1.320312 -2.082032 3.113281 -2.082032 
4.988281 c 0 3.882812 3.144532 7.027344 7.027344 7.027344 c 3.882813 0 7.027344 -3.144532 7.027344 -7.027344 
z m 0 0"/>
+        <path d="m 70.027344 95.972656 l -12 12 l 0.027344 0.011719 c -1.332032 1.320313 -2.082032 3.113281 
-2.082032 4.988281 c 0 3.882813 3.144532 7.027344 7.027344 7.027344 s 7.027344 -3.144531 7.027344 -7.027344 z 
m 0 0"/>
+        <path d="m 92 85.984375 l -8.492188 8.492187 l 0.019532 0.007813 c -0.941406 0.933594 -1.46875 
2.203125 -1.472656 3.53125 c 0 2.746094 2.226562 4.96875 4.972656 4.96875 s 4.972656 -2.222656 4.972656 
-4.96875 z m 0 0"/>
+    </g>
+    <path d="m 36 104 c 0 1.105469 -0.894531 2 -2 2 s -2 -0.894531 -2 -2 s 0.894531 -2 2 -2 s 2 0.894531 2 2 
z m 0 0" fill="#99c1f1"/>
+    <path d="m 62 112 c 0 1.105469 -0.894531 2 -2 2 s -2 -0.894531 -2 -2 s 0.894531 -2 2 -2 s 2 0.894531 2 2 
z m 0 0" fill="#99c1f1"/>
+    <path d="m 86.320312 96.617188 c 0 0.78125 -0.632812 1.417968 -1.414062 1.417968 s -1.414062 -0.636718 
-1.414062 -1.417968 s 0.632812 -1.414063 1.414062 -1.414063 s 1.414062 0.632813 1.414062 1.414063 z m 0 0" 
fill="#99c1f1"/>
+</svg>
diff --git a/data/status/weather-showers.svg b/data/status/weather-showers.svg
new file mode 100644
index 0000000..66aef47
--- /dev/null
+++ b/data/status/weather-showers.svg
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.418886" x2="-16.418886" 
y1="80.50203800792" y2="49.887587">
+        <stop offset="0" stop-color="#62a0ea"/>
+        <stop offset="1" stop-color="#99c1f1"/>
+    </linearGradient>
+    <g fill="none" stroke-linecap="round">
+        <path d="m 28.511719 118.492188 l 8.023437 -25.425782" stroke="#99c1f1" stroke-width="4"/>
+        <path d="m 28.128906 118.390625 l 8.023438 -25.425781" stroke="#c8def7"/>
+        <path d="m 42.511719 118.492188 l 8.023437 -25.425782" stroke="#99c1f1" stroke-width="4"/>
+        <path d="m 42.128906 118.390625 l 8.023438 -25.425781" stroke="#c8def7"/>
+        <path d="m 56.511719 118.492188 l 8.023437 -25.425782" stroke="#99c1f1" stroke-width="4"/>
+        <path d="m 56.128906 118.390625 l 8.023438 -25.425781" stroke="#c8def7"/>
+        <path d="m 70.511719 118.492188 l 8.023437 -25.425782" stroke="#99c1f1" stroke-width="4"/>
+        <path d="m 70.128906 118.390625 l 8.023438 -25.425781" stroke="#c8def7"/>
+        <path d="m 84.511719 118.492188 l 8.023437 -25.425782" stroke="#99c1f1" stroke-width="4"/>
+        <path d="m 84.128906 118.390625 l 8.023438 -25.425781" stroke="#c8def7"/>
+    </g>
+    <path d="m 79.492188 24.347656 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578124 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.015625 -20.867187 8.867188 -21.625 20.257812 
c -0.023437 0 -0.050781 0 -0.074219 -0.003906 c -5.929687 0 -11.019531 3.574219 -13.253906 8.679688 h 
-1.210938 v 1.253906 c 0 11 7.835938 19 18.835938 19 h 72 c 14 0 22 -9 22 -22 v -1.144531 h -1.023438 c 
-1.753906 -4.949219 -5.648437 -8.839844 -10.601562 -10.582031 c 0.023438 -0.328126 0.039062 -0.660157 
0.050781 -0.992188 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" fill="#3584e4"/>
+    <path d="m 79.492188 18.0625 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578125 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.011718 -20.867187 8.867187 -21.625 20.257812 
c -0.023437 -0.003906 -0.050781 -0.003906 -0.074219 -0.003906 c -7.988281 0 -14.46875 6.476562 -14.46875 
14.464844 c 0 7.992187 6.480469 14.46875 14.46875 14.46875 h 81.011719 c 9.585937 0 17.359375 -7.773438 
17.359375 -17.359375 c -0.007812 -7.371094 -4.667969 -13.933594 -11.625 -16.367188 c 0.023438 -0.332031 
0.039062 -0.664062 0.050781 -0.992187 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" 
fill="url(#a)"/>
+</svg>
diff --git a/data/status/weather-snow.svg b/data/status/weather-snow.svg
new file mode 100644
index 0000000..b3b8ad6
--- /dev/null
+++ b/data/status/weather-snow.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg";>
+    <g fill="none" stroke-linecap="round">
+        <path d="m 64 8 v 112" stroke="#99c1f1" stroke-width="6"/>
+        <path d="m 54 14 l 10 6 l 10 -6" stroke="#99c1f1" stroke-width="6"/>
+        <path d="m 54 114.476562 l 10 -6 l 10 6" stroke="#99c1f1" stroke-width="6"/>
+        <path d="m 54 14 l 10 6 l 10 -6" stroke="#ffffff" stroke-width="2"/>
+        <path d="m 54 114.476562 l 10 -6 l 10 6" stroke="#ffffff" stroke-width="2"/>
+        <path d="m 112.558594 36.101562 l -96.996094 56" stroke="#99c1f1" stroke-width="6"/>
+        <path d="m 102.359375 30.441406 l -0.195313 11.660156 l 10.195313 5.660157" stroke="#99c1f1" 
stroke-width="6"/>
+        <path d="m 15.347656 80.679688 l 10.195313 5.660156 l -0.195313 11.660156" stroke="#99c1f1" 
stroke-width="6"/>
+        <path d="m 102.359375 30.441406 l -0.195313 11.660156 l 10.195313 5.660157" stroke="#ffffff" 
stroke-width="2"/>
+        <path d="m 15.347656 80.679688 l 10.195313 5.660156 l -0.195313 11.660156" stroke="#ffffff" 
stroke-width="2"/>
+        <path d="m 112.585938 92.132812 l -96.996094 -56" stroke="#99c1f1" stroke-width="6"/>
+        <path d="m 112.386719 80.472656 l -10.195313 5.660156 l 0.195313 11.660157" stroke="#99c1f1" 
stroke-width="6"/>
+        <path d="m 25.371094 30.234375 l 0.199218 11.660156 l -10.199218 5.660157" stroke="#99c1f1" 
stroke-width="6"/>
+        <g stroke="#ffffff" stroke-width="2">
+            <path d="m 112.386719 80.472656 l -10.195313 5.660156 l 0.195313 11.660157"/>
+            <path d="m 64 8 v 112"/>
+            <path d="m 25.371094 30.234375 l 0.199218 11.660156 l -10.199218 5.660157"/>
+            <path d="m 112.558594 36.101562 l -96.996094 56"/>
+            <path d="m 112.585938 92.132812 l -96.996094 -56"/>
+        </g>
+    </g>
+</svg>
diff --git a/data/status/weather-storm.svg b/data/status/weather-storm.svg
new file mode 100644
index 0000000..0f1c1e9
--- /dev/null
+++ b/data/status/weather-storm.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.418886" x2="-16.418886" 
y1="80.50203800792" y2="49.887587">
+        <stop offset="0" stop-color="#62a0ea"/>
+        <stop offset="1" stop-color="#99c1f1"/>
+    </linearGradient>
+    <clipPath id="b">
+        <path d="m 7 18 h 113 v 70 h -113 z m 0 0"/>
+    </clipPath>
+    <clipPath id="c">
+        <path d="m 79.496094 18.0625 c -11.304688 0.011719 -21.5625 6.605469 -26.269532 16.878906 c -3.0625 
-1.578125 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.011718 -20.867187 8.867187 -21.625 20.257812 
c -0.027344 -0.003906 -0.050781 0 -0.074219 -0.003906 c -7.988281 0 -14.464844 6.476562 -14.464844 14.464844 
c 0 0.167968 0.019532 0.332031 0.023438 0.5 h -0.023438 v 1.253906 c 0 11 7.835938 19 18.835938 19 h 72 c 14 
0 22 -9 22 -22 v -1.144531 h -0.019531 c 0.011719 -0.167969 0.015625 -0.335938 0.019531 -0.5 c -0.007812 
-7.371094 -4.667969 -13.933594 -11.625 -16.367188 c 0.023438 -0.332031 0.042969 -0.664062 0.054688 -0.996093 
c 0 -15.976563 -12.957032 -28.929688 -28.933594 -28.929688 z m 0 0"/>
+    </clipPath>
+    <filter id="d" height="100%" width="100%" x="0%" y="0%">
+        <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+    </filter>
+    <mask id="e">
+        <g filter="url(#d)">
+            <rect fill-opacity="0.439" height="128" width="128"/>
+        </g>
+    </mask>
+    <linearGradient id="f" gradientUnits="userSpaceOnUse" x1="58" x2="62" y1="76.928207" y2="62">
+        <stop offset="0" stop-color="#ffffff"/>
+        <stop offset="1" stop-color="#ffffff" stop-opacity="0"/>
+    </linearGradient>
+    <path d="m 79.492188 24.347656 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578124 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.015625 -20.867187 8.867188 -21.625 20.257812 
c -0.023437 0 -0.050781 0 -0.074219 -0.003906 c -5.929687 0 -11.019531 3.574219 -13.253906 8.679688 h 
-1.210938 v 1.253906 c 0 11 7.835938 19 18.835938 19 h 72 c 14 0 22 -9 22 -22 v -1.144531 h -1.023438 c 
-1.753906 -4.949219 -5.648437 -8.839844 -10.601562 -10.582031 c 0.023438 -0.328126 0.039062 -0.660157 
0.050781 -0.992188 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" fill="#3584e4"/>
+    <path d="m 79.492188 18.0625 c -11.300782 0.011719 -21.558594 6.605469 -26.265626 16.878906 c -3.0625 
-1.578125 -6.453124 -2.40625 -9.898437 -2.414062 c -11.414063 0.011718 -20.867187 8.867187 -21.625 20.257812 
c -0.023437 -0.003906 -0.050781 -0.003906 -0.074219 -0.003906 c -7.988281 0 -14.46875 6.476562 -14.46875 
14.464844 c 0 7.992187 6.480469 14.46875 14.46875 14.46875 h 81.011719 c 9.585937 0 17.359375 -7.773438 
17.359375 -17.359375 c -0.007812 -7.371094 -4.667969 -13.933594 -11.625 -16.367188 c 0.023438 -0.332031 
0.039062 -0.664062 0.050781 -0.992187 c 0 -15.980469 -12.953125 -28.933594 -28.933593 -28.933594 z m 0 0" 
fill="url(#a)"/>
+    <g clip-path="url(#b)">
+        <g clip-path="url(#c)">
+            <image height="128" mask="url(#e)" width="128" 
xlink:href="data:image/png;base64,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"/>
+        </g>
+    </g>
+    <path d="m 61.21875 62 l -11.382812 36 h 24.050781 l -1.886719 6 h -8 l 4 24 l 22 -24 h -10 l 4.414062 
-14.25 h -21.265624 l 8.851562 -27.75 z m 0 0" fill="url(#f)"/>
+</svg>
diff --git a/data/status/weather-tornado.svg b/data/status/weather-tornado.svg
new file mode 100644
index 0000000..f03a922
--- /dev/null
+++ b/data/status/weather-tornado.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg";>
+    <g fill="none" stroke-linecap="round">
+        <path d="m 95.519531 39.625 c -8.832031 5.359375 -27.371093 7.722656 -43.96875 5.605469 c -16.59375 
-2.117188 -26.460937 -8.101563 -23.394531 -14.199219 c 3.070312 -6.09375 18.179688 -10.535156 35.84375 
-10.535156" stroke="#62a0ea" stroke-width="10"/>
+        <path d="m 95.519531 37.625 c -8.832031 5.359375 -27.371093 7.722656 -43.96875 5.605469 c -16.59375 
-2.117188 -26.460937 -8.101563 -23.394531 -14.199219 c 3.070312 -6.09375 18.179688 -10.535156 35.84375 
-10.535156" stroke="#99c1f1" stroke-width="2"/>
+        <g stroke="#62a0ea" stroke-width="10">
+            <path d="m 95.519531 29.625 c -7.359375 4.464844 -21.675781 6.9375 -36.269531 6.265625 s 
-26.59375 -4.359375 -30.40625 -9.34375 c -3.808594 -4.980469 1.320312 -10.277344 13 -13.417969 c 11.679688 
-3.136718 27.605469 -3.503906 40.355469 -0.925781"/>
+            <path d="m 89.734375 50.265625 c -8 2.800781 -19.265625 4.144531 -30.484375 3.625 c -11.21875 
-0.515625 -21.113281 -2.832031 -26.769531 -6.265625"/>
+            <path d="m 82.199219 62.292969 c -14.265625 2.882812 -32.285157 2.054687 -43.933594 -2.027344"/>
+            <path d="m 89.734375 70.265625 c -9.195313 3.222656 -22.59375 4.480469 -35.152344 3.300781"/>
+            <path d="m 89.734375 80.265625 c -6.824219 2.390625 -16.082031 3.734375 -25.734375 3.734375"/>
+            <path d="m 82.199219 92.292969 c -5.535157 1.117187 -11.8125 1.707031 -18.199219 1.707031"/>
+            <path d="m 73.417969 103.566406 c -6.167969 0.578125 -12.667969 0.578125 -18.835938 0"/>
+            <path d="m 73.417969 113.566406 c -3.070313 0.289063 -6.238281 0.433594 -9.417969 0.433594"/>
+            <path d="m 65.117188 123.992188 c -0.371094 0.003906 -0.746094 0.007812 -1.117188 0.007812"/>
+        </g>
+        <path d="m 95.519531 27.625 c -7.359375 4.464844 -21.675781 6.9375 -36.269531 6.265625 s -26.59375 
-4.359375 -30.40625 -9.34375 c -3.808594 -4.980469 1.320312 -10.277344 13 -13.417969 c 11.679688 -3.136718 
27.605469 -3.503906 40.355469 -0.925781" stroke="#99c1f1" stroke-width="2"/>
+        <path d="m 89.734375 48.265625 c -8 2.800781 -19.265625 4.144531 -30.484375 3.625 c -11.21875 
-0.515625 -21.113281 -2.832031 -26.769531 -6.265625" stroke="#99c1f1" stroke-width="2"/>
+        <path d="m 82.199219 60.292969 c -14.265625 2.882812 -32.285157 2.054687 -43.933594 -2.027344" 
stroke="#99c1f1" stroke-width="2"/>
+        <path d="m 89.734375 68.265625 c -9.195313 3.222656 -22.59375 4.480469 -35.152344 3.300781" 
stroke="#99c1f1" stroke-width="2"/>
+        <path d="m 89.734375 78.265625 c -6.824219 2.390625 -16.082031 3.734375 -25.734375 3.734375" 
stroke="#99c1f1" stroke-width="2"/>
+        <path d="m 82.199219 90.292969 c -5.535157 1.117187 -11.8125 1.707031 -18.199219 1.707031" 
stroke="#99c1f1" stroke-width="2"/>
+        <path d="m 73.417969 101.566406 c -6.167969 0.578125 -12.667969 0.578125 -18.835938 0" 
stroke="#99c1f1" stroke-width="2"/>
+        <path d="m 73.417969 111.566406 c -3.070313 0.289063 -6.238281 0.433594 -9.417969 0.433594" 
stroke="#99c1f1" stroke-width="2"/>
+        <path d="m 65.117188 121.992188 c -0.371094 0.003906 -0.746094 0.007812 -1.117188 0.007812" 
stroke="#99c1f1" stroke-width="2"/>
+    </g>
+</svg>
diff --git a/data/status/weather-windy.svg b/data/status/weather-windy.svg
new file mode 100644
index 0000000..128d117
--- /dev/null
+++ b/data/status/weather-windy.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="83.261818" x2="70.962502" y1="12.47644" 
y2="45.379456">
+        <stop offset="0" stop-color="#26a269"/>
+        <stop offset="1" stop-color="#57e389"/>
+    </linearGradient>
+    <g fill="none">
+        <path d="m 7.070312 61.011719 h 86.421876" stroke="#99c1f1" stroke-linecap="round" stroke-width="6"/>
+        <path d="m -201.898438 93.492187 c 0 5.558594 -2.964843 10.695313 -7.777343 13.472657 c -4.8125 
2.78125 -10.742188 2.78125 -15.554688 0 c -4.816406 -2.777344 -7.78125 -7.914063 -7.78125 -13.472657" 
stroke="#99c1f1" stroke-linecap="round" stroke-width="6" transform="matrix(0 -1 1 0 0 -172)"/>
+        <path d="m 7.070312 73.023438 h 92.546876" stroke="#99c1f1" stroke-linecap="round" stroke-width="6"/>
+        <path d="m 281.574219 84.476562 c 6.851562 6.855469 8.25 17.453126 3.402343 25.847657 c -4.84375 
8.394531 -14.722656 12.484375 -24.082031 9.976562 c -9.363281 -2.507812 -15.871093 -10.992187 -15.871093 
-20.683593" stroke="#99c1f1" stroke-linecap="round" stroke-width="6" transform="matrix(0 1 1 0 0 -172)"/>
+        <path d="m 7.070312 85.03125 h 52.910157" stroke="#99c1f1" stroke-linecap="round" stroke-width="6"/>
+        <path d="m 268.714844 50.765625 c 4.648437 1.242187 7.574218 5.835937 6.738281 10.574219 c -0.835937 
4.738281 -5.15625 8.054687 -9.949219 7.632812 c -4.792968 -0.417968 -8.472656 -4.433594 -8.472656 -9.242187" 
stroke="#99c1f1" stroke-linecap="round" stroke-width="6" transform="matrix(0 1 1 0 0 -172)"/>
+    </g>
+    <path d="m 86.828125 13.015625 c -3.664063 2.007813 -7.226563 4.300781 -10.105469 7.328125 c -4.78125 
5.019531 -7.453125 11.984375 -7.25 18.914062 c -0.082031 -5.464843 1.796875 -10.9375 5.214844 -15.203124 c 
2.125 -2.652344 4.828125 -4.839844 7.867188 -6.363282 c 1.804687 1.222656 3.101562 3.167969 3.535156 5.304688 
c 0.359375 1.753906 0.144531 3.601562 -0.453125 5.292968 c -0.601563 1.691407 -1.578125 3.230469 -2.726563 
4.605469 c -1.261718 1.503907 -2.730468 2.824219 -4.023437 4.296875 c -1.296875 1.476563 -2.441407 3.15625 
-2.871094 5.070313 c -0.445313 1.964843 -0.09375 4.074219 0.882813 5.835937 c 1.035156 1.867188 2.761718 
3.339844 4.773437 4.066406 c -3.707031 -0.429687 -7.328125 -1.578124 -10.609375 -3.359374 c -6.378906 
-3.472657 -11.4375 -9.542969 -13.078125 -16.617188 c -0.839844 -3.613281 -0.785156 -7.464844 0.421875 
-10.96875 s 3.609375 -6.632812 6.824219 -8.476562 c 1.988281 -1.140626 4.304687 -1.78125 6.582031 -1.519532 c 
1.765625 0.203125 3.464844 0.953125 4.804
 688 2.121094 c 1.523437 -3.183594 4.574218 -5.59375 8.019531 -6.34375 c 1.105469 -0.242188 2.292969 -0.3125 
3.339843 0.113281 c 0.523438 0.210938 1 0.550781 1.34375 1 s 0.542969 1.011719 0.523438 1.574219 c -0.011719 
0.394531 -0.128906 0.777344 -0.316406 1.125 c -0.1875 0.34375 -0.441406 0.652344 -0.730469 0.917969 c 
-0.578125 0.53125 -1.28125 0.90625 -1.96875 1.285156 z m 0 0" fill="url(#a)"/>
+    <path d="m 86.679688 6.804688 c -0.085938 0 -0.175782 0.015624 -0.265626 0.015624 c 0.503907 0.023438 
1.003907 0.101563 1.472657 0.292969 c 0.523437 0.210938 1 0.550781 1.34375 0.996094 c 0.34375 0.449219 
0.542969 1.011719 0.523437 1.578125 c -0.011718 0.390625 -0.128906 0.78125 -0.316406 1.125 s -0.441406 
0.652344 -0.730469 0.917969 c -0.578125 0.535156 -1.28125 0.90625 -1.96875 1.285156 c -3.664062 2.007813 
-7.222656 4.304687 -10.105469 7.328125 c -4.78125 5.019531 -7.449218 11.984375 -7.25 18.914062 c -0.054687 
-3.734374 0.824219 -7.464843 2.464844 -10.820312 c 1.234375 -2.984375 2.996094 -5.753906 5.226563 -8.09375 c 
2.882812 -3.023438 6.441406 -5.320312 10.105469 -7.328125 c 0.691406 -0.378906 1.390624 -0.75 1.96875 
-1.285156 c 0.289062 -0.265625 0.542968 -0.574219 0.730468 -0.917969 s 0.308594 -0.734375 0.320313 -1.125 c 
0.019531 -0.566406 -0.183594 -1.128906 -0.527344 -1.578125 c -0.34375 -0.445313 -0.820313 -0.785156 -1.34375 
-0.996094 c -0.523437 -0.210937 -1.082031 -0.
 300781 -1.648437 -0.308593 z m -15.371094 4.363281 c -0.105469 -0.003907 -0.207032 0.003906 -0.3125 0.007812 
c 0.242187 0.007813 0.484375 0.019531 0.726562 0.046875 c 1.765625 0.203125 3.464844 0.953125 4.804688 
2.121094 c 0.042968 -0.085938 0.097656 -0.164062 0.136718 -0.246094 c -1.289062 -1.023437 -2.863281 -1.6875 
-4.5 -1.875 c -0.285156 -0.03125 -0.570312 -0.050781 -0.855468 -0.054687 z m 11.597656 6.523437 c -0.085938 
0.042969 -0.167969 0.09375 -0.257812 0.140625 c 1.707031 1.226563 2.933593 3.101563 3.351562 5.160157 c 
0.359375 1.757812 0.148438 3.605468 -0.453125 5.296874 c -0.601563 1.691407 -1.578125 3.230469 -2.726563 
4.605469 c -1.257812 1.503907 -2.726562 2.824219 -4.023437 4.300781 c -1.296875 1.472657 -2.4375 3.152344 
-2.871094 5.066407 c -0.441406 1.964843 -0.089843 4.078125 0.882813 5.835937 c 0.996094 1.796875 2.636718 
3.21875 4.546875 3.972656 c 0.222656 0.027344 0.445312 0.066407 0.667969 0.089844 c -2.007813 -0.722656 
-3.738282 -2.195312 -4.773438 -4.0625 c -0.9
 72656 -1.757812 -1.324219 -3.871094 -0.882812 -5.835937 c 0.433593 -1.914063 1.574218 -3.59375 2.871093 
-5.070313 c 1.296875 -1.472656 2.765625 -2.792968 4.023438 -4.296875 c 1.148437 -1.375 2.125 -2.914062 
2.726562 -4.605469 c 0.601563 -1.691406 0.8125 -3.539062 0.453125 -5.296874 c -0.433594 -2.132813 -1.730468 
-4.078126 -3.535156 -5.300782 z m 0 0" fill="#57e389"/>
+    <path d="m 7.070312 72 h 92.546876" fill="none" stroke="#c8def7" stroke-linecap="round" 
stroke-width="2"/>
+    <path d="m 280.550781 84.476562 c 6.855469 6.855469 8.25 17.453126 3.402344 25.847657 c -4.84375 
8.394531 -14.722656 12.484375 -24.082031 9.976562 c -9.363282 -2.507812 -15.871094 -10.992187 -15.871094 
-20.683593" fill="none" stroke="#c8def7" stroke-linecap="round" stroke-width="2" transform="matrix(0 1 1 0 0 
-172)"/>
+    <path d="m 7.070312 60 h 86.421876" fill="none" stroke="#c8def7" stroke-linecap="round" 
stroke-width="2"/>
+    <path d="m -200.886719 93.492187 c 0 5.558594 -2.964844 10.695313 -7.777344 13.472657 c -4.816406 
2.78125 -10.746093 2.78125 -15.558593 0 c -4.8125 -2.777344 -7.777344 -7.914063 -7.777344 -13.472657" 
fill="none" stroke="#c8def7" stroke-linecap="round" stroke-width="2" transform="matrix(0 -1 1 0 0 -172)"/>
+    <path d="m 7.070312 84 h 52.910157" fill="none" stroke="#c8def7" stroke-linecap="round" 
stroke-width="2"/>
+    <path d="m 267.683594 50.765625 c 4.648437 1.242187 7.574218 5.835937 6.738281 10.574219 c -0.835937 
4.738281 -5.15625 8.054687 -9.949219 7.632812 c -4.792968 -0.417968 -8.472656 -4.433594 -8.472656 -9.242187" 
fill="none" stroke="#c8def7" stroke-linecap="round" stroke-width="2" transform="matrix(0 1 1 0 0 -172)"/>
+</svg>
diff --git a/src/app/city.js b/src/app/city.js
index dce7850..ba3535c 100644
--- a/src/app/city.js
+++ b/src/app/city.js
@@ -34,6 +34,105 @@ const SCROLLING_ANIMATION_TIME = 400000; //us
 
 const UPDATED_TIME_TIMEOUT = 60; //s
 
+/**
+ * Ported from 'gweather_info_get_icon_name' in libgweather.
+ * Converts the current weather conditions into the appropriate
+ * resource name.
+ * 
+ * @param {GWeather.Info} info a GWeather.Info object
+ * @returns {string} the resource name associated with the current weather conditions
+ */
+function get_icon_name(info) {
+    const [significant, phenomenon, qualifier] = info.get_value_conditions();
+    const [valid, sky] = info.get_value_sky();
+
+    if (significant) {
+        if (phenomenon != GWeather.ConditionPhenomenon.NONE &&
+            qualifier == GWeather.ConditionQualifier.THUNDERSTORM)
+            return "weather-storm";
+
+        switch (phenomenon) {
+            case GWeather.ConditionPhenomenon.INVALID:
+            case GWeather.ConditionPhenomenon.LAST:
+            case GWeather.ConditionPhenomenon.NONE:
+                break;
+
+            case GWeather.ConditionPhenomenon.DRIZZLE:
+            case GWeather.ConditionPhenomenon.RAIN:
+            case GWeather.ConditionPhenomenon.UNKNOWN_PRECIPITATION:
+            case GWeather.ConditionPhenomenon.HAIL:
+            case GWeather.ConditionPhenomenon.SMALL_HAIL:
+                return "weather-showers";
+
+            case GWeather.ConditionPhenomenon.SNOW:
+            case GWeather.ConditionPhenomenon.SNOW_GRAINS:
+            case GWeather.ConditionPhenomenon.ICE_PELLETS:
+            case GWeather.ConditionPhenomenon.ICE_CRYSTALS:
+                return "weather-snow";
+
+            case GWeather.ConditionPhenomenon.TORNADO:
+                return "weather-tornado";
+
+            case GWeather.ConditionPhenomenon.SQUALL:
+                return "weather-storm";
+
+            case GWeather.ConditionPhenomenon.MIST:
+            case GWeather.ConditionPhenomenon.FOG:
+            case GWeather.ConditionPhenomenon.SMOKE:
+            case GWeather.ConditionPhenomenon.VOLCANIC_ASH:
+            case GWeather.ConditionPhenomenon.SAND:
+            case GWeather.ConditionPhenomenon.HAZE:
+            case GWeather.ConditionPhenomenon.SPRAY:
+            case GWeather.ConditionPhenomenon.DUST:
+            case GWeather.ConditionPhenomenon.SANDSTORM:
+            case GWeather.ConditionPhenomenon.DUSTSTORM:
+            case GWeather.ConditionPhenomenon.FUNNEL_CLOUD:
+            case GWeather.ConditionPhenomenon.DUST_WHIRLS:
+                return "weather-fog";
+        }
+    }
+
+    const daytime = info.is_daytime();
+
+    if (valid) {
+        switch (sky) {
+            case GWeather.Sky.INVALID:
+            case GWeather.Sky.LAST:
+            case GWeather.Sky.CLEAR:
+                if (daytime)
+                    return "weather-clear";
+                else
+                    return "weather-clear-night";
+
+            case GWeather.Sky.BROKEN:
+            case GWeather.Sky.SCATTERED:
+            case GWeather.Sky.FEW:
+                if (daytime)
+                    return "weather-few-clouds";
+                else
+                    return "weather-few-clouds-night";
+
+            case GWeather.Sky.OVERCAST:
+                return "weather-overcast";
+
+            default: /* unrecognized */
+                return null;
+        }
+    }
+
+    return null;
+}
+
+function get_icon_resource(info) {
+    const name = get_icon_name(info);
+
+    if (!name) {
+        return null;
+    }
+
+    return `/org/gnome/Weather/status/${name}.svg`;
+}
+
 var WeatherWidget = GObject.registerClass({
     Template: 'resource:///org/gnome/Weather/weather-widget.ui',
     InternalChildren: ['contentFrame', 'outerGrid', 'conditionsImage',
@@ -202,7 +301,15 @@ var WeatherWidget = GObject.registerClass({
 
         this._worldView.refilter();
 
-        this._conditionsImage.icon_name = info.get_icon_name();
+        this._conditionsImage.clear();
+
+        const resource = get_icon_resource(info);
+
+        try {
+            this._conditionsImage.set_from_resource(resource);
+        } catch (err) {
+            log(`Failed to set weather icon from resource: ${resource}`);
+        }
 
         const [, tempValue] = info.get_value_temp(GWeather.TemperatureUnit.DEFAULT);
         this._temperatureLabel.label = '%.0f°'.format(tempValue);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]