about summary refs log tree commit diff stats
path: root/internal/atom/atom.go
diff options
context:
space:
mode:
authorAlan Pearce2024-04-17 20:31:14 +0200
committerAlan Pearce2024-04-17 20:53:45 +0200
commit4dfd72e68c385a6f02370e38831f33e644276055 (patch)
tree6536fa38d96e27207baf062bc992af6654e44ccd /internal/atom/atom.go
parent347d0cd1a73921a8cbc43798a7fbe2095791bbe9 (diff)
downloadwebsite-4dfd72e68c385a6f02370e38831f33e644276055.tar.lz
website-4dfd72e68c385a6f02370e38831f33e644276055.tar.zst
website-4dfd72e68c385a6f02370e38831f33e644276055.zip
use internal imports correctly
Diffstat (limited to 'internal/atom/atom.go')
-rw-r--r--internal/atom/atom.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/internal/atom/atom.go b/internal/atom/atom.go
new file mode 100644
index 0000000..f2ca4a9
--- /dev/null
+++ b/internal/atom/atom.go
@@ -0,0 +1,43 @@
+package atom
+
+import (
+	"encoding/xml"
+	"time"
+
+	. "website/internal/config"
+)
+
+func MakeTagURI(config Config, specific string) string {
+	return "tag:" + config.OriginalDomain + "," + config.DomainStartDate + ":" + specific
+}
+
+type Link struct {
+	XMLName xml.Name `xml:"link"`
+	Rel     string   `xml:"rel,attr"`
+	Type    string   `xml:"type,attr"`
+	Href    string   `xml:"href,attr"`
+}
+
+func MakeLink(url string) Link {
+	return Link{
+		Rel:  "alternate",
+		Type: "text/html",
+		Href: url,
+	}
+}
+
+type FeedContent struct {
+	Content string `xml:",innerxml"`
+	Type    string `xml:"type,attr"`
+}
+
+type FeedEntry struct {
+	XMLName xml.Name    `xml:"entry"`
+	Title   string      `xml:"title"`
+	Link    Link        `xml:"link"`
+	Id      string      `xml:"id"`
+	Updated time.Time   `xml:"updated"`
+	Summary string      `xml:"summary,omitempty"`
+	Content FeedContent `xml:"content"`
+	Author  string      `xml:"author>name"`
+}