Пример #1
0
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'
Пример #2
0
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]
Пример #3
0
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]
Пример #4
0
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'
Пример #5
0
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'
Пример #6
0
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'
Пример #7
0
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'
Пример #8
0
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
Пример #9
0
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
Пример #10
0
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'
Пример #11
0
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
Пример #12
0
def test_template_incorrectly_balanced_brackets(pasila):
    fmt = TitleFormatter('${series}: ${title: ${timestamp}}')
    assert fmt.format(**pasila) == 'Pasila: ${title: 2018-04-12T16:30}'
Пример #13
0
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'
Пример #14
0
def test_unknown_templates_are_not_substituted(pasila):
    fmt = TitleFormatter('${series}: ${invalid}: ${timestamp}')
    assert fmt.format(**pasila) == 'Pasila: ${invalid}: 2018-04-12T16:30'
Пример #15
0
def test_template_unbalanced_dollar_literals(pasila):
    fmt = TitleFormatter('${series} $$$ ABC')
    assert fmt.format(**pasila) == 'Pasila $$ ABC'
Пример #16
0
def test_template_duplicate_key(pasila):
    fmt = TitleFormatter('${series}: ${series}')
    assert fmt.format(**pasila) == 'Pasila: Pasila'
Пример #17
0
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'
Пример #18
0
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'