massively simplify
This commit is contained in:
parent
34abeeb37b
commit
bd28927a4e
31
cmd/root.go
31
cmd/root.go
|
@ -41,26 +41,21 @@ func formatItem(item *gofeed.Item, tmpl *template.Template) (string, error) {
|
||||||
// along with any parsing errors.
|
// along with any parsing errors.
|
||||||
func parseFeeds(urls []string) ([]*gofeed.Feed, []error) {
|
func parseFeeds(urls []string) ([]*gofeed.Feed, []error) {
|
||||||
fp := gofeed.NewParser()
|
fp := gofeed.NewParser()
|
||||||
feedChs := make([]chan *gofeed.Feed, len(urls))
|
|
||||||
errChs := make([]chan error, len(urls))
|
|
||||||
|
|
||||||
for i, url := range urls {
|
|
||||||
feedCh := make(chan *gofeed.Feed)
|
|
||||||
errCh := make(chan error)
|
|
||||||
go func(url string) {
|
|
||||||
feed, err := fp.ParseURL(url)
|
|
||||||
feedCh <- feed
|
|
||||||
errCh <- err
|
|
||||||
}(url)
|
|
||||||
feedChs[i] = feedCh
|
|
||||||
errChs[i] = errCh
|
|
||||||
}
|
|
||||||
|
|
||||||
feeds := make([]*gofeed.Feed, len(urls))
|
feeds := make([]*gofeed.Feed, len(urls))
|
||||||
errs := make([]error, len(urls))
|
errs := make([]error, len(urls))
|
||||||
for i := range feedChs {
|
done := make(chan int)
|
||||||
feeds[i] = <-feedChs[i]
|
|
||||||
errs[i] = <-errChs[i]
|
for i, url := range urls {
|
||||||
|
go func(i int, url string) {
|
||||||
|
feed, err := fp.ParseURL(url)
|
||||||
|
feeds[i] = feed
|
||||||
|
errs[i] = err
|
||||||
|
done <- i
|
||||||
|
}(i, url)
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(urls); i++ {
|
||||||
|
<-done
|
||||||
}
|
}
|
||||||
|
|
||||||
return feeds, errs
|
return feeds, errs
|
||||||
|
|
Loading…
Reference in New Issue