def test_template_date(pasila): fmt = TitleFormatter('${series}-${date}') assert fmt.format(**pasila) == 'Pasila-2018-04-12' fmt = TitleFormatter('${date}: ${series}') assert fmt.format(**pasila) == '2018-04-12: Pasila' fmt = TitleFormatter('${series}-${date}-${timestamp}') assert fmt.format(**pasila) == 'Pasila-2018-04-12-2018-04-12T16:30'
def get_kaltura_id(program_id): """ Dive into the yledl internals and fetch the kaltura player id. This can be used with Chromecast """ from yledl.streamfilters import StreamFilters from yledl.http import HttpClient from yledl.localization import TranslationChooser from yledl.extractors import extractor_factory from yledl.titleformatter import TitleFormatter title_formatter = TitleFormatter() language_chooser = TranslationChooser('fin') httpclient = HttpClient(None) stream_filters = StreamFilters() url = 'https://areena.yle.fi/{}'.format(program_id) extractor = extractor_factory(url, stream_filters, language_chooser, httpclient) pid = extractor.program_id_from_url(url) info = extractor.program_info_for_pid(pid, url, title_formatter, None) return info.media_id.split('-')[-1]
def get_kaltura_id(program_id): """ Dive into the yledl internals and fetch the kaltura player id. This can be used with Chromecast """ # yledl is not available in CI, silence import warnings from yledl.streamfilters import StreamFilters # pylint: disable=import-error from yledl.http import HttpClient # pylint: disable=import-error from yledl.localization import TranslationChooser # pylint: disable=import-error from yledl.extractors import extractor_factory # pylint: disable=import-error from yledl.titleformatter import TitleFormatter # pylint: disable=import-error title_formatter = TitleFormatter() language_chooser = TranslationChooser("fin") httpclient = HttpClient(None) stream_filters = StreamFilters() url = "https://areena.yle.fi/{}".format(program_id) extractor = extractor_factory(url, stream_filters, language_chooser, httpclient) pid = extractor.program_id_from_url(url) info = extractor.program_info_for_pid(pid, url, title_formatter, None) return info.media_id.split("-")[-1]
def test_template_series_duplicated_in_main_title(): data = { 'title': 'Jopet-show: Haikeaa joulua', 'series_title': 'Jopet-show', } fmt = TitleFormatter('${series}') assert fmt.format(**data) == 'Jopet-show' fmt = TitleFormatter('${title}') assert fmt.format(**data) == 'Haikeaa joulua' fmt = TitleFormatter('${series}${title}') assert fmt.format(**data) == 'Jopet-show: Haikeaa joulua'
def test_template_series_equals_main_title(): data = { 'title': 'Rantahotelli', 'series_title': 'Rantahotelli', } fmt = TitleFormatter('${series}') assert fmt.format(**data) == '' fmt = TitleFormatter('${title}') assert fmt.format(**data) == 'Rantahotelli' fmt = TitleFormatter('${series}${title}') assert fmt.format(**data) == 'Rantahotelli'
def test_template_series_equals_main_title(): data = { 'title': 'Rantahotelli', 'series_title': 'Rantahotelli', 'publish_timestamp': datetime(2018, 4, 12, 16, 30, 45, tzinfo=FixedOffset(2)) } fmt = TitleFormatter('${series}') assert fmt.format(**data) == '' fmt = TitleFormatter('${title}') assert fmt.format(**data) == 'Rantahotelli' fmt = TitleFormatter('${series}${title}') assert fmt.format(**data) == 'Rantahotelli'
def test_template_series_duplicated_in_main_title(): data = { 'title': 'Jopet-show: Haikeaa joulua', 'series_title': 'Jopet-show', 'publish_timestamp': datetime(2018, 4, 12, 16, 30, 45, tzinfo=FixedOffset(2)) } fmt = TitleFormatter('${series}') assert fmt.format(**data) == 'Jopet-show' fmt = TitleFormatter('${title}') assert fmt.format(**data) == 'Haikeaa joulua' fmt = TitleFormatter('${series}: ${title}') assert fmt.format(**data) == 'Jopet-show: Haikeaa joulua'
def fetch(url, action, filters, meta_language=None): io = IOContext(destdir='/tmp/', metadata_language=meta_language) httpclient = HttpClient() title_formatter = TitleFormatter() with Capturing() as output: res = execute_action(url, action, io, httpclient, title_formatter, stream_filters = filters) assert res == RD_SUCCESS return output
def fetch(url, action, filters): # Initialize rtmpdump_binary to avoid a file system lookup in tests io = IOContext(destdir='/tmp/', rtmpdump_binary='rtmpdump') httpclient = HttpClient() title_formatter = TitleFormatter() with Capturing() as output: res = download(url, action, io, httpclient, title_formatter, stream_filters=filters, postprocess_command=None) assert res == RD_SUCCESS return output
def test_template_literal_dollar_sign(pasila): fmt = TitleFormatter('${series} 500$$ ABC') assert fmt.format(**pasila) == 'Pasila 500$ ABC' fmt = TitleFormatter('${series} 500$$ $$$$ ABC') assert fmt.format(**pasila) == 'Pasila 500$ $$ ABC'
import pytest from datetime import datetime, date from utils import FixedOffset from yledl.titleformatter import TitleFormatter tf = TitleFormatter() @pytest.fixture def pasila(): return { 'title': 'Vanhempainyhdistys', 'publish_timestamp': datetime(2018, 4, 12, 16, 30, 45, tzinfo=FixedOffset(2)), 'series_title': 'Pasila', 'subheading': 'tekstitys englanniksi', 'program_id': '1-86743', 'season': 1, 'episode': 3, } def test_none_title(): assert tf.format(None) is None
def test_template_incorrectly_balanced_brackets(pasila): fmt = TitleFormatter('${series}: ${title: ${timestamp}}') assert fmt.format(**pasila) == 'Pasila: ${title: 2018-04-12T16:30}'
def test_unclosed_template(pasila): fmt = TitleFormatter('${series}: ${timestamp') assert fmt.format(**pasila) == 'Pasila: ${timestamp' fmt = TitleFormatter('${series}: ${title: ${timestamp}') assert fmt.format(**pasila) == 'Pasila: ${title: 2018-04-12T16:30'
def test_unknown_templates_are_not_substituted(pasila): fmt = TitleFormatter('${series}: ${invalid}: ${timestamp}') assert fmt.format(**pasila) == 'Pasila: ${invalid}: 2018-04-12T16:30'
def test_template_unbalanced_dollar_literals(pasila): fmt = TitleFormatter('${series} $$$ ABC') assert fmt.format(**pasila) == 'Pasila $$ ABC'
def test_template_duplicate_key(pasila): fmt = TitleFormatter('${series}: ${series}') assert fmt.format(**pasila) == 'Pasila: Pasila'
def test_template_literal(pasila): fmt = TitleFormatter('Areena ${series}-${episode}') assert fmt.format(**pasila) == 'Areena Pasila-S01E03' fmt = TitleFormatter('${series}: Areena-${episode}') assert fmt.format(**pasila) == 'Pasila: Areena-S01E03' fmt = TitleFormatter('${series}: ${episode} Areena') assert fmt.format(**pasila) == 'Pasila: S01E03 Areena' fmt = TitleFormatter('Areena: ${series} episode ${episode} Areena') assert fmt.format(**pasila) == 'Areena: Pasila episode S01E03 Areena'
def test_template(pasila): fmt = TitleFormatter('${series}: ${title}: ${episode}-${timestamp}') assert fmt.format(**pasila) == 'Pasila: Vanhempainyhdistys: '\ 'tekstitys englanniksi: S01E03-2018-04-12T16:30' fmt = TitleFormatter('${series}: ${episode}-${timestamp}') assert fmt.format(**pasila) == 'Pasila: S01E03-2018-04-12T16:30' fmt = TitleFormatter('${title}-${timestamp}') assert fmt.format(**pasila) == 'Vanhempainyhdistys: '\ 'tekstitys englanniksi-2018-04-12T16:30' fmt = TitleFormatter('${timestamp}: ${title}') assert fmt.format(**pasila) == '2018-04-12T16:30: '\ 'Vanhempainyhdistys: tekstitys englanniksi' fmt = TitleFormatter('${program_id}: ${series}') assert fmt.format(**pasila) == '1-86743: Pasila' fmt = TitleFormatter('${series}-${program_id}') assert fmt.format(**pasila) == 'Pasila-1-86743'