Skip to content

Commit b098066

Browse files
committed
chore: clean up sources
1 parent 4d7decb commit b098066

File tree

2 files changed

+76
-104
lines changed

2 files changed

+76
-104
lines changed

‎app/root.go‎

Lines changed: 0 additions & 101 deletions
This file was deleted.

‎main.go‎

Lines changed: 76 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,83 @@
11
package main
22

33
import (
4-
"os"
4+
"context"
5+
"fmt"
6+
"log"
7+
"os"
8+
"time"
59

6-
"github.com/midzer/sitemap2feed/app"
10+
"github.com/bored-engineer/sitemap"
11+
"github.com/gorilla/feeds"
712
)
13+
814
func main() {
9-
os.Exit(app.CLI(os.Args[1:]))
15+
if err := run(); err != nil {
16+
fmt.Fprintf(os.Stderr, "error: %v\n", err)
17+
os.Exit(1)
18+
}
19+
}
20+
21+
func writeFile(fname string, c func() (string, error)) error {
22+
f, err := os.Create(fname)
23+
if err != nil {
24+
return fmt.Errorf("can't create %s: %w", fname, err)
25+
}
26+
defer f.Close()
27+
28+
s, err := c()
29+
if err != nil {
30+
return fmt.Errorf("can't convert feed: %w", err)
31+
}
32+
33+
_, err = f.WriteString(s)
34+
if err != nil {
35+
return fmt.Errorf("can't write to %s: %w", fname, err)
36+
}
37+
38+
return nil
39+
}
40+
41+
func run() error {
42+
urls, err := sitemap.Fetch(context.Background(), "https://sitemaps.org/sitemap.xml")
43+
if err != nil {
44+
return fmt.Errorf("can't fetch sitemap: %w", err)
45+
}
46+
47+
feed := &feeds.Feed{
48+
Title: "Sitemaps",
49+
Link: &feeds.Link{Href: "https://sitemaps.org/"},
50+
}
51+
52+
for _, url := range urls {
53+
log.Println(url.LastModification, url.Location)
54+
updated, err := time.Parse("2006-01-02", url.LastModification.String())
55+
if err != nil {
56+
return fmt.Errorf("can't parse last modification date: %w", err)
57+
}
58+
59+
item := &feeds.Item{
60+
Id: url.Location,
61+
Link: &feeds.Link{Href: url.Location},
62+
Updated: updated,
63+
}
64+
feed.Add(item)
65+
}
66+
67+
// write atom.xml
68+
if err := writeFile("atom.xml", feed.ToAtom); err != nil {
69+
return err
70+
}
71+
72+
// write rss.xml
73+
if err := writeFile("rss.xml", feed.ToRss); err != nil {
74+
return err
75+
}
76+
77+
// write feed.json
78+
if err := writeFile("feed.json", feed.ToJSON); err != nil {
79+
return err
80+
}
81+
82+
return nil
1083
}

0 commit comments

Comments
 (0)