Initial commit.
This commit is contained in:
commit
f12e7d4f51
|
@ -0,0 +1,55 @@
|
|||
package feed
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/mmcdole/gofeed"
|
||||
)
|
||||
|
||||
type Entry struct {
|
||||
Title string
|
||||
Link string
|
||||
Published time.Time
|
||||
Categories []string
|
||||
}
|
||||
|
||||
func EntryFromFeed(item *gofeed.Item) *Entry {
|
||||
t := time.Now()
|
||||
if item.UpdatedParsed != nil {
|
||||
t = *item.UpdatedParsed
|
||||
}
|
||||
e := &Entry{
|
||||
Title: item.Title,
|
||||
Link: item.Link,
|
||||
Published: t,
|
||||
Categories: item.Categories,
|
||||
}
|
||||
|
||||
return e
|
||||
}
|
||||
|
||||
type Feed struct {
|
||||
Title string
|
||||
Link string
|
||||
Updated time.Time
|
||||
Entries []*Entry
|
||||
}
|
||||
|
||||
func NewFromFeed(feed *gofeed.Feed) *Feed {
|
||||
t := time.Now()
|
||||
if feed.UpdatedParsed != nil {
|
||||
t = *feed.UpdatedParsed
|
||||
}
|
||||
|
||||
f := &Feed{
|
||||
Title: feed.Title,
|
||||
Link: feed.Link,
|
||||
Updated: t,
|
||||
}
|
||||
|
||||
for _, item := range feed.Items {
|
||||
f.Entries = append(f.Entries, EntryFromFeed(item))
|
||||
}
|
||||
|
||||
return f
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
module git.wntrmute.dev/kyle/locator
|
||||
|
||||
require (
|
||||
github.com/PuerkitoBio/goquery v1.8.0 // indirect
|
||||
github.com/andybalholm/cascadia v1.3.1 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/gregdel/pushover v1.2.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/mmcdole/gofeed v1.2.1 // indirect
|
||||
github.com/mmcdole/goxpp v1.1.0 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
golang.org/x/net v0.4.0 // indirect
|
||||
golang.org/x/text v0.5.0 // indirect
|
||||
)
|
||||
|
||||
go 1.20
|
|
@ -0,0 +1,32 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
"github.com/mmcdole/gofeed"
|
||||
)
|
||||
|
||||
var updateCycle = time.Minute
|
||||
|
||||
func checkFeed() error {
|
||||
fp := gofeed.NewParser()
|
||||
feed, err := fp.ParseURL("https://rpilocator.com/feed/")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
f, err := os.Create("feed.txt")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
spew.Fdump(f, feed)
|
||||
return nil
|
||||
}
|
||||
|
||||
func main() {
|
||||
checkFeed()
|
||||
}
|
Loading…
Reference in New Issue