From bf23d6a9cf4655debf64eb4647cb0aaf4ba6e62d Mon Sep 17 00:00:00 2001 From: bel Date: Mon, 5 May 2025 22:10:04 -0600 Subject: [PATCH] wish i could preview items but too lazy --- src/cmd/server/handler/testdata/index.tmpl | 27 ++++++++++++++-------- src/cmd/server/handler/ui.go | 6 +++++ src/feeds/http.go | 8 +++++-- 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/cmd/server/handler/testdata/index.tmpl b/src/cmd/server/handler/testdata/index.tmpl index 618a6d1..bc3631d 100644 --- a/src/cmd/server/handler/testdata/index.tmpl +++ b/src/cmd/server/handler/testdata/index.tmpl @@ -8,10 +8,10 @@
{{ range feeds }}
-

{{ .Version.URL }}

-
{{ .Version.Created }} (last {{ .Execution.Executed }})
-
@{{ .Version.Cron }} ~"{{ .Version.Pattern }}"
-
{{ .Version.WebhookMethod }} {{ .Version.WebhookURL }} | {{ .Version.WebhookBody }}
+

{{ .Version.URL }}

+
@{{ .Version.Cron }} ~{{ .Version.Pattern }}
+
{{ .Version.WebhookMethod }} {{ .Version.WebhookURL }} | {{ .Version.WebhookBody }}
+
(last run {{ ago .Execution.Executed }} ago)
{{ end }}
@@ -20,17 +20,24 @@

- {{ if eq "" .editing.ID }} - New - {{ else }} - Update (clear) - {{ end }} + {{ if eq "" .editing.ID }} + New + {{ else }} + Update {{ .editing.URL }} (clear) + {{ end }}

{{ range $k, $v := .editing }} {{ if not (in $k "Created" "Deleted" "Updated" "ID") }}
- +
{{ end }} diff --git a/src/cmd/server/handler/ui.go b/src/cmd/server/handler/ui.go index a019bc9..1ae01c6 100644 --- a/src/cmd/server/handler/ui.go +++ b/src/cmd/server/handler/ui.go @@ -8,6 +8,7 @@ import ( "show-rss/src/feeds" "slices" "text/template" + "time" ) var dir = func() string { @@ -65,6 +66,9 @@ func (h Handler) uiIndex(w http.ResponseWriter, r *http.Request) error { "in": func(k string, v ...string) bool { return slices.Contains(v, k) }, + "ago": func(t time.Time) time.Duration { + return time.Since(t) + }, }) tmpl, err := tmpl.Parse(string(b)) @@ -79,6 +83,8 @@ func (h Handler) uiIndex(w http.ResponseWriter, r *http.Request) error { var m map[string]any json.Unmarshal(b, &m) args["editing"] = m + + args["editing_url"], _ = editing.FetchURL() } return tmpl.Execute(w, args) diff --git a/src/feeds/http.go b/src/feeds/http.go index b2c5b59..6818825 100644 --- a/src/feeds/http.go +++ b/src/feeds/http.go @@ -139,7 +139,11 @@ func proxyFetch(ctx context.Context, u string) (string, error) { } func (feed Feed) FetchURL() (*url.URL, error) { - u, err := url.Parse(feed.Version.URL) + return feed.Version.FetchURL() +} + +func (version Version) FetchURL() (*url.URL, error) { + u, err := url.Parse(version.URL) if err != nil { return nil, err } @@ -148,7 +152,7 @@ func (feed Feed) FetchURL() (*url.URL, error) { case "nyaa": // `nyaa://?q=A B` to `https://nyaa.si/?page=rss&q=A%20B&c=0_0&f=0` q := u.Query() if q.Get("q") == "" { - return nil, fmt.Errorf("invalid nyaa:// (%s): no ?q", feed.Version.URL) + return nil, fmt.Errorf("invalid nyaa:// (%s): no ?q", version.URL) } q.Set("page", "rss")