youtuber/feed/feed.go

38 lines
636 B
Go

package feed
import (
"net/http"
"strings"
"time"
"github.com/mmcdole/gofeed"
)
func Fetch(s string) ([]Item, error) {
resp, err := http.Get(s)
if err != nil {
return nil, err
}
defer resp.Body.Close()
gofeed, err := gofeed.NewParser().Parse(resp.Body)
if err != nil {
return nil, err
}
links := make([]Item, 0)
for _, item := range gofeed.Items {
timestamp := strings.Split(item.Title, " ")[1]
t, err := time.Parse("1/2/06", timestamp)
if err == nil {
links = append(links, Item{
Link: item.Link,
Title: strings.ReplaceAll(item.Title, "/", "-"),
Date: t,
})
}
}
return links, nil
}