Пример #1
0
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()
Пример #2
0
def favorites_docu():
    ''' The favorites docu listing '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_favorites_docu_menu_items()
Пример #3
0
def favorites_programs():
    ''' The favorites A-Z listing '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_tvshow_menu_items(use_favorites=True)
Пример #4
0
def favorites_menu():
    ''' The favorites My program menu '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_favorites_menu_items()
Пример #5
0
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)
Пример #6
0
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))
Пример #7
0
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))
Пример #8
0
def featured(feature=None):
    ''' The featured menu and listing '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_featured_menu_items(feature=feature)
Пример #9
0
def recent(page=1):
    ''' The most recent items listing '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_recent(page=page)
Пример #10
0
def offline(page=1):
    ''' The soon offline listing '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_offline(page=page)
Пример #11
0
def livetv():
    ''' The livetv menu '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_livestream_items()
Пример #12
0
def channels(channel=None):
    ''' The channels menu and listing '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_channels_menu_items(channel=channel)
Пример #13
0
def categories(category=None):
    ''' The categories menu and listing '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_category_menu_items(category=category)
Пример #14
0
def favorites_recent(page=1):
    ''' The favorites recent listing '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_recent(page=page, use_favorites=True)
Пример #15
0
def main_menu():
    ''' The VRT NU plugin main menu '''
    from resources.lib import vrtplayer
    vrtplayer.VRTPlayer(kodi).show_main_menu_items()
Пример #16
0
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)