From f1c749597bcf5588618eccbd2fbb7797b42eb713 Mon Sep 17 00:00:00 2001 From: Evgeny Kuznetsov Date: Tue, 28 Jan 2020 15:04:03 +0300 Subject: fix episode addressing for tests --- main.go | 8 +- main_test.go | 10 + testdata/TestServedFeed.golden | 40 +- testdata/brand/57083/episode/2237849 | 1226 ++++++++++++++++++++++++++++++++++ 4 files changed, 1263 insertions(+), 21 deletions(-) create mode 100644 testdata/brand/57083/episode/2237849 diff --git a/main.go b/main.go index f29fae3..749ba1a 100644 --- a/main.go +++ b/main.go @@ -133,12 +133,13 @@ func populateFeed(feed *feeds.Feed, page []byte) (err error) { } episodes := episodeRe.FindAll(page, -1) + urlPrefix := episodeURLPrefix(feed.Link.Href) for _, episode := range episodes { if len(episodeUrlRe.FindAllSubmatch(episode, -1)) > 1 { return errBadEpisode } - episodeUrl := "http://www.radiorus.ru/brand/" + string(episodeUrlRe.FindSubmatch(episode)[1]) + episodeUrl := urlPrefix + string(episodeUrlRe.FindSubmatch(episode)[1]) episodeTitle := string(episodeTitleRe.FindSubmatch(episode)[1]) episodeAudioUrl := "https://audio.vgtrk.com/download?id=" + string(episodeAudioRe.FindSubmatch(episode)[1]) dateBytes := episodeDateRe.FindSubmatch(episode) @@ -224,3 +225,8 @@ func cleanText(b []byte) []byte { } return b } + +// episodeURLPrefix derives common episode URL prefix from programme page URL +func episodeURLPrefix(url string) string { + return strings.Split(url, "/brand/")[0] + "/brand/" +} diff --git a/main_test.go b/main_test.go index 819f9d0..702146f 100644 --- a/main_test.go +++ b/main_test.go @@ -125,3 +125,13 @@ func helperCleanupFile(t *testing.T, name string) { t.Fatal(err) } } + +func TestEpisodeURLPrefix(t *testing.T) { + url := "http://www.radiorus.ru/brand/57083/episodes" + got := episodeURLPrefix(url) + want := "http://www.radiorus.ru/brand/" + + if got != want { + t.Fatal(fmt.Sprintf("got %v, want %v", got, want)) + } +} diff --git a/testdata/TestServedFeed.golden b/testdata/TestServedFeed.golden index a2301fa..f908d5c 100644 --- a/testdata/TestServedFeed.golden +++ b/testdata/TestServedFeed.golden @@ -10,82 +10,82 @@ Новые имена 27 - http://www.radiorus.ru/brand/57083/episode/2237849 + **localhost**/brand/57083/episode/2237849 - http://www.radiorus.ru/brand/57083/episode/2237849 + **localhost**/brand/57083/episode/2237849 Sun, 26 Jan 2020 14:10:00 +0300 The Cure - http://www.radiorus.ru/brand/57083/episode/2237781 + **localhost**/brand/57083/episode/2237781 - http://www.radiorus.ru/brand/57083/episode/2237781 + **localhost**/brand/57083/episode/2237781 Sun, 19 Jan 2020 14:10:00 +0300 Новые песни января - http://www.radiorus.ru/brand/57083/episode/2236152 + **localhost**/brand/57083/episode/2236152 - http://www.radiorus.ru/brand/57083/episode/2236152 + **localhost**/brand/57083/episode/2236152 Sun, 12 Jan 2020 14:10:00 +0300 Новогодние притчи - http://www.radiorus.ru/brand/57083/episode/2234173 + **localhost**/brand/57083/episode/2234173 - http://www.radiorus.ru/brand/57083/episode/2234173 + **localhost**/brand/57083/episode/2234173 Sun, 05 Jan 2020 14:10:00 +0300 С наступающим! - http://www.radiorus.ru/brand/57083/episode/2233216 + **localhost**/brand/57083/episode/2233216 - http://www.radiorus.ru/brand/57083/episode/2233216 + **localhost**/brand/57083/episode/2233216 Sun, 29 Dec 2019 14:10:00 +0300 Рождество - http://www.radiorus.ru/brand/57083/episode/2231513 + **localhost**/brand/57083/episode/2231513 - http://www.radiorus.ru/brand/57083/episode/2231513 + **localhost**/brand/57083/episode/2231513 Sun, 22 Dec 2019 14:10:00 +0300 "То да сё # 6" (Сила музыки) - http://www.radiorus.ru/brand/57083/episode/2229234 + **localhost**/brand/57083/episode/2229234 - http://www.radiorus.ru/brand/57083/episode/2229234 + **localhost**/brand/57083/episode/2229234 Sun, 15 Dec 2019 14:10:00 +0300 Новые песни декабря - http://www.radiorus.ru/brand/57083/episode/2226836 + **localhost**/brand/57083/episode/2226836 - http://www.radiorus.ru/brand/57083/episode/2226836 + **localhost**/brand/57083/episode/2226836 Sun, 08 Dec 2019 14:10:00 +0300 То да сё № 5 - http://www.radiorus.ru/brand/57083/episode/2223937 + **localhost**/brand/57083/episode/2223937 - http://www.radiorus.ru/brand/57083/episode/2223937 + **localhost**/brand/57083/episode/2223937 Sun, 01 Dec 2019 14:10:00 +0300 ELO: "Из ниоткуда" 2019 - http://www.radiorus.ru/brand/57083/episode/2222868 + **localhost**/brand/57083/episode/2222868 - http://www.radiorus.ru/brand/57083/episode/2222868 + **localhost**/brand/57083/episode/2222868 Sun, 24 Nov 2019 14:10:00 +0300 diff --git a/testdata/brand/57083/episode/2237849 b/testdata/brand/57083/episode/2237849 new file mode 100644 index 0000000..7bf8e61 --- /dev/null +++ b/testdata/brand/57083/episode/2237849 @@ -0,0 +1,1226 @@ + + + + + Новые имена 27 / "Аэростат" / Радиостанция «Радио России» + + + + + + + + + + +
+
+ + + + + +
+7 800 222 999 2
+ + +
+
+ +
+
+ + + +
+ +
+ + +
+ Скоро в эфире +
+ +
+
Выбрать рубрику
+
+ +
+
26.01.2020 +
+
+
+ +
+ + +
+
+
26 Января 2020
+

Новые имена 27

+

Как писал в своё время Данте, смысл творчества заключается в том, чтобы "провести человека из ада в рай". А раз так, то, по-моему, чем больше мы будем знать проводников, тем лучше. И, конечно, хочется вам играть самое новое сегодняшнее, но вдруг встретишь какую-то старорежимную песню и думаешь – вот это да! Какое совершенство! И нужно её поставить, потому что без истории мы никто.

+
+
+
+
+
+
+
+
+ Ансамбль "Pied Pipers" | public domain +
+

Ансамбль "Pied Pipers" | public domain + Page 17 of February 10, 1945 Billboard magazine | commons.wikimedia.org +

+
+
+
+
+
+
+ + +

Программу "Аэростат" ведёт Борис Гребенщиков.

+ +

+ +

Сегодняшнее хорошо только потому, что мы знаем то, что было сделано когда-то раньше. Мы буквально стоим на плечах великанов.

+ +

+ +

• Американский вокальный коллектив "Pied Pipers". Начали в 30-е годы (с ними даже пел юный Фрэнк Синатра) и поют до сих пор (ну, понятно, люди меняются, а стиль остаётся), и создают они, на мой взгляд, совершенно уникальную атмосферу никогда в мире не существовавшего покоя и довольства.

+ +

+ +

• А вот вообще сокровище из 1963 года – "Поющая монахиня" (The Singing Nun) с песней "Доминик" ("Dominique").

+ +

"Поющая монахиня", она же Sœur Sourire ("Сестра Улыбка"), а в миру Жан-Поль Мари Декерc (Jeanne-Paule Marie Deckers) – монахиня доминиканского ордена. В монастыре она частенько пела свои песни, и так они всем нравились, что её руководители-святые отцы поощрили её записать альбом, который продавался бы в монастыре.

+ +

Так и сделали – и песня "Доминик" стала не просто песней из альбома, которым торгуют в монастырской лавке вместе с чётками и ладаном, а международным хитом. И не просто хитом, а единственной песней из Бельгии, ставшей в Америке "номером 1".

+ +

+ +
+
+ +
+
Джез Коулман (Jaz Coleman) | CC BY 2.0
+ + +
+
+ +

• Никто этого не знал, но певец и главный движитель суровых и бескомпромиссных панк-оккультистов Killing Joke Джез Коулман (Jaz Coleman) пишет на стороне симфоническую музыку. И, по его словам, её покупают так же хорошо, как и музыку с его основной работы. Подробнее я расскажу вам про него попозже.

+ +

+ +
+
+ +
+
Рой Экафф (Roy Acuff) | public domain (вy Walden S. Fabry/Ross Photos)
+
+
+ +

• Жил-был джентльмен по имени Рой Экафф (Roy Acuff). В первой половине XX века его называли "королём музыки "кантри".

+ +

Он начал петь в 1930-м, когда ему не удалась карьера бейсболиста. Поскольку петь приходилось без микрофона, то Рой развил сильный голос, что впоследствии сослужило ему хорошую службу. Вскоре он собрал группу и переехал в столицу "кантри"-музыки – город Нэшвилл и начал становиться популярным артистом. И стал так любим народом, что гений "кантри" Хэнк Уильямс (Hank Williams) сказал про него однажды: "Рой Экафф – величайший певец, который когда-либо пел "кантри". Когда речь идёт о том, чтобы собрать на Юге зал, Рой – на первом месте, на втором – господь Бог".

+ +

В 1950 году Рой записал одну из известнейших песен музыки "кантри" – "Теннесси вальс" ("Tennessee Waltz").

+ +

+ +
+
+ +
+
Паджаро Санрайз (Pajaro Sunrise) | foto de Carmen GB
+ + +
+
+ +

• А в завершение передачи поставлю вам замечательного человека Паджаро Санрайз (Pajaro Sunrise), он же Юрий Мендес Барриос (Yuri Méndez Barrios), – поп-фолк-электроника из Испании.

+ +

Мне страшно нравится идея создавать настоящую – народную, радостную и простую – музыку на гитарах и лэптопах, когда все звуки вселенной находятся от тебя на расстоянии одного касания клавиши.

+ +

Раньше это было будущее, теперь это – сегодня.

+ +

"Аэростат № 767 (26.01.2020) – Новые имена 27

+ +

+ +

+ +

+ + +
+ + +
+
+
+ + +
+ +
+ + +
+
+
+
+
+
+ Бен Элтон "Время и снова время". Серия 10-я +
+

Бен Элтон "Время и снова время". Серия 10-я

+

Начало в 03:10 + "Литературный сериал" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Музыкальная программа +
+

Музыкальная программа

+

Начало в 03:35 + Музыкальная программа +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 04:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Джазовое настроение". Эфир от 28.01.2020 (04:10) +
+

"Джазовое настроение". Эфир от 28.01.2020 (04:10)

+

Начало в 04:10 + "Джазовое настроение" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 05:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Джонатан Свифт  "Путешествия Гулливера". Часть 7-я +
+

Джонатан Свифт  "Путешествия Гулливера". Часть 7-я

+

Начало в 05:10 + "Литературный сериал" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Раскрытые книги и старые граммофонные пластинки +
+

Раскрытые книги и старые граммофонные пластинки

+

Начало в 05:35 + "Незабытые кумиры. Сюрпризы старого патефона" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 06:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Этот безумный мир" +
+

"Этот безумный мир"

+

Начало в 06:10 + "Этот безумный мир" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Можно ли заставить дачников платить за недостроенные дома +
+

Можно ли заставить дачников платить за недостроенные дома

+

Начало в 06:25 + "Обрати внимание" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Принять ванну правильно +
+

Принять ванну правильно

+

Начало в 06:30 + "Обрати внимание" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Эфир от 28.01.2020 (06:35)

+

Начало в 06:35 + "Это интересно" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Эфир от 28.01.2020 (06:50) +
+

Эфир от 28.01.2020 (06:50)

+

Начало в 06:50 + "С русского на русский" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 07:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Утренние новости +
+

Утренние новости

+

Начало в 07:10 + "Сигналы точного времени" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Картошка да каша — еда наша +
+

Картошка да каша — еда наша

+

Начало в 07:30 + "Сигналы точного времени" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Остаться без прав из-за корвалола +
+

Остаться без прав из-за корвалола

+

Начало в 07:45 + "Сигналы точного времени" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 08:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Опубликован народный рейтинг вузов +
+

Опубликован народный рейтинг вузов

+

Начало в 08:10 + "Сигналы точного времени" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Детки сопят в кроватках, гаджеты – на зарядках +
+

Детки сопят в кроватках, гаджеты – на зарядках

+

Начало в 08:35 + "Сигналы точного времени" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 09:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Правда и мифы о вирусах +
+

Правда и мифы о вирусах

+

Начало в 09:10 + "Сигналы точного времени" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 10:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Музыкальная пауза": Марк Гройзбург +
+

"Музыкальная пауза": Марк Гройзбург

+

Начало в 10:10 + "Сигналы точного времени" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 11:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Хит-парад с Артемом Варгафтиком" +
+

"Хит-парад с Артемом Варгафтиком"

+

Начало в 11:10 + "Хит-парад с Артемом Варгафтиком" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Юлиан Семенов "Майор Вихрь". Серия 13-я +
+

Юлиан Семенов "Майор Вихрь". Серия 13-я

+

Начало в 11:30 + "Литературный сериал" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Эфир от 28.01.2020 (11:45) +
+

Эфир от 28.01.2020 (11:45)

+

Начало в 11:45 + "Мир российской усадьбы" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 12:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ События, факты, комментарии +
+

События, факты, комментарии

+

Начало в 12:10 + "Актуально" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Правительство РФ поддержало  блокировку пользователей электронной почты +
+

Правительство РФ поддержало блокировку пользователей электронной почты

+

Начало в 12:11 + "Актуально" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ ЦБ назвал главные причины низких инвестиций в промышленность +
+

ЦБ назвал главные причины низких инвестиций в промышленность

+

Начало в 12:17 + "Актуально" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ В ПАСЕ в очередной раз оспорили полномочия российской делегации +
+

В ПАСЕ в очередной раз оспорили полномочия российской делегации

+

Начало в 12:25 + "Актуально" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Актуально" о культуре с Дарьей Седовой +
+

"Актуально" о культуре с Дарьей Седовой

+

Начало в 12:32 + "Актуально" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Новости спорта" +
+

"Новости спорта"

+

Начало в 12:32 + "Актуально" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 13:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ Россия будущего +
+

Россия будущего

+

Начало в 13:10 + "Российский радиоуниверситет" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 14:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Lё Тартюф.Комедия". Премьера в Театре на Таганке +
+

"Lё Тартюф.Комедия". Премьера в Театре на Таганке

+

Начало в 14:10 + "Действующие лица" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Вести" +
+

"Вести"

+

Начало в 15:00 + "Вести" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+ "Будьте здоровы" +
+

"Будьте здоровы"

+

Начало в 15:10 + "Будьте здоровы" +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
Прямой эфир
+
+
+
+
Радио России
+
Радио России FM
+
+
+ +
+
+

Программа

+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3