def programs(program=None, season=None): ''' The programs A-Z / seasons / episode listing ''' from resources.lib import vrtplayer if program: vrtplayer.VRTPlayer(kodi).show_episodes(program=program, season=season) else: vrtplayer.VRTPlayer(kodi).show_tvshow_menu_items()
def favorites_docu(): ''' The favorites docu listing ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_favorites_docu_menu_items()
def favorites_programs(): ''' The favorites A-Z listing ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_tvshow_menu_items(use_favorites=True)
def favorites_menu(): ''' The favorites My program menu ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_favorites_menu_items()
def play_latest(program): ''' The API interface to play the latest episode of a program ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).play_latest_episode(program=program)
def play_url(video_url): ''' The API interface to play a video by using a URL ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).play(dict(video_url=video_url))
def play_id(video_id, publication_id=None): ''' The API interface to play a video by video_id and/or publication_id ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).play( dict(video_id=video_id, publication_id=publication_id))
def featured(feature=None): ''' The featured menu and listing ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_featured_menu_items(feature=feature)
def recent(page=1): ''' The most recent items listing ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_recent(page=page)
def offline(page=1): ''' The soon offline listing ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_offline(page=page)
def livetv(): ''' The livetv menu ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_livestream_items()
def channels(channel=None): ''' The channels menu and listing ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_channels_menu_items(channel=channel)
def categories(category=None): ''' The categories menu and listing ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_category_menu_items(category=category)
def favorites_recent(page=1): ''' The favorites recent listing ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_recent(page=page, use_favorites=True)
def main_menu(): ''' The VRT NU plugin main menu ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_main_menu_items()
def favorites_offline(page=1): ''' The favorites offline listing ''' from resources.lib import vrtplayer vrtplayer.VRTPlayer(kodi).show_offline(page=page, use_favorites=True)
class TestVRTPlayer(unittest.TestCase): _favorites = favorites.Favorites(addon.kodi) _apihelper = vrtapihelper.VRTApiHelper(addon.kodi, _favorites) _vrtplayer = vrtplayer.VRTPlayer(addon.kodi) def test_show_videos_single_episode_shows_videos(self): program = 'marathonradio' episode_items, sort, ascending, content = self._apihelper.get_episode_items(program=program) self.assertTrue(episode_items, msg=program) self.assertEqual(sort, 'dateadded') self.assertFalse(ascending) self.assertEqual(content, 'episodes') self._vrtplayer.show_episodes(program) # self.assertTrue(self._kodi.show_listing.called) def test_show_videos_single_season_shows_videos(self): program = 'het-weer' episode_items, sort, ascending, content = self._apihelper.get_episode_items(program=program) self.assertTrue(episode_items, msg=program) self.assertEqual(sort, 'dateadded') self.assertFalse(ascending) self.assertEqual(content, 'episodes') self._vrtplayer.show_episodes(program) # self.assertTrue(self._kodi.show_listing.called) def test_show_videos_multiple_seasons_shows_videos(self): program = 'pano' episode_items, sort, ascending, content = self._apihelper.get_episode_items(program=program) self.assertTrue(episode_items) self.assertEqual(sort, 'label') self.assertFalse(ascending) self.assertEqual(content, 'seasons') self._vrtplayer.show_episodes(program) # self.assertTrue(self._kodi.show_listing.called) def test_show_videos_specific_seasons_shows_videos(self): program = 'thuis' episode_items, sort, ascending, content = self._apihelper.get_episode_items(program=program) self.assertTrue(episode_items, msg=program) self.assertEqual(sort, 'label') self.assertFalse(ascending) self.assertEqual(content, 'seasons') self._vrtplayer.show_episodes(program) # self.assertTrue(self._kodi.show_listing.called) 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.get_tvshow_items(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.get_episode_items(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.get_category_items() self.assertEqual(len(category_items), 17) def test_featured(self): ''' Test to ensure our hardcoded categories conforms to scraped categories ''' featured_items = self._apihelper.get_featured_items() self.assertEqual(len(featured_items), 7)