package main import ( "fmt" "github.com/mmcdole/gofeed" ) type RssItem struct { Title string Description string Link string } func (item RssItem) String() string { return fmt.Sprintf("RssItem(Title=%s, ...)", item.Title) } func FetchRss(url string) ([]RssItem, error) { fp := gofeed.NewParser() feed, err := fp.ParseURL(url) if err != nil { return nil, err } items := make([]RssItem, 0, len(feed.Items)) for _, item := range feed.Items { newItem := RssItem{item.Title, item.Description, item.Link} items = append(items, newItem) } return items, nil }