parallelize fetching feeds
This commit is contained in:
parent
1b248ddbbb
commit
aa5b4923a3
17
cmd/root.go
17
cmd/root.go
|
@ -44,12 +44,21 @@ func rssfetch(cmd *cobra.Command, urls []string) {
|
|||
}
|
||||
|
||||
fp := gofeed.NewParser()
|
||||
var feedChs []chan *gofeed.Feed
|
||||
for _, url := range urls {
|
||||
feed, err := fp.ParseURL(url)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
ch := make(chan *gofeed.Feed)
|
||||
go func(url string) {
|
||||
feed, err := fp.ParseURL(url)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
ch <- feed
|
||||
}(url)
|
||||
feedChs = append(feedChs, ch)
|
||||
}
|
||||
|
||||
for _, feedCh := range feedChs {
|
||||
feed := <-feedCh
|
||||
for _, item := range feed.Items {
|
||||
out, err := formatItem(item, tmpl)
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in New Issue