Add News widget and integrate NewsAPI for live updates

This commit is contained in:
2025-12-29 21:19:05 +01:00
parent d638a8ae97
commit 9b5afc3d7c
9 changed files with 260 additions and 38 deletions

View File

@@ -4,7 +4,6 @@ import (
"ArinDash/config"
"encoding/json"
"io"
"log"
"net/http"
)
@@ -29,6 +28,7 @@ type Warning struct {
Code []string `json:"code"`
Reference string `json:"reference"`
Info []Info `json:"info"`
Errormsg string `json:"errormsg"`
}
type Info struct {
@@ -53,33 +53,45 @@ func FetchWarnings() []Warning {
}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
return append(make([]Warning, 0), Warning{
Errormsg: err.Error(),
})
}
defer resp.Body.Close()
respBody, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
return append(make([]Warning, 0), Warning{
Errormsg: err.Error(),
})
}
warnings := make([]Warning, 0)
err = json.Unmarshal(respBody, &warnings)
if err != nil {
log.Fatal(err)
return append(make([]Warning, 0), Warning{
Errormsg: err.Error(),
})
}
result := make([]Warning, 0)
for _, warning := range warnings {
req, err := http.NewRequest("GET", apiBaseURL+"/warnings/"+warning.Id+".json", nil)
if err != nil {
panic(err)
return append(make([]Warning, 0), Warning{
Errormsg: err.Error(),
})
}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
return append(make([]Warning, 0), Warning{
Errormsg: err.Error(),
})
}
defer resp.Body.Close()
respBody, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
return append(make([]Warning, 0), Warning{
Errormsg: err.Error(),
})
}
warning := Warning{}
err = json.Unmarshal(respBody, &warning)