aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Kuznetsov <evgeny@kuznetsov.md>2020-01-29 09:56:21 +0300
committerEvgeny Kuznetsov <evgeny@kuznetsov.md>2020-01-29 09:56:21 +0300
commitc300ef4b6c0911f3ca6631300e78f3db16ba06eb (patch)
tree4c900020ba34c6a2f4aa750d9f12fe1c7b4f2562
parent0dfb7a7190b5039177627abc0cb8eed48313378b (diff)
downloadradiorus-rss-c300ef4b6c0911f3ca6631300e78f3db16ba06eb.tar.gz
radiorus-rss-c300ef4b6c0911f3ca6631300e78f3db16ba06eb.zip
don't make feed title a link
-rw-r--r--main.go8
-rw-r--r--main_test.go19
-rw-r--r--testdata/TestFeed.golden2
-rw-r--r--testdata/TestServedFeed.golden2
4 files changed, 28 insertions, 3 deletions
diff --git a/main.go b/main.go
index 2d71e4d..83a14ef 100644
--- a/main.go
+++ b/main.go
@@ -125,7 +125,7 @@ func populateFeed(feed *feeds.Feed, page []byte) (err error) {
return fmt.Errorf("bad programme page")
}
- feed.Title = string(titleMatch[1])
+ feed.Title = stripLink(string(titleMatch[1]))
programImage := programImageRe.FindSubmatch(page)
feed.Image = &feeds.Image{
Link: feed.Link.Href,
@@ -255,3 +255,9 @@ func episodeID(url string) string {
}
return url
}
+
+// stripLink strips string of <a> tags
+func stripLink(s string) string {
+ re := regexp.MustCompile(`</?a.*?>`)
+ return re.ReplaceAllString(s, "")
+}
diff --git a/main_test.go b/main_test.go
index b3d1b7f..ce58e2a 100644
--- a/main_test.go
+++ b/main_test.go
@@ -226,3 +226,22 @@ func TestEpisodeID(t *testing.T) {
}
}
}
+
+func TestStripLink(t *testing.T) {
+ type testval struct {
+ raw string
+ ret string
+ }
+
+ var tests = []testval{
+ {`<a href="/brand/57083">"Аэростат"</a>`, `"Аэростат"`},
+ }
+
+ for _, test := range tests {
+ got := stripLink(test.raw)
+ want := test.ret
+ if got != want {
+ t.Error("want:", want, "got:", got)
+ }
+ }
+}
diff --git a/testdata/TestFeed.golden b/testdata/TestFeed.golden
index 2c7cd62..6024fef 100644
--- a/testdata/TestFeed.golden
+++ b/testdata/TestFeed.golden
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
- <title>&lt;a href=&#34;/brand/57083&#34;&gt;&#34;Аэростат&#34;&lt;/a&gt;</title>
+ <title>&#34;Аэростат&#34;</title>
<link>http://www.radiorus.ru/brand/57083/episodes</link>
<description>Вы не можете быть до конца уверены, что на этот раз вам откроет БГ – будь то взгляд на группу Doors или столь глобальные вопросы, как: что такое новое время, как делится история мира в соответствии с древней индийской космогонией, стоит ли ждать ветра перемен, ждет ли нас духовное возрождение, где граница между прошлым и будущим. А может и вовсе не стоит искать ответы на эти вопросы? Потому что это не те вопросы, а потому и ответы не приведут вас к истине...&#xD;&#xA;&#xD;&#xA;Прислушаемся к Борису Гребенщикову, который с улыбкой говорит всем нам &#34;Здравствуйте!&#34; и находит самые простые ответы...</description>
<image>
diff --git a/testdata/TestServedFeed.golden b/testdata/TestServedFeed.golden
index b28029a..ed11e3a 100644
--- a/testdata/TestServedFeed.golden
+++ b/testdata/TestServedFeed.golden
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
- <title>&lt;a href=&#34;/brand/57083&#34;&gt;&#34;Аэростат&#34;&lt;/a&gt;</title>
+ <title>&#34;Аэростат&#34;</title>
<link>**localhost**/brand/57083/episodes</link>
<description>Вы не можете быть до конца уверены, что на этот раз вам откроет БГ – будь то взгляд на группу Doors или столь глобальные вопросы, как: что такое новое время, как делится история мира в соответствии с древней индийской космогонией, стоит ли ждать ветра перемен, ждет ли нас духовное возрождение, где граница между прошлым и будущим. А может и вовсе не стоит искать ответы на эти вопросы? Потому что это не те вопросы, а потому и ответы не приведут вас к истине...&#xD;&#xA;&#xD;&#xA;Прислушаемся к Борису Гребенщикову, который с улыбкой говорит всем нам &#34;Здравствуйте!&#34; и находит самые простые ответы...</description>
<image>