aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAKP <tom@tdpain.net>2022-04-05 09:35:16 +0100
committerAKP <tom@tdpain.net>2022-04-05 09:35:16 +0100
commitfcf501e78d95d95a881d3783d69f02dc25a41529 (patch)
treee87c855671bd3410e52965b78f969bbf3abd1b48
parentdb7abef7056eb786b2fefef8f9bb68ed39b24269 (diff)
Polish email
Signed-off-by: AKP <tom@tdpain.net>
-rw-r--r--.gitignore1
-rw-r--r--Makefile7
-rw-r--r--walrss/internal/rss/processor.go29
-rw-r--r--writeVersionNumber.sh7
4 files changed, 35 insertions, 9 deletions
diff --git a/.gitignore b/.gitignore
index 60759b8..d5eb9fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@
run/
bin/
+walrss/internal/state/version.go
diff --git a/Makefile b/Makefile
index 9f20f12..b2e10e1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
.PHONY: prebuild fmt
-build: templates
+build: templates writeVersionNumber
mkdir -p bin
go build -o bin/walrss github.com/codemicro/walrss/walrss
@@ -12,4 +12,7 @@ fmt:
go fmt github.com/codemicro/walrss/...
templates:
- qtc -skipLineComments -ext qtpl.html -dir walrss/internal/http/views \ No newline at end of file
+ qtc -skipLineComments -ext qtpl.html -dir walrss/internal/http/views
+
+writeVersionNumber:
+ bash ./writeVersionNumber.sh \ No newline at end of file
diff --git a/walrss/internal/rss/processor.go b/walrss/internal/rss/processor.go
index 214aaf2..b4572f9 100644
--- a/walrss/internal/rss/processor.go
+++ b/walrss/internal/rss/processor.go
@@ -42,8 +42,17 @@ func ProcessFeeds(st *state.State, day db.SendDay, hour int) error {
return err
}
+ var interval time.Duration
+ if ur.Schedule.Day == db.SendDaily {
+ interval = time.Hour * 24
+ } else {
+ interval = time.Hour * 24 * 7
+ }
+
var processedFeeds []*processedFeed
+ startTime := time.Now().UTC()
+
for _, f := range userFeeds {
pf := new(processedFeed)
pf.Name = f.Name
@@ -52,13 +61,12 @@ func ProcessFeeds(st *state.State, day db.SendDay, hour int) error {
if err != nil {
pf.Error = err
} else {
- // TODO: this interval is wack
- pf.Items = filterFeedContent(rawFeed, time.Date(2022, 04, 01, 0, 0, 0, 0, time.UTC))
+ pf.Items = filterFeedContent(rawFeed, time.Now().UTC().Add(-interval))
}
processedFeeds = append(processedFeeds, pf)
}
- plainContent, htmlContent, err := generateEmail(st, processedFeeds)
+ plainContent, htmlContent, err := generateEmail(st, processedFeeds, interval, time.Now().UTC().Sub(startTime))
if err != nil {
return err
}
@@ -130,7 +138,7 @@ func filterFeedContent(feed *gofeed.Feed, earliestPublishTime time.Time) []*feed
return o
}
-func generateEmail(st *state.State, processedItems []*processedFeed) (plain, html []byte, err error) {
+func generateEmail(st *state.State, processedItems []*processedFeed, interval, timeToGenerate time.Duration) (plain, html []byte, err error) {
sort.Slice(processedItems, func(i, j int) bool {
pi, pj := processedItems[i], processedItems[j]
@@ -147,8 +155,15 @@ func generateEmail(st *state.State, processedItems []*processedFeed) (plain, htm
var sb strings.Builder
- sb.WriteString("Here are the updates to the feeds you're subscribed to that have been published since we " +
- "last sent you a digest.\n\n")
+ sb.WriteString("Here are the updates to the feeds you're subscribed to that have been published in the last ")
+
+ if interval.Hours() == 24 {
+ sb.WriteString("24 hours")
+ } else {
+ sb.WriteString(fmt.Sprintf("%.0f days", interval.Hours()/24))
+ }
+
+ sb.WriteString(".\n\n")
if len(processedItems) == 0 {
sb.WriteString("*There's nothing to show here right now.*\n\n")
@@ -197,7 +212,7 @@ func generateEmail(st *state.State, processedItems []*processedFeed) (plain, htm
Product: hermes.Product{
Name: "Walrss",
Link: st.Config.Server.ExternalURL,
- Copyright: ":)",
+ Copyright: fmt.Sprintf("This email was generated in %.2f seconds by Walrss v%s.\nhttps://github.com/codemicro/walrss", timeToGenerate.Seconds(), state.Version),
},
Theme: new(hermes.Flat),
}
diff --git a/writeVersionNumber.sh b/writeVersionNumber.sh
new file mode 100644
index 0000000..1c3061e
--- /dev/null
+++ b/writeVersionNumber.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+cat << EOF > walrss/internal/state/version.go
+package state
+
+const Version = "$(git rev-parse HEAD | head -c 7)"
+EOF \ No newline at end of file