aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Kuznetsov <evgeny@kuznetsov.md>2020-02-04 17:35:56 +0300
committerEvgeny Kuznetsov <evgeny@kuznetsov.md>2020-02-04 17:35:56 +0300
commitf25632cbc7c4871f295c5e63dbf0eb14cdcc6907 (patch)
tree62916411189c73f19acdd486349b290e26678305
parent8f44886d0114de8a4a432e28de930eae0928f709 (diff)
downloadradiorus-rss-f25632cbc7c4871f295c5e63dbf0eb14cdcc6907.tar.gz
radiorus-rss-f25632cbc7c4871f295c5e63dbf0eb14cdcc6907.zip
cleaner processing of pages containing video episodes
-rw-r--r--README.md2
-rw-r--r--main.go13
-rw-r--r--testdata/TestUpdatingFeed.golden1
-rw-r--r--testdata/TestVideoFeed.golden2
4 files changed, 11 insertions, 7 deletions
diff --git a/README.md b/README.md
index a9f4399..a87b987 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
[![Build Status](https://travis-ci.org/nekr0z/radiorus-rss.svg?branch=master)](https://travis-ci.org/nekr0z/radiorus-rss) [![codecov](https://codecov.io/gh/nekr0z/radiorus-rss/branch/master/graph/badge.svg)](https://codecov.io/gh/nekr0z/radiorus-rss) [![Go Report Card](https://goreportcard.com/badge/github.com/nekr0z/radiorus-rss)](https://goreportcard.com/report/github.com/nekr0z/radiorus-rss) [![GolangCI](https://golangci.com/badges/github.com/nekr0z/radiorus-rss.svg)](https://golangci.com)
-Этот парсер можно использовать для преобразования страницы передачи на сайте «Радио России» в RSS-ленту подкаста. На сегодняшний день поддерживаются только аудиопередачи, при попытке использовать идентификатор передачи с видеовыпусками лента будет сгенерирована, но в ней не будет выпусков.
+Этот парсер можно использовать для преобразования страницы передачи на сайте «Радио России» в RSS-ленту подкаста. На сегодняшний день поддерживаются только аудиопередачи, при попытке использовать идентификатор передачи с видеовыпусками лента будет сгенерирована, но в ней не будет прямых ссылок на видеофайлы.
## Использование
Может работать в качестве скрипта (при установленном `Go`) или в скомпилированном виде как приложение.
diff --git a/main.go b/main.go
index a105576..d284b20 100644
--- a/main.go
+++ b/main.go
@@ -165,10 +165,17 @@ func populateFeed(feed *feeds.Feed, page []byte) (err error) {
}
func findEnclosure(ep []byte) *feeds.Enclosure {
- episodeAudioRe := regexp.MustCompile(`data\-id="(.+?)?">`)
- episodeAudioUrl := "https://audio.vgtrk.com/download?id=" + string(episodeAudioRe.FindSubmatch(ep)[1])
+ re := regexp.MustCompile(`data\-type="audio"\s+data\-id="(.+?)?">`)
+
+ matches := re.FindSubmatch(ep)
+ if len(matches) < 2 {
+ return &feeds.Enclosure{}
+ }
+
+ url := "https://audio.vgtrk.com/download?id=" + string(matches[1])
+
return &feeds.Enclosure{
- Url: episodeAudioUrl,
+ Url: url,
Length: "1024",
Type: "audio/mpeg",
}
diff --git a/testdata/TestUpdatingFeed.golden b/testdata/TestUpdatingFeed.golden
index 8cbbf32..20972e9 100644
--- a/testdata/TestUpdatingFeed.golden
+++ b/testdata/TestUpdatingFeed.golden
@@ -12,7 +12,6 @@
<title>Захарий Палиашвили &#34;Абесалом и Этери&#34;</title>
<link>http://www.radiorus.ru/brand/59798/episode/2237240</link>
<description></description>
- <enclosure url="https://audio.vgtrk.com/download?id=1990027" length="1024" type="audio/mpeg"></enclosure>
<guid>http://www.radiorus.ru/brand/59798/episode/2237240</guid>
<pubDate>Wed, 29 Jan 2020 00:25:00 +0300</pubDate>
</item>
diff --git a/testdata/TestVideoFeed.golden b/testdata/TestVideoFeed.golden
index 11d6bd9..ece31fa 100644
--- a/testdata/TestVideoFeed.golden
+++ b/testdata/TestVideoFeed.golden
@@ -12,7 +12,6 @@
<title>Эфир от 04.02.2020 (04:10)</title>
<link>http://www.radiorus.ru/brand/63147/episode/2244130</link>
<description></description>
- <enclosure url="https://audio.vgtrk.com/download?id=1992139" length="1024" type="audio/mpeg"></enclosure>
<guid>http://www.radiorus.ru/brand/63147/episode/2244130</guid>
<pubDate>Tue, 04 Feb 2020 04:10:00 +0300</pubDate>
</item>
@@ -20,7 +19,6 @@
<title>Эфир от 03.02.2020 (23:10)</title>
<link>http://www.radiorus.ru/brand/63147/episode/2244008</link>
<description></description>
- <enclosure url="https://audio.vgtrk.com/download?id=1992117" length="1024" type="audio/mpeg"></enclosure>
<guid>http://www.radiorus.ru/brand/63147/episode/2244008</guid>
<pubDate>Mon, 03 Feb 2020 23:10:00 +0300</pubDate>
</item>