summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsiddharth ravikumar <s@ricketyspace.net>2026-01-19 14:16:29 -0500
committersiddharth ravikumar <s@ricketyspace.net>2026-01-19 14:17:22 -0500
commit546863e8a821648c3614ee6859891512805965ef (patch)
tree555a2f1de676b41b82a5bf7f4811f23da07021c5
parent1a14419e39055c0e87c651339b7276938d68de98 (diff)
weather: update NewWeather
Add AreadDesc and Headline to Alert.
-rw-r--r--nws/nws.go2
-rw-r--r--static/peach.css3
-rw-r--r--static/peach.min.css2
-rw-r--r--templates/weather.tmpl8
-rw-r--r--version/version.go2
-rw-r--r--weather/weather.go4
6 files changed, 18 insertions, 3 deletions
diff --git a/nws/nws.go b/nws/nws.go
index afa7e08..1950153 100644
--- a/nws/nws.go
+++ b/nws/nws.go
@@ -63,8 +63,10 @@ type Forecast struct {
}
type FeatureProperties struct {
+ AreaDesc string
Event string
Severity string
+ Headline string
Description string
Instruction string
}
diff --git a/static/peach.css b/static/peach.css
index d5fbf3c..51a9bd0 100644
--- a/static/peach.css
+++ b/static/peach.css
@@ -169,7 +169,8 @@ body {
font-size: 0.9em;
}
-.alert-container .alert-body .instruction {
+.alert-container .alert-body .instruction,
+.alert-container .alert-body .areas {
font-size: 0.8em;
border-top: 1px solid rgb(150,150,150);
padding: 10px 0 0 0;
diff --git a/static/peach.min.css b/static/peach.min.css
index 5bf4a5b..30e0c33 100644
--- a/static/peach.min.css
+++ b/static/peach.min.css
@@ -1 +1 @@
-/* Copyright © 2022 siddharth ravikumar <s@ricketyspace.net> *//* SPDX-License-Identifier: ISC *//* Peach */@font-face{font-family: Roboto;src: url('/static/font/roboto-flex.ttf');font-display: swap;}body{font-family: Roboto, sans-serif;text-transform: lowercase;}.peach{display: flex;flex-direction: row;justify-content: center;}.root-container{display: flex;flex-direction: column;row-gap: 15px;}@media (min-width: 440px) {.root-container{width: 440px;}}@media (max-width: 440px) {.peach{flex-direction: column;}}/* Weather */.header-container,.main-container{display: flex;justify-content: center;}.header-container h1{margin: 0;}.header-container .header{margin-top: 10px;margin-bottom: 0px;font-size: 1.5em;}.period-container{display: flex;flex-direction: column;row-gap: 10px;}.now-container{display: flex;flex-direction: column;row-gap: 5px;}.temperature-forecast-container{display: flex;flex-direction: column;align-items: center;}.temperature-forecast-container .temperature{font-size: 2.8em;}.temperature-forecast-container .forecast{font-size: 1.8em;font-weight: 500;color: rgb(10,10,10);text-align: center;}.misc-container{display: flex;flex-direction: row;justify-content: center;column-gap: 20px;}.wind-container,.humidity-container{display: flex;flex-direction: row;justify-content: center;column-gap: 5px;color: rgb(10,10,10);}/* Q2H Timeline */.timeline-container{display: flex;justify-content: center;}.timeline-container .periods-container{width: 440px;display: flex;justify-content: space-around;align-content: space-around;}.timeline-container .periods-container .period .temperature{font-size: 1.2em;}.timeline-container .periods-container .period .hour{font-size: 0.8em;color: rgb(0,0,0);}/* Alerts */.alerts-container{display: flex;justify-content: center;flex-direction: column;row-gap: 10px;}@media (max-width: 440px) {.alerts-container{ padding: 0 15px;}}.alert-container .alert-header{background-color: rgb(0,0,0);color: rgb(255,255,255);font-weight: 900;padding: 5px 0px 5px 10px;}.alert-container{border-radius: 3px;border: 0.3px solid rgb(0,0,0);}.alert-container .alert-header .event-name{font-size: 1.2em;}.alert-container .alert-body{display: flex;flex-direction: column;padding: 15px 15px 2px 15px;}.alert-container .alert-body p{margin: 0 0 10px 0;}.alert-container .alert-body .severity{font-size: 1em;}.alert-container .alert-body .description{font-size: 0.9em;}.alert-container .alert-body .instruction{font-size: 0.8em;border-top: 1px solid rgb(150,150,150);padding: 10px 0 0 0;}/* BiDaily Timeline */.bd-timeline-container{display: flex;justify-content: center;}@media (max-width: 440px) {.bd-timeline-container{ padding: 0 15px;}}.bd-timeline-container .periods-container{width: 440px;display: flex;flex-direction: column;row-gap: 10px;}.bd-timeline-container .periods-container .period{display: flex;flex-direction: column;row-gap: 1px;border-radius: 3px;border: 0.1px solid rgb(0,0,0);padding: 10px 10px;}.bd-timeline-container .periods-container .period .name{font-size: 1.5em;}.bd-timeline-container .periods-container .period .temperature{font-size: 1.2em;}.bd-timeline-container .periods-container .period .forecast{font-size: 0.9em;}/* Search */.search-link-container{position: absolute;right: 10px;top: 0px;font-size: 1.5em;font-weight: 900;transform: rotate(-45deg);}.search-link-container a{text-decoration: none;color: rgb(0,0,0);}.search-container .search-form{display: flex;flex-direction: row;align-items: baseline;justify-content: center;}@media (max-width: 440px) {.search-container .search-form{ justify-content: flex-start; flex-wrap: wrap; row-gap: 5px;}}.search-container .search-form .search-box .location{font-size: 1.5em;border: 0;}.search-container .search-form .search-box .location:focus-within{border: 0;outline: 0;border-bottom: 2px solid rgb(0,0,0);}.search-container .search-form .search-box .location::placeholder{color: rgb(240,240,240);font-weight: 900;}.search-container .search-form .btn-block .search-btn{cursor: pointer;border: none;background-color: rgb(0 0 0);color: rgb(255 255 255);font-size: 1.3em;padding: 3px 10px 3px 10px;border-radius: 8px;font-weight: 900;}.message-container{font-size: 1.2em;}.message-container p{margin: 5px 0 5px 0;padding: 0 0 0 5px;}.search-result-container{display: flex;flex-direction: column;row-gap: 6px;}.search-result-container .item{font-size: 1.5em;}.search-result-container .location-name a{text-decoration: none;color: rgb(0,0,0);font-weight: 600;padding: 3px 5px 5px 5px;}.search-result-container .location-name a:hover{transition: background-color 0.3s linear;background-color: rgb(245,245,245);}/** About **/.about-container,.terms-container,.privacy-container{padding: 0 20px;}.about-container p,.terms-container p,.privacy-container p{margin: 10px 0;padding: 0 5px;line-height: 25px;}.about-container a,.terms-container a,.privacy-container a{text-decoration: none;border-bottom: 2px solid rgb(0,0,0);color: rgb(0,0,0);}.about-container .header{font-size: 1.5em;display: flex;flex-direction: column;}.about-container .header h1{margin: 5px 0 0px;}.about-container .header p{font-size: 0.5em;margin: 0;}.terms-container .header,.privacy-container .header{font-size: 1.3em;}.terms-container .header h2,.privacy-container .header h2{margin: 0 0 10px;}/** Footer **/.footer-container .footer{display: flex;justify-content: center;padding: 10px 0 10px 0;}.footer-container .footer .logo-container img{width: 20px;} \ No newline at end of file
+/* Copyright © 2022 siddharth ravikumar <s@ricketyspace.net> *//* SPDX-License-Identifier: ISC *//* Peach */@font-face{font-family: Roboto;src: url('/static/font/roboto-flex.ttf');font-display: swap;}body{font-family: Roboto, sans-serif;text-transform: lowercase;}.peach{display: flex;flex-direction: row;justify-content: center;}.root-container{display: flex;flex-direction: column;row-gap: 15px;}@media (min-width: 440px) {.root-container{width: 440px;}}@media (max-width: 440px) {.peach{flex-direction: column;}}/* Weather */.header-container,.main-container{display: flex;justify-content: center;}.header-container h1{margin: 0;}.header-container .header{margin-top: 10px;margin-bottom: 0px;font-size: 1.5em;}.period-container{display: flex;flex-direction: column;row-gap: 10px;}.now-container{display: flex;flex-direction: column;row-gap: 5px;}.temperature-forecast-container{display: flex;flex-direction: column;align-items: center;}.temperature-forecast-container .temperature{font-size: 2.8em;}.temperature-forecast-container .forecast{font-size: 1.8em;font-weight: 500;color: rgb(10,10,10);text-align: center;}.misc-container{display: flex;flex-direction: row;justify-content: center;column-gap: 20px;}.wind-container,.humidity-container{display: flex;flex-direction: row;justify-content: center;column-gap: 5px;color: rgb(10,10,10);}/* Q2H Timeline */.timeline-container{display: flex;justify-content: center;}.timeline-container .periods-container{width: 440px;display: flex;justify-content: space-around;align-content: space-around;}.timeline-container .periods-container .period .temperature{font-size: 1.2em;}.timeline-container .periods-container .period .hour{font-size: 0.8em;color: rgb(0,0,0);}/* Alerts */.alerts-container{display: flex;justify-content: center;flex-direction: column;row-gap: 10px;}@media (max-width: 440px) {.alerts-container{ padding: 0 15px;}}.alert-container .alert-header{background-color: rgb(0,0,0);color: rgb(255,255,255);font-weight: 900;padding: 5px 0px 5px 10px;}.alert-container{border-radius: 3px;border: 0.3px solid rgb(0,0,0);}.alert-container .alert-header .event-name{font-size: 1.2em;}.alert-container .alert-body{display: flex;flex-direction: column;padding: 15px 15px 2px 15px;}.alert-container .alert-body p{margin: 0 0 10px 0;}.alert-container .alert-body .severity{font-size: 1em;}.alert-container .alert-body .description{font-size: 0.9em;}.alert-container .alert-body .instruction,.alert-container .alert-body .areas{font-size: 0.8em;border-top: 1px solid rgb(150,150,150);padding: 10px 0 0 0;}/* BiDaily Timeline */.bd-timeline-container{display: flex;justify-content: center;}@media (max-width: 440px) {.bd-timeline-container{ padding: 0 15px;}}.bd-timeline-container .periods-container{width: 440px;display: flex;flex-direction: column;row-gap: 10px;}.bd-timeline-container .periods-container .period{display: flex;flex-direction: column;row-gap: 1px;border-radius: 3px;border: 0.1px solid rgb(0,0,0);padding: 10px 10px;}.bd-timeline-container .periods-container .period .name{font-size: 1.5em;}.bd-timeline-container .periods-container .period .temperature{font-size: 1.2em;}.bd-timeline-container .periods-container .period .forecast{font-size: 0.9em;}/* Search */.search-link-container{position: absolute;right: 10px;top: 0px;font-size: 1.5em;font-weight: 900;transform: rotate(-45deg);}.search-link-container a{text-decoration: none;color: rgb(0,0,0);}.search-container .search-form{display: flex;flex-direction: row;align-items: baseline;justify-content: center;}@media (max-width: 440px) {.search-container .search-form{ justify-content: flex-start; flex-wrap: wrap; row-gap: 5px;}}.search-container .search-form .search-box .location{font-size: 1.5em;border: 0;}.search-container .search-form .search-box .location:focus-within{border: 0;outline: 0;border-bottom: 2px solid rgb(0,0,0);}.search-container .search-form .search-box .location::placeholder{color: rgb(240,240,240);font-weight: 900;}.search-container .search-form .btn-block .search-btn{cursor: pointer;border: none;background-color: rgb(0 0 0);color: rgb(255 255 255);font-size: 1.3em;padding: 3px 10px 3px 10px;border-radius: 8px;font-weight: 900;}.message-container{font-size: 1.2em;}.message-container p{margin: 5px 0 5px 0;padding: 0 0 0 5px;}.search-result-container{display: flex;flex-direction: column;row-gap: 6px;}.search-result-container .item{font-size: 1.5em;}.search-result-container .location-name a{text-decoration: none;color: rgb(0,0,0);font-weight: 600;padding: 3px 5px 5px 5px;}.search-result-container .location-name a:hover{transition: background-color 0.3s linear;background-color: rgb(245,245,245);}/** About **/.about-container,.terms-container,.privacy-container{padding: 0 20px;}.about-container p,.terms-container p,.privacy-container p{margin: 10px 0;padding: 0 5px;line-height: 25px;}.about-container a,.terms-container a,.privacy-container a{text-decoration: none;border-bottom: 2px solid rgb(0,0,0);color: rgb(0,0,0);}.about-container .header{font-size: 1.5em;display: flex;flex-direction: column;}.about-container .header h1{margin: 5px 0 0px;}.about-container .header p{font-size: 0.5em;margin: 0;}.terms-container .header,.privacy-container .header{font-size: 1.3em;}.terms-container .header h2,.privacy-container .header h2{margin: 0 0 10px;}/** Footer **/.footer-container .footer{display: flex;justify-content: center;padding: 10px 0 10px 0;}.footer-container .footer .logo-container img{width: 20px;} \ No newline at end of file
diff --git a/templates/weather.tmpl b/templates/weather.tmpl
index 8a7a6a2..ba5440c 100644
--- a/templates/weather.tmpl
+++ b/templates/weather.tmpl
@@ -82,6 +82,9 @@
</div>
</div>
<div class="alert-body">
+ <div class="headline">
+ <p>{{ .Headline }}</p>
+ </div>
<div class="severity">
<p>Severity &mdash; {{ .Severity }}</p>
</div>
@@ -97,6 +100,11 @@
{{ end }}
</div>
{{ end }}
+ {{ if .AreaDesc }}
+ <div class="areas">
+ <p>Affected Areas: {{ .AreaDesc }}</p>
+ </div>
+ {{ end }}
</div>
</div>
{{ end }}
diff --git a/version/version.go b/version/version.go
index 53cd200..892a7e6 100644
--- a/version/version.go
+++ b/version/version.go
@@ -4,4 +4,4 @@
// Peach version.
package version
-const Version = "0.11.1-dev.1"
+const Version = "0.11.1-dev.2"
diff --git a/weather/weather.go b/weather/weather.go
index 0e981a1..456ff46 100644
--- a/weather/weather.go
+++ b/weather/weather.go
@@ -47,8 +47,10 @@ type WeatherTimeline struct {
}
type Alert struct {
+ AreaDesc string
Event string
Severity string
+ Headline string
Description []string
Instruction []string
}
@@ -132,8 +134,10 @@ func NewWeather(lat, lng float32) (*Weather, error, int) {
continue // Duplicate; skip.
}
a := Alert{
+ AreaDesc: strings.ReplaceAll(f.Properties.AreaDesc, ";", ","),
Event: f.Properties.Event,
Severity: f.Properties.Severity,
+ Headline: f.Properties.Headline,
Description: strings.Split(f.Properties.Description, "\n\n"),
Instruction: strings.Split(f.Properties.Instruction, "\n\n"),
}