]> Pileus Git - aweather/blob - src/plugins/alert-info.c
Add warning/watch/alert plugin
[aweather] / src / plugins / alert-info.c
1 /*
2  * Copyright (C) 2010 Andy Spencer <andy753421@gmail.com>
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 /* Taken from: http://www.weather.gov/wwamap-prd/faq.php */
19
20 #include "alert-info.h"
21
22 AlertInfo alert_info[] = {
23         // title                          category  abbr prio enab cur color
24         /* Warnings */
25         {"Tornado Warning"                , "warning",  "",    0, 1, 0, {255, 0  , 0  }},  // red
26         {"Severe Thunderstorm Warning"    , "warning",  "",    1, 1, 0, {255, 165, 0  }},  // orange
27         {"Flash Flood Warning"            , "warning",  "",    2, 1, 0, {139, 0  , 0  }},  // darkred
28         {"Ashfall Warning"                , "warning",  "", 1000, 1, 0, {169, 169, 169}},  // darkgray
29         {"Avalanche Warning"              , "warning",  "", 1000, 1, 0, {30 , 144, 255}},  // dodgerblue
30         {"Blizzard Warning"               , "warning",  "", 1000, 1, 0, {255, 69 , 0  }},  // orangered
31         {"Civil Danger Warning"           , "warning",  "", 1000, 1, 0, {255, 182, 193}},  // lightpink
32         {"Coastal Flood Warning"          , "warning",  "", 1000, 1, 0, {34 , 139, 34 }},  // forestgreen
33         {"Dust Storm Warning"             , "warning",  "", 1000, 1, 0, {255, 228, 196}},  // bisque
34         {"Earthquake Warning"             , "warning",  "", 1000, 1, 0, {139, 69 , 19 }},  // saddlebrown
35         {"Excessive Heat Warning"         , "warning",  "", 1000, 1, 0, {199, 21 , 133}},  // mediumvioletred
36         {"Extreme Cold Warning"           , "warning",  "", 1000, 1, 0, {0  , 0  , 255}},  // blue
37         {"Extreme Wind Warning"           , "warning",  "", 1000, 1, 0, {255, 20 , 147}},  // deeppink
38         {"Fire Warning"                   , "warning",  "", 1000, 1, 0, {160, 82 , 45 }},  // sienna
39         {"Flood Warning"                  , "warning",  "", 1000, 1, 0, {0  , 255, 0  }},  // lime
40         {"Freeze Warning"                 , "warning",  "", 1000, 1, 0, {0  , 255, 255}},  // cyan
41         {"Gale Warning"                   , "warning",  "", 1000, 1, 0, {221, 160, 221}},  // plum
42         {"Hard Freeze Warning"            , "warning",  "", 1000, 1, 0, {0  , 0  , 255}},  // blue
43         {"Hazardous Materials Warning"    , "warning",  "", 1000, 1, 0, {75 , 0  , 130}},  // indigo
44         {"Hazardous Seas Warning"         , "warning",  "", 1000, 1, 0, {221, 160, 221}},  // plum
45         {"Heavy Freezing Spray Warning"   , "warning",  "", 1000, 1, 0, {0  , 191, 255}},  // deepskyblue
46         {"Heavy Snow Warning"             , "warning",  "", 1000, 1, 0, {138, 43 , 226}},  // blueviolet
47         {"High Surf Warning"              , "warning",  "", 1000, 1, 0, {34 , 139, 34 }},  // forestgreen
48         {"High Wind Warning"              , "warning",  "", 1000, 1, 0, {218, 165, 32 }},  // goldenrod
49         {"Hurricane Force Wind Warning"   , "warning",  "", 1000, 1, 0, {205, 92 , 92 }},  // westernred
50         {"Hurricane Warning"              , "warning",  "", 1000, 1, 0, {220, 20 , 60 }},  // crimson
51         {"Hurricane Wind Warning"         , "warning",  "", 1000, 1, 0, {205, 92 , 92 }},  // westernred
52         {"Ice Storm Warning"              , "warning",  "", 1000, 1, 0, {139, 0  , 139}},  // darkmagenta
53         {"Lake Effect Snow Warning"       , "warning",  "", 1000, 1, 0, {0  , 139, 139}},  // darkcyan
54         {"Lakeshore Flood Warning"        , "warning",  "", 1000, 1, 0, {34 , 139, 34 }},  // forestgreen
55         {"Law Enforcement Warning"        , "warning",  "", 1000, 1, 0, {192, 192, 192}},  // silver
56         {"Nuclear Power Plant Warning"    , "warning",  "", 1000, 1, 0, {75 , 0  , 130}},  // indigo
57         {"Radiological Hazard Warning"    , "warning",  "", 1000, 1, 0, {75 , 0  , 130}},  // indigo
58         {"Red Flag Warning"               , "warning",  "", 1000, 1, 0, {255, 20 , 147}},  // deeppink
59         {"Shelter In Place Warning"       , "warning",  "", 1000, 1, 0, {250, 128, 114}},  // salmon
60         {"Sleet Warning"                  , "warning",  "", 1000, 1, 0, {135, 206, 235}},  // skyblue
61         {"Special Marine Warning"         , "warning",  "", 1000, 1, 0, {255, 165, 0  }},  // orange
62         {"Storm Warning"                  , "warning",  "", 1000, 1, 0, {148, 0  , 211}},  // darkviolet
63         {"Tropical Storm Warning"         , "warning",  "", 1000, 1, 0, {178, 34 , 34 }},  // firebrick
64         {"Tropical Storm Wind Warning"    , "warning",  "", 1000, 1, 0, {178, 34 , 34 }},  // firebrick
65         {"Tsunami Warning"                , "warning",  "", 1000, 1, 0, {253, 99 , 71 }},  // tomato
66         {"Typhoon Warning"                , "warning",  "", 1000, 1, 0, {220, 20 , 60 }},  // crimson
67         {"Volcano Warning"                , "warning",  "", 1000, 1, 0, {47 , 79 , 79 }},  // darkslategray
68         {"Wind Chill Warning"             , "warning",  "", 1000, 1, 0, {176, 196, 222}},  // lightsteelblue
69         {"Winter Storm Warning"           , "warning",  "", 1000, 1, 0, {255, 105, 180}},  // hotpink
70
71         /* Advisorys */
72         {"Air Stagnation Advisory"        , "advisory", "", 1000, 1, 0, {128, 128, 128}},  // gray
73         {"Ashfall Advisory"               , "advisory", "", 1000, 1, 0, {105, 105, 105}},  // dimgray
74         {"Blowing Dust Advisory"          , "advisory", "", 1000, 1, 0, {189, 183, 107}},  // darkkhaki
75         {"Blowing Snow Advisory"          , "advisory", "", 1000, 1, 0, {173, 216, 230}},  // lightblue
76         {"Brisk Wind Advisory"            , "advisory", "", 1000, 1, 0, {216, 191, 216}},  // thistle
77         {"Coastal Flood Advisory"         , "advisory", "", 1000, 1, 0, {124, 252, 0  }},  // lawngreen
78         {"Dense Fog Advisory"             , "advisory", "", 1000, 1, 0, {112, 128, 144}},  // slategray
79         {"Dense Smoke Advisory"           , "advisory", "", 1000, 1, 0, {240, 230, 140}},  // khaki
80         {"Flood Advisory"                 , "advisory", "", 1000, 1, 0, {0  , 255, 127}},  // springgreen
81         {"Freezing Drizzle Advisory"      , "advisory", "", 1000, 1, 0, {218, 112, 214}},  // orchid
82         {"Freezing Fog Advisory"          , "advisory", "", 1000, 1, 0, {0  , 128, 128}},  // teal
83         {"Freezing Rain Advisory"         , "advisory", "", 1000, 1, 0, {218, 112, 214}},  // orchid
84         {"Freezing Spray Advisory"        , "advisory", "", 1000, 1, 0, {0  , 191, 255}},  // deepskyblue
85         {"Frost Advisory"                 , "advisory", "", 1000, 1, 0, {100, 149, 237}},  // cornflowerblue
86         {"Heat Advisory"                  , "advisory", "", 1000, 1, 0, {255, 127, 80 }},  // coral
87         {"High Surf Advisory"             , "advisory", "", 1000, 1, 0, {186, 85 , 211}},  // mediumorchid
88         {"Hydrologic Advisory"            , "advisory", "", 1000, 1, 0, {0  , 255, 127}},  // springgreen
89         {"Lake Effect Snow Advisory"      , "advisory", "", 1000, 1, 0, {72 , 209, 204}},  // mediumturquoise
90         {"Lake Effect Snow and Blowing Snow Advisory" ,
91                                             "advisory", "", 1000, 1, 0, {72 , 209, 204}},  // mediumturquoise
92         {"Lake Wind Advisory"             , "advisory", "", 1000, 1, 0, {210, 180, 140}},  // tan
93         {"Lakeshore Flood Advisory"       , "advisory", "", 1000, 1, 0, {124, 252, 0  }},  // lawngreen
94         {"Low Water Advisory"             , "advisory", "", 1000, 1, 0, {165, 42 , 42 }},  // brown
95         {"Sleet Advisory"                 , "advisory", "", 1000, 1, 0, {123, 104, 238}},  // mediumslateblue
96         {"Small Craft Advisory"           , "advisory", "", 1000, 1, 0, {216, 191, 216}},  // thistle
97         {"Snow and Blowing Snow Advisory" , "advisory", "", 1000, 1, 0, {176, 224, 230}},  // powderblue
98         {"Tsunami Advisory"               , "advisory", "", 1000, 1, 0, {210, 105, 30 }},  // chocolate
99         {"Wind Advisory"                  , "advisory", "", 1000, 1, 0, {210, 180, 140}},  // tan
100         {"Wind Chill Advisory"            , "advisory", "", 1000, 1, 0, {175, 238, 238}},  // paleturquoise
101         {"Winter Weather Advisory"        , "advisory", "", 1000, 1, 0, {123, 104, 238}},  // mediumslateblue
102
103
104         /* Watches */
105         {"Tornado Watch"                  , "watch",    "", 1000, 1, 0, {255, 255, 0  }},  // yellow
106         {"Severe Thunderstorm Watch"      , "watch",    "", 1000, 1, 0, {219, 112, 147}},  // palevioletred
107         {"Avalanche Watch"                , "watch",    "", 1000, 1, 0, {244, 164, 96 }},  // sandybrown
108         {"Blizzard Watch"                 , "watch",    "", 1000, 1, 0, {173, 255, 47 }},  // greenyellow
109         {"Coastal Flood Watch"            , "watch",    "", 1000, 1, 0, {102, 205, 170}},  // mediumaquamarine
110         {"Excessive Heat Watch"           , "watch",    "", 1000, 1, 0, {128, 0  , 0  }},  // maroon
111         {"Extreme Cold Watch"             , "watch",    "", 1000, 1, 0, {0  , 0  , 255}},  // blue
112         {"Fire Weather Watch"             , "watch",    "", 1000, 1, 0, {255, 222, 173}},  // navajowhite
113         {"Flash Flood Watch"              , "watch",    "", 1000, 1, 0, {50 , 205, 50 }},  // limegreen
114         {"Flood Watch"                    , "watch",    "", 1000, 1, 0, {46 , 139, 87 }},  // seagreen
115         {"Freeze Watch"                   , "watch",    "", 1000, 1, 0, {65 , 105, 225}},  // royalblue
116         {"Gale Watch"                     , "watch",    "", 1000, 1, 0, {255, 192, 203}},  // pink
117         {"Hard Freeze Watch"              , "watch",    "", 1000, 1, 0, {65 , 105, 225}},  // royalblue
118         {"Hazardous Seas Watch"           , "watch",    "", 1000, 1, 0, {72 , 61 , 139}},  // darkslateblue
119         {"Heavy Freezing Spray Watch"     , "watch",    "", 1000, 1, 0, {188, 143, 143}},  // rosybrown
120         {"High Wind Watch"                , "watch",    "", 1000, 1, 0, {184, 134, 11 }},  // darkgoldenrod
121         {"Hurricane Force Wind Watch"     , "watch",    "", 1000, 1, 0, {153, 50 , 204}},  // darkorchid
122         {"Hurricane Watch"                , "watch",    "", 1000, 1, 0, {255, 0  , 255}},  // magenta
123         {"Hurricane Wind Watch"           , "watch",    "", 1000, 1, 0, {255, 160, 122}},  // lightsalmon
124         {"Lake Effect Snow Watch"         , "watch",    "", 1000, 1, 0, {135, 206, 250}},  // lightskyblue
125         {"Lakeshore Flood Watch"          , "watch",    "", 1000, 1, 0, {102, 205, 170}},  // mediumaquamarine
126         {"Storm Watch"                    , "watch",    "", 1000, 1, 0, {238, 130, 238}},  // violet
127         {"Tropical Storm Watch"           , "watch",    "", 1000, 1, 0, {240, 128, 128}},  // lightcoral
128         {"Tropical Storm Wind Watch"      , "watch",    "", 1000, 1, 0, {240, 128, 128}},  // lightcoral
129         {"Typhoon Watch"                  , "watch",    "", 1000, 1, 0, {255, 0  , 255}},  // magenta
130         {"Wind Chill Watch"               , "watch",    "", 1000, 1, 0, {95 , 158, 160}},  // cadetblue
131         {"Winter Storm Watch"             , "watch",    "", 1000, 1, 0, {70 , 130, 180}},  // steelblue
132
133         /* Statements */
134         {"Coastal Flood Statement"        , "other",    "", 1000, 1, 0, {107, 142, 35 }},  // olivedrab
135         {"Flash Flood Statement"          , "other",    "", 1000, 1, 0, {154, 205, 50 }},  // yellowgreen
136         {"Flood Statement"                , "other",    "", 1000, 1, 0, {0  , 255, 0  }},  // lime
137         {"Hurricane Statement"            , "other",    "", 1000, 1, 0, {147, 112, 219}},  // mediumpurple
138         {"Lakeshore Flood Statement"      , "other",    "", 1000, 1, 0, {107, 142, 35 }},  // olivedrab
139         {"Marine Weather Statement"       , "other",    "", 1000, 1, 0, {255, 239, 213}},  // peachpuff
140         {"Rip Current Statement"          , "other",    "", 1000, 1, 0, {64 , 224, 208}},  // turquoise
141         {"Severe Weather Statement"       , "other",    "", 1000, 1, 0, {0  , 255, 255}},  // aqua
142         {"Special Weather Statement"      , "other",    "", 1000, 1, 0, {255, 228, 181}},  // moccasin
143         {"Typhoon Statement"              , "other",    "", 1000, 1, 0, {147, 112, 219}},  // mediumpurple
144
145         /* Misc */
146         {"Air Quality Alert"              , "other",    "", 1000, 1, 0, {128, 128, 128}},  // gray
147
148         {"Extreme Fire Danger"            , "other",    "", 1000, 1, 0, {233, 150, 122}},  // darksalmon
149
150         {"Child Abduction Emergency"      , "other",    "", 1000, 1, 0, {255, 215, 0  }},  // gold
151         {"Local Area Emergency"           , "other",    "", 1000, 1, 0, {192, 192, 192}},  // silver
152
153         {"Short Term Forecast"            , "other",    "", 1000, 1, 0, {152, 251, 152}},  // palegreen
154
155         {"Evacuation Immediate"           , "other",    "", 1000, 1, 0, {127, 255, 0  }},  // chartreuse
156
157         {"Administrative Message"         , "other",    "", 1000, 1, 0, {255, 255, 255}},  // white
158         {"Civil Emergency Message"        , "other",    "", 1000, 1, 0, {255, 182, 193}},  // lightpink
159
160         {"911 Telephone Outage"           , "other",    "", 1000, 1, 0, {192, 192, 192}},  // silver
161
162         {"Hazardous Weather Outlook"      , "other",    "", 1000, 1, 0, {238, 232, 170}},  // palegoldenrod
163         {"Hydrologic Outlook"             , "other",    "", 1000, 1, 0, {144, 238, 144}},  // lightgreen
164
165         {"Test"                           , "other",    "", 1000, 1, 0, {240, 255, 255}},  // azure
166
167         /* End of list */
168         {NULL, NULL, NULL, 0, 0, 0, {0, 0, 0}},
169 };
170
171 AlertInfo *alert_info_find(gchar *title)
172 {
173         for (int i = 0; alert_info[i].title; i++)
174                 if (g_str_has_prefix(title, alert_info[i].title))
175                         return &alert_info[i];
176         return NULL;
177 }