make seperate feeds for gemini and html

This commit is contained in:
Nico 2020-11-25 19:45:37 +00:00
parent 906f398022
commit 7b07244ba2
1 changed files with 38 additions and 10 deletions

48
main.go
View File

@ -75,7 +75,6 @@ var tagData map[string][]pageInfo = make(map[string][]pageInfo)
var feed *feeds.Feed = &feeds.Feed{
Title: "Nico's site",
Link: &feeds.Link{Href: geminiPrefix},
Author: &feeds.Author{Name: "Nico", Email: "nico@itwont.work"},
}
@ -167,12 +166,7 @@ func processPage(f filePathInfo) error {
}
}
}
// TODO feeds for html
ls, err := processLinkString(f.Path, GEMINI)
if err != nil {
return err
}
l := &feeds.Link{Href: ls}
l := &feeds.Link{Href: f.Path}
for i, d := range feed.Items {
if *l == *d.Link {
fmt.Println("got dupe!")
@ -202,7 +196,7 @@ func processPage(f filePathInfo) error {
}
feed.Add(&feeds.Item{
Title: info.Title,
Link: &feeds.Link{Href: ls},
Link: &feeds.Link{Href: f.Path},
Updated: s.ModTime(),
Description: "New/Updated Page: " + info.Title,
})
@ -401,9 +395,35 @@ func main() {
}
}
// TODO recently edited pages
// TODO "recently edited" pages
// Write Feeds
fe, err := feed.ToAtom()
gemFeed := &feeds.Feed{
Title: feed.Title,
Author: feed.Author,
Link: &feeds.Link{Href: geminiPrefix},
}
HTMLFeed := &feeds.Feed{
Title: feed.Title,
Author: feed.Author,
Link: &feeds.Link{Href: htmlPrefix},
}
for _, i := range feed.Items {
gi := *i // gemini item
hi := *i // HTML item
hl, err := processLinkString(i.Link.Href,HTML)
if err != nil {
panic(err)
}
gl, err := processLinkString(i.Link.Href, GEMINI)
if err != nil {
panic(err)
}
hi.Link = &feeds.Link{Href: hl}
gi.Link = &feeds.Link{Href: gl}
gemFeed.Add(&gi)
HTMLFeed.Add(&hi)
}
fe, err := gemFeed.ToAtom()
if err != nil {
panic(err)
}
@ -411,6 +431,14 @@ func main() {
if err != nil {
panic(err)
}
fe, err = HTMLFeed.ToAtom()
if err != nil {
panic(err)
}
err = ioutil.WriteFile(filepath.Join(htmlOutputDir,"atom.xml"), []byte(fe), 0644)
if err != nil {
panic(err)
}
j, err := json.Marshal(tagData)
err = ioutil.WriteFile(tagFile, j, 0644)
if err != nil {