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()
def favorites_docu(): """The favorites docu listing""" from vrtplayer import VRTPlayer VRTPlayer().show_favorites_docu_menu()
def favorites_programs(): ''' The favorites 'My programs' listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_tvshow_menu(use_favorites=True)
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)
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)
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))
def main_menu(): ''' The VRT NU plugin main menu ''' from vrtplayer import VRTPlayer VRTPlayer().show_main_menu()
def recent(page=1): ''' The most recent items listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_recent_menu(page=page)
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)
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)
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)
def livetv(): """The livetv menu""" from vrtplayer import VRTPlayer VRTPlayer().show_livetv_menu()
def main_menu(): """The VRT NU plugin main menu""" from vrtplayer import VRTPlayer VRTPlayer().show_main_menu()
def favorites_music(): """The favorites music listing""" from vrtplayer import VRTPlayer VRTPlayer().show_favorites_music_menu()
def channels(channel=None): ''' The channels menu and listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_channels_menu(channel=channel)
def livetv(): ''' The livetv menu ''' from vrtplayer import VRTPlayer VRTPlayer().show_livetv_menu()
def favorites_menu(): """The My favorites menu""" from vrtplayer import VRTPlayer VRTPlayer().show_favorites_menu()
def offline(page=1): ''' The soon offline listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_offline_menu(page=page)
def favorites_recent(page=1): ''' The favorites recent listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_recent_menu(page=page, use_favorites=True)
def featured(feature=None): ''' The featured menu and listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_featured_menu(feature=feature)
def favorites_offline(page=1): ''' The favorites offline listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_offline_menu(page=page, use_favorites=True)
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))
def resumepoints_continue(): ''' The resumepoints continue listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_continue_menu(page=1)
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)
def resumepoints_watchlater(): ''' The resumepoints watchlater listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_watchlater_menu(page=1)
def favorites_menu(): ''' The My favorites menu ''' from vrtplayer import VRTPlayer VRTPlayer().show_favorites_menu()
def categories(category=None): ''' The categories menu and listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_category_menu(category=category)
def favorites_docu(): ''' The favorites docu listing ''' from vrtplayer import VRTPlayer VRTPlayer().show_favorites_docu_menu()
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')