github.com/danp/nspoweroutages v0.0.0-20260714033459-54680e202522
Basename is uppercase README.mdShell command-substitution syntax
SHA-256617c40e19df220007409124a2ef1dd537afbf0129f423a4c67c1164488136243
URLhttps://proxy.golang.org/github.com/danp/nspoweroutages/@v/v0.0.0-20260714033459-54680e202522.zip
MaleculeH₂(Cm₃F)
Evidence
⋯6 lines
7go run ./cmd/scrape-outages | jq -S 'sort_by(.id)' > data/outages.json
8
9dir="$(curl --silent --fail https://outagemap.nspower.ca/resources/data/external/interval_generation_data/metadata.json | jq -r .directory)"
10durl="https://outagemap.nspower.ca/resources/data/external/interval_generation_data/$dir"
11
12f="report_servicearea"
13curl --silent --fail --retry 3 --max-time 15 -o - "$durl/$f.json" | jq -S . > "data/$f.json"
14
15# not super useful
16# go run ./cmd/scrape-load | jq -S . > data/load.json
1package main
2
3import (
4 "bytes"
5 "encoding/json"
6 "fmt"
7 "io"
8 "log"
9 "net/http"
10 "os"
11 "sort"
12 "strconv"
13 "strings"
14 "time"
15
16 "github.com/PuerkitoBio/goquery"
17)
18
⋯7 lines
42:11… pdate{}, fmt.Errorf("load location: %w", err)
43 }
44
45 resp, err := http.Get("https://resourcesprd-nspower.aws.silvertech.net/oasis/current_report.shtml")
46 if err != nil {
47 return update{}, fmt.Errorf("get: %w", err)
48 }
49 defer resp.Body.Close()
50
51 b, err := io.ReadAll(resp.Body)
52 if err != nil {
53 return update{}, fmt.Errorf("get: %w", err)
⋯5 lines
23:17… Encoder(os.Stdout)
24 enc.Encode(data)
25}
26
27const defaultBaseURL = "http://outagemap.nspower.ca/resources/data/external/interval_generation_data"
28
29type fetcher struct {
⋯5 lines
96:11… ) == 0 {
97 return of, nil
98 }
99
100 var rof rawOutageFile
101 if err := json.Unmarshal(fd, &rof); err != nil {
102 return of, err
103 }
104
105 of.FileData = make([]outageFileData, 0, len(rof.FileData))
106 for _, rfd := range r …
No evidence locations were recorded for this file. Raw result