diff options
-rw-r--r-- | main.go | 25 |
1 files changed, 17 insertions, 8 deletions
@@ -22,6 +22,7 @@ import ( "net/http" "regexp" "strconv" + "strings" "time" "github.com/gorilla/feeds" @@ -64,16 +65,22 @@ func main() { } populateFeed(feed, page) + describeFeed(feed) describeEpisodes(feed) feed.Created = time.Now() + outputFile := outputPath + "radiorus-" + programNumber + ".rss" + + writeFeed(feed, outputFile) +} + +func writeFeed(feed *feeds.Feed, filename string) { rss, err := feed.ToRss() if err != nil { log.Fatal(err) } - outputFile := outputPath + "radiorus-" + programNumber + ".rss" output := []byte(rss) - if err := ioutil.WriteFile(outputFile, output, 0644); err != nil { + if err := ioutil.WriteFile(filename, output, 0644); err != nil { log.Fatal(err) } } @@ -90,12 +97,6 @@ func populateFeed(feed *feeds.Feed, page []byte) { episodes := episodeRe.FindAll(page, -1) - programAboutUrl := "http://www.radiorus.ru/brand/" + programNumber + "/about" - programAboutPage := getPage(programAboutUrl) - programAbout := programAboutRe.FindSubmatch(programAboutPage)[1] - re := regexp.MustCompile(`<(.+?)?>`) - feed.Description = string(re.ReplaceAll(programAbout, []byte(``))) - badFeed := false for _, episode := range episodes { @@ -140,6 +141,14 @@ func populateFeed(feed *feeds.Feed, page []byte) { } } +func describeFeed(feed *feeds.Feed) { + programAboutUrl := strings.TrimSuffix(feed.Link.Href, "episodes") + "about" + programAboutPage := getPage(programAboutUrl) + programAbout := programAboutRe.FindSubmatch(programAboutPage)[1] + re := regexp.MustCompile(`<(.+?)?>`) + feed.Description = string(re.ReplaceAll(programAbout, []byte(``))) +} + func describeEpisodes(feed *feeds.Feed) { for _, item := range feed.Items { page := getPage(item.Link.Href) |