aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.go10
-rw-r--r--main_test.go4
-rw-r--r--testdata/TestFeed.golden2
3 files changed, 12 insertions, 4 deletions
diff --git a/main.go b/main.go
index 5a2bd3e..6769385 100644
--- a/main.go
+++ b/main.go
@@ -154,10 +154,14 @@ func populateFeed(feed *feeds.Feed, page []byte) {
func describeFeed(feed *feeds.Feed, wg *sync.WaitGroup) {
defer wg.Done()
programAboutUrl := strings.TrimSuffix(feed.Link.Href, "episodes") + "about"
- programAboutPage := getPage(programAboutUrl)
- programAbout := programAboutRe.FindSubmatch(programAboutPage)[1]
+ page := getPage(programAboutUrl)
+ feed.Description = processFeedDesc(page)
+}
+
+func processFeedDesc(page []byte) string {
+ programAbout := programAboutRe.FindSubmatch(page)[1]
re := regexp.MustCompile(`<(.+?)?>`)
- feed.Description = string(re.ReplaceAll(programAbout, []byte(``)))
+ return string(re.ReplaceAll(programAbout, []byte(``)))
}
func describeEpisodes(feed *feeds.Feed) {
diff --git a/main_test.go b/main_test.go
index 6f2ea11..e7aa3cc 100644
--- a/main_test.go
+++ b/main_test.go
@@ -47,6 +47,10 @@ func TestFeed(t *testing.T) {
populateFeed(feed, page)
+ page = helperLoadBytes(t, "about")
+ page = cleanText(page)
+ feed.Description = processFeedDesc(page)
+
actual := createFeed(feed)
golden := filepath.Join("testdata", t.Name()+".golden")
if *update {
diff --git a/testdata/TestFeed.golden b/testdata/TestFeed.golden
index bf67d93..2c7cd62 100644
--- a/testdata/TestFeed.golden
+++ b/testdata/TestFeed.golden
@@ -2,7 +2,7 @@
<channel>
<title>&lt;a href=&#34;/brand/57083&#34;&gt;&#34;Аэростат&#34;&lt;/a&gt;</title>
<link>http://www.radiorus.ru/brand/57083/episodes</link>
- <description></description>
+ <description>Вы не можете быть до конца уверены, что на этот раз вам откроет БГ – будь то взгляд на группу Doors или столь глобальные вопросы, как: что такое новое время, как делится история мира в соответствии с древней индийской космогонией, стоит ли ждать ветра перемен, ждет ли нас духовное возрождение, где граница между прошлым и будущим. А может и вовсе не стоит искать ответы на эти вопросы? Потому что это не те вопросы, а потому и ответы не приведут вас к истине...&#xD;&#xA;&#xD;&#xA;Прислушаемся к Борису Гребенщикову, который с улыбкой говорит всем нам &#34;Здравствуйте!&#34; и находит самые простые ответы...</description>
<image>
<url>https://cdn-st4.rtr-vesti.ru/vh/pictures/xw/124/617/1.jpg</url>
<title>&#34;Аэростат&#34;</title>