Example #1
0
def programs(program=None, season=None):
    ''' The Programs / Seasons / Episodes listing '''
    from vrtplayer import VRTPlayer
    if program:
        VRTPlayer().show_episodes_menu(program=program, season=season)
    else:
        VRTPlayer().show_tvshow_menu()
Example #2
0
def favorites_docu():
    """The favorites docu listing"""
    from vrtplayer import VRTPlayer
    VRTPlayer().show_favorites_docu_menu()
Example #3
0
def favorites_programs():
    ''' The favorites 'My programs' listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_tvshow_menu(use_favorites=True)
Example #4
0
def play_by_air_date(channel, start_date, end_date=None):
    ''' The API interface to play an episode of a program given the channel and the air date in iso format (2019-07-06T19:35:00) '''
    from vrtplayer import VRTPlayer
    VRTPlayer().play_episode_by_air_date(channel, start_date, end_date)
Example #5
0
def play_latest(program):
    ''' The API interface to play the latest episode of a program '''
    from vrtplayer import VRTPlayer
    VRTPlayer().play_latest_episode(program=program)
Example #6
0
def play_id(video_id, publication_id=None):
    ''' The API interface to play a video by video_id and/or publication_id '''
    from vrtplayer import VRTPlayer
    VRTPlayer().play(dict(video_id=video_id, publication_id=publication_id))
Example #7
0
def main_menu():
    ''' The VRT NU plugin main menu '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_main_menu()
Example #8
0
def recent(page=1):
    ''' The most recent items listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_recent_menu(page=page)
Example #9
0
def play_whatson_id(whatson_id):
    """The API interface to play a video by using a whatson_id"""
    from vrtplayer import VRTPlayer
    VRTPlayer().play_episode_by_whatson_id(whatson_id=whatson_id)
Example #10
0
def play_air_date(channel, start_date, end_date=None):
    """The API interface to play an episode of a program given the channel, start (and end) timestamp(s) in ISO 8601 format (e.g. 2020-06-15T10:35:00)"""
    from vrtplayer import VRTPlayer
    VRTPlayer().play_episode_by_air_date(channel, start_date, end_date)
Example #11
0
def play_upnext(video_id):
    """The API interface to play the next episode of a program"""
    from vrtplayer import VRTPlayer
    VRTPlayer().play_upnext(video_id=video_id)
Example #12
0
def livetv():
    """The livetv menu"""
    from vrtplayer import VRTPlayer
    VRTPlayer().show_livetv_menu()
Example #13
0
def main_menu():
    """The VRT NU plugin main menu"""
    from vrtplayer import VRTPlayer
    VRTPlayer().show_main_menu()
Example #14
0
def favorites_music():
    """The favorites music listing"""
    from vrtplayer import VRTPlayer
    VRTPlayer().show_favorites_music_menu()
Example #15
0
def channels(channel=None):
    ''' The channels menu and listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_channels_menu(channel=channel)
Example #16
0
def livetv():
    ''' The livetv menu '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_livetv_menu()
Example #17
0
def favorites_menu():
    """The My favorites menu"""
    from vrtplayer import VRTPlayer
    VRTPlayer().show_favorites_menu()
Example #18
0
def offline(page=1):
    ''' The soon offline listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_offline_menu(page=page)
Example #19
0
def favorites_recent(page=1):
    ''' The favorites recent listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_recent_menu(page=page, use_favorites=True)
Example #20
0
def featured(feature=None):
    ''' The featured menu and listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_featured_menu(feature=feature)
Example #21
0
def favorites_offline(page=1):
    ''' The favorites offline listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_offline_menu(page=page, use_favorites=True)
Example #22
0
def play_url(video_url):
    ''' The API interface to play a video by using a URL '''
    from vrtplayer import VRTPlayer
    VRTPlayer().play(dict(video_url=video_url))
Example #23
0
def resumepoints_continue():
    ''' The resumepoints continue listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_continue_menu(page=1)
Example #24
0
def play_whatson(whatson_id):
    ''' The API interface to play a video by whatson_id '''
    from vrtplayer import VRTPlayer
    VRTPlayer().play_whatson(whatson_id=whatson_id)
Example #25
0
def resumepoints_watchlater():
    ''' The resumepoints watchlater listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_watchlater_menu(page=1)
Example #26
0
def favorites_menu():
    ''' The My favorites menu '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_favorites_menu()
Example #27
0
def categories(category=None):
    ''' The categories menu and listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_category_menu(category=category)
Example #28
0
def favorites_docu():
    ''' The favorites docu listing '''
    from vrtplayer import VRTPlayer
    VRTPlayer().show_favorites_docu_menu()
Example #29
0
class TestVRTPlayer(unittest.TestCase):

    _favorites = Favorites()
    _resumepoints = ResumePoints()
    _apihelper = ApiHelper(_favorites, _resumepoints)
    _vrtplayer = VRTPlayer()

    def test_show_videos_single_episode_shows_videos(self):
        program = 'marathonradio'
        episode_items, sort, ascending, content = self._apihelper.list_episodes(
            program=program)
        self.assertTrue(episode_items, msg=program)
        self.assertEqual(sort, 'dateadded')
        self.assertFalse(ascending)
        self.assertEqual(content, 'episodes')

        self._vrtplayer.show_episodes_menu(program)

    def test_show_videos_single_season_shows_videos(self):
        program = 'het-weer'
        episode_items, sort, ascending, content = self._apihelper.list_episodes(
            program=program)
        self.assertTrue(episode_items, msg=program)
        self.assertEqual(sort, 'dateadded')
        self.assertFalse(ascending)
        self.assertEqual(content, 'episodes')

        self._vrtplayer.show_episodes_menu(program)

    def test_show_videos_multiple_seasons_shows_videos(self):
        program = 'pano'
        episode_items, sort, ascending, content = self._apihelper.list_episodes(
            program=program)
        self.assertTrue(episode_items)
        self.assertEqual(sort, 'label')
        self.assertFalse(ascending)
        self.assertEqual(content, 'seasons')

        self._vrtplayer.show_episodes_menu(program)

    def test_show_videos_specific_seasons_shows_videos(self):
        program = 'thuis'
        episode_items, sort, ascending, content = self._apihelper.list_episodes(
            program=program)
        self.assertTrue(episode_items, msg=program)
        self.assertEqual(sort, 'label')
        self.assertFalse(ascending)
        self.assertEqual(content, 'seasons')

        self._vrtplayer.show_episodes_menu(program)

    def test_categories_scraping(self):
        ''' Test to ensure our hardcoded categories conforms to scraped categories '''
        # Remove thumbnails from scraped categories first
        categories_scraped = [
            dict(id=c['id'], name=c['name'])
            for c in self._apihelper.get_categories()
        ]
        categories_stored = [
            dict(id=c['id'], name=c['name']) for c in CATEGORIES
        ]
        self.assertEqual(categories_scraped, categories_stored)

    def test_random_tvshow_episodes(self):
        ''' Rest episode from a random tvshow in a random category '''
        categories = self._apihelper.get_categories()
        self.assertTrue(categories)

        category = random.choice(categories)
        tvshow_items = self._apihelper.list_tvshows(category['id'])
        self.assertTrue(tvshow_items, msg=category['id'])

        tvshow = random.choice(tvshow_items)
        if tvshow.path.startswith('plugin://plugin.video.vrt.nu/programs/'):
            # When random program has episodes
            episode_items, sort, ascending, content = self._apihelper.list_episodes(
                tvshow.path.split('/')[4].replace('.relevant', ''))
            self.assertTrue(episode_items, msg=tvshow.path.split('/')[4])
            self.assertTrue(
                sort in ['dateadded', 'episode', 'label', 'unsorted'])
            self.assertTrue(ascending is True or ascending is False)
            self.assertTrue(
                content in ['episodes', 'seasons'],
                "Content for '%s' is '%s'" % (tvshow.title, content))
        elif tvshow.path.startswith('plugin://plugin.video.vrt.nu/play/id/'):
            # When random program is playable item
            pass
        else:
            self.fail(
                'We did not expect this, either we find episodes or it is a playable item'
            )

    def test_categories(self):
        ''' Test to ensure our hardcoded categories conforms to scraped categories '''
        category_items = self._apihelper.list_categories()
        self.assertEqual(len(category_items), 17)

    def test_featured(self):
        ''' Test to ensure our hardcoded categories conforms to scraped categories '''
        featured_items = self._apihelper.list_featured()
        self.assertEqual(len(featured_items), 9)

    def test_play_unknown_program(self):
        ''' Test playing latest episode of an unknown program '''
        self._vrtplayer.play_latest_episode(program='foobar')

    def test_play_unknown_airdate(self):
        ''' Test playing unknown airdate '''
        self._vrtplayer.play_episode_by_air_date(
            channel='een',
            start_date='2100-01-01T23:59:58',
            end_date='2100-01-01T23:59:59')
        self._vrtplayer.play_episode_by_air_date(
            channel='foo',
            start_date='2100-01-01T23:59:58',
            end_date='2100-01-01T23:59:59')

    def test_play_unknown_whatson_id(self):
        ''' Test playing unknown whatson id '''
        self._vrtplayer.play_whatson(whatson_id='1234567890')