find-stone-beer / commit
Write full set of results to HTML file and treat this file as artifacts of CI job.
.gitignore | 1 + .gitlab-ci.yml | 4 ++++ main.go | 35 ++++++++++++++++++++++++++--------- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index c8e2541..a6bb4d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ cache __debug_bin find_stone_beer +results.html diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c99721d..fb5c98e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,3 +18,7 @@ run-job: stage: run script: - make run + artifacts: + paths: + - results.html + diff --git a/main.go b/main.go index d808959..04b0d81 100644 --- a/main.go +++ b/main.go @@ -22,6 +22,7 @@ type relevantSeller struct { Name string Pos geodist.Coord DeliveryAgeDays int + Message string } const ( @@ -98,10 +99,14 @@ func main() { if daysSinceDelivery > maxDeliveryWindowDays { continue } + mapsLink := getGoogleMapsLink(seller.Pos) + message := fmt.Sprintf("<a href='%s'>%s</a> - delivered %d days ago\n", mapsLink, seller.Title, daysSinceDelivery) + relevantSellers = append(relevantSellers, relevantSeller{ Name: seller.Title, Pos: seller.Pos, DeliveryAgeDays: daysSinceDelivery, + Message: message, }) } } @@ -111,25 +116,37 @@ func main() { return a.DeliveryAgeDays - b.DeliveryAgeDays }) - // more info text and link var moreInfoText = "\n\nResults truncated, see full list <a href='https://gitlab.com/PavelSafronov/find-stone-beer'>here</a>" var message string for _, seller := range relevantSellers { - mapsLink := getGoogleMapsLink(seller.Pos) - sellerLink := fmt.Sprintf("<a href='%s'>%s</a> - delivered %d days ago\n", mapsLink, seller.Name, seller.DeliveryAgeDays) - newMessage := message + sellerLink + newMessage := message + seller.Message if len(newMessage)+len(moreInfoText) > MaxMessageLength { message += moreInfoText break } message = newMessage } - fmt.Printf("Message length: %d\n", len(message)) - fmt.Println() - fmt.Print(message) - fmt.Println() - SendPushoverMessage(message) + // SendPushoverMessage(message) + + sb := strings.Builder{} + sb.WriteString(`<!DOCTYPE html> + <html lang="en"> + <head> + <meta charset="utf-8"> + <title>FindStoneBeer - Results</title> + </head> + <body>`) + for _, seller := range relevantSellers { + sb.WriteString(seller.Message) + sb.WriteString("<br>") + } + sb.WriteString(`</body></html>`) + + err = os.WriteFile("results.html", []byte(sb.String()), 0644) + if err != nil { + panic(err) + } } func getGoogleMapsLink(coords geodist.Coord) string {