Exemplo n.º 1
0
    def _do_formats(self, context, json_formats):
        result = []
        formats = json_formats.get("items", [])

        # show only free videos if not logged in or or the setting is enabled
        show_only_free_videos = not self.is_logged_in() and context.get_settings().get_bool(
            "nowtv.videos.only_free", False
        )

        for format_data in formats:
            if show_only_free_videos and not format_data["free"]:
                continue

            format_title = format_data["title"]
            params = {}
            if format_data.get("seoUrl", ""):
                params["seoUrl"] = format_data["seoUrl"]
                pass
            format_item = DirectoryItem(
                format_title,
                # /rtl/format/2/
                context.create_uri([format_data["station"], "format", str(format_data["id"])], params),
            )
            format_item.set_image(format_data["images"]["thumb"])
            format_item.set_fanart(format_data["images"]["fanart"])
            result.append(format_item)

            if self.is_logged_in():
                if context.get_path() == "/nowtv/favorites/list/":
                    context_menu = [
                        (
                            context.localize(self._local_map["nowtv.remove_from_favs"]),
                            "RunPlugin(%s)"
                            % context.create_uri(["nowtv", "favorites", "delete"], {"format_id": format_data["id"]}),
                        )
                    ]
                    pass
                else:
                    context_menu = [
                        (
                            context.localize(self._local_map["nowtv.add_to_favs"]),
                            "RunPlugin(%s)"
                            % context.create_uri(["nowtv", "favorites", "add"], {"format_id": format_data["id"]}),
                        )
                    ]
                    pass
            else:
                context_menu = [
                    (
                        context.localize(self._local_map["nowtv.add_to_favs"]),
                        "RunPlugin(%s)"
                        % context.create_uri(
                            [kodion.constants.paths.FAVORITES, "add"], {"item": kodion.items.to_jsons(format_item)}
                        ),
                    )
                ]
                pass
            format_item.set_context_menu(context_menu)
            pass
        return result
    def on_root(self, context, re_match):
        result = []

        # favorites
        if len(context.get_favorite_list().list()) > 0:
            fav_item = kodion.items.FavoritesItem(context, fanart=self.get_fanart(context))
            fav_item.set_name('[B]%s[/B]' % fav_item.get_name())
            result.append(fav_item)
            pass

        # watch later
        if len(context.get_watch_later_list().list()) > 0:
            watch_later_item = kodion.items.WatchLaterItem(context, fanart=self.get_fanart(context))
            result.append(watch_later_item)
            pass

        # list channels
        for channel_id in self._channel_ids:
            channel_config = Client.CHANNELS[channel_id]
            channel_id = channel_config['id']
            channel_title = channel_config['title']
            channel_item = DirectoryItem(channel_title, context.create_uri([channel_id, 'formats']))
            channel_item.set_fanart(context.create_resource_path('media', channel_id, 'background.jpg'))
            channel_item.set_image(context.create_resource_path('media', channel_id, 'logo.png'))
            result.append(channel_item)
            pass

        # search
        search_item = kodion.items.SearchItem(context, image=context.create_resource_path('media', 'search.png'),
                                              fanart=self.get_fanart(context))
        result.append(search_item)

        return result
Exemplo n.º 3
0
    def on_channel_format(self, context, re_match):
        channel_id = re_match.group('channel_id')
        format_id = re_match.group('format_id')
        channel_config = Client.CHANNELS[channel_id]
        client = self.get_client(context)

        # try to process tabs
        seo_url = context.get_param('seoUrl', '')
        if not seo_url:
            raise KodionException('seoUrl missing')

        format_tabs = client.get_format_tabs(channel_config, seo_url)

        # only on season tab -> show the content directly
        if len(format_tabs) == 1 and format_tabs[0]['type'] == 'tab':
            format_tab = format_tabs[0]
            return self._on_channel_format_list(context, channel_config,
                                                format_tab['id'])

        # show the tabs/sections
        tabs = []
        for format_tab in format_tabs:
            if format_tab['type'] == 'tab':
                tab_item = DirectoryItem(
                    format_tab['title'],
                    # /[CHANNEL_ID]/format/[FORMAT_ID]/list/[FORMAT_LIST_ID]/
                    context.create_uri([
                        channel_id, 'format', format_id, 'list',
                        str(format_tab['id'])
                    ]))
                tab_item.set_image(format_tab['images']['thumb'])
                tab_item.set_fanart(format_tab['images']['fanart'])
                tabs.append(tab_item)
                pass
            elif format_tab['type'] == 'date-span':
                tab_title = format_tab['title']
                image = format_tab['images']['thumb']
                fanart = format_tab['images']['fanart']
                tab_item = DirectoryItem(
                    tab_title,
                    # /[CHANNEL_ID]/format/[FORMAT_ID]/year/[YEAR]/
                    context.create_uri(
                        [channel_id, 'format', format_id, 'year', tab_title], {
                            'start': format_tab['start'],
                            'end': format_tab['end'],
                            'image': image,
                            'fanart': fanart
                        }))
                tab_item.set_image(image)
                tab_item.set_fanart(fanart)
                tabs.append(tab_item)
                pass
            else:
                raise KodionException('Unknown type "%s" for tab' %
                                      format_tab['type'])
            pass

        return tabs
Exemplo n.º 4
0
    def on_root(self, context, re_match):
        result = []

        client = self.get_client(context)
        if self.is_logged_in():
            # online favorites
            fav_item = DirectoryItem('[B]%s[/B]' % context.localize(kodion.constants.localize.FAVORITES),
                                     context.create_uri(['nowtv', 'favorites', 'list']),
                                     image=context.create_resource_path('media/favorites.png'),
                                     fanart=self.get_fanart(context))
            result.append(fav_item)

            # online watch later
            wl_item = DirectoryItem('[B]%s[/B]' % context.localize(kodion.constants.localize.WATCH_LATER),
                                    context.create_uri(['nowtv', 'watch_later', 'list']),
                                    image=context.create_resource_path('media/watch_later.png'),
                                    fanart=self.get_fanart(context))
            result.append(wl_item)
            pass
        else:
            # offline favorites
            if len(context.get_favorite_list().list()) > 0:
                fav_item = kodion.items.FavoritesItem(context, fanart=self.get_fanart(context))
                fav_item.set_name('[B]%s[/B]' % fav_item.get_name())
                result.append(fav_item)
                pass

            # offline watch later
            if len(context.get_watch_later_list().list()) > 0:
                wl_item = kodion.items.WatchLaterItem(context, fanart=self.get_fanart(context))
                wl_item.set_name('[B]%s[/B]' % wl_item.get_name())
                result.append(wl_item)
                pass
            pass

        # watch later
        if len(context.get_watch_later_list().list()) > 0:
            watch_later_item = kodion.items.WatchLaterItem(context, fanart=self.get_fanart(context))
            result.append(watch_later_item)
            pass

        # list channels
        for channel_id in self._channel_ids:
            channel_config = Client.CHANNELS[channel_id]
            channel_id = channel_config['id']
            channel_title = channel_config['title']
            channel_item = DirectoryItem(channel_title, context.create_uri([channel_id, 'formats']))
            channel_item.set_fanart(context.create_resource_path('media', channel_id, 'background.jpg'))
            channel_item.set_image(context.create_resource_path('media', channel_id, 'logo.png'))
            result.append(channel_item)
            pass

        # search
        search_item = kodion.items.SearchItem(context, image=context.create_resource_path('media', 'search.png'),
                                              fanart=self.get_fanart(context))
        result.append(search_item)

        return result
Exemplo n.º 5
0
    def on_root(self, context, re_match):
        result = []

        client = self.get_client(context)
        if self.is_logged_in():
            # online favorites
            fav_item = DirectoryItem('[B]%s[/B]' % context.localize(kodion.constants.localize.FAVORITES),
                                     context.create_uri(['nowtv', 'favorites', 'list']),
                                     image=context.create_resource_path('media/favorites.png'),
                                     fanart=self.get_fanart(context))
            result.append(fav_item)

            # online watch later
            wl_item = DirectoryItem('[B]%s[/B]' % context.localize(kodion.constants.localize.WATCH_LATER),
                                    context.create_uri(['nowtv', 'watch_later', 'list']),
                                    image=context.create_resource_path('media/watch_later.png'),
                                    fanart=self.get_fanart(context))
            result.append(wl_item)
            pass
        else:
            # offline favorites
            if len(context.get_favorite_list().list()) > 0:
                fav_item = kodion.items.FavoritesItem(context, fanart=self.get_fanart(context))
                fav_item.set_name('[B]%s[/B]' % fav_item.get_name())
                result.append(fav_item)
                pass

            # offline watch later
            if len(context.get_watch_later_list().list()) > 0:
                wl_item = kodion.items.WatchLaterItem(context, fanart=self.get_fanart(context))
                wl_item.set_name('[B]%s[/B]' % wl_item.get_name())
                result.append(wl_item)
                pass
            pass

        # watch later
        if len(context.get_watch_later_list().list()) > 0:
            watch_later_item = kodion.items.WatchLaterItem(context, fanart=self.get_fanart(context))
            result.append(watch_later_item)
            pass

        # list channels
        for channel_id in self._channel_ids:
            channel_config = Client.CHANNELS[channel_id]
            channel_id = channel_config['id']
            channel_title = channel_config['title']
            channel_item = DirectoryItem(channel_title, context.create_uri([channel_id, 'formats']))
            channel_item.set_fanart(context.create_resource_path('media', channel_id, 'background.jpg'))
            channel_item.set_image(context.create_resource_path('media', channel_id, 'logo.png'))
            result.append(channel_item)
            pass

        # search
        search_item = kodion.items.SearchItem(context, image=context.create_resource_path('media', 'search.png'),
                                              fanart=self.get_fanart(context))
        result.append(search_item)

        return result
Exemplo n.º 6
0
    def _do_formats(self, context, json_formats):
        result = []
        formats = json_formats.get('items', [])

        # show only free videos if not logged in or or the setting is enabled
        show_only_free_videos = not self.is_logged_in(
        ) and context.get_settings().get_bool('nowtv.videos.only_free', False)

        for format_data in formats:
            if show_only_free_videos and not format_data['free']:
                continue

            format_title = format_data['title']
            params = {}
            if format_data.get('seoUrl', ''):
                params['seoUrl'] = format_data['seoUrl']
                pass
            format_item = DirectoryItem(
                format_title,
                # /rtl/format/2/
                context.create_uri(
                    [format_data['station'], 'format',
                     str(format_data['id'])], params))
            format_item.set_image(format_data['images']['thumb'])
            format_item.set_fanart(format_data['images']['fanart'])
            result.append(format_item)

            if self.is_logged_in():
                if context.get_path() == '/nowtv/favorites/list/':
                    context_menu = [
                        (context.localize(
                            self._local_map['nowtv.remove_from_favs']),
                         'RunPlugin(%s)' %
                         context.create_uri(['nowtv', 'favorites', 'delete'],
                                            {'format_id': format_data['id']}))
                    ]
                    pass
                else:
                    context_menu = [
                        (context.localize(
                            self._local_map['nowtv.add_to_favs']),
                         'RunPlugin(%s)' %
                         context.create_uri(['nowtv', 'favorites', 'add'],
                                            {'format_id': format_data['id']}))
                    ]
                    pass
            else:
                context_menu = [
                    (context.localize(self._local_map['nowtv.add_to_favs']),
                     'RunPlugin(%s)' % context.create_uri(
                         [kodion.constants.paths.FAVORITES, 'add'],
                         {'item': kodion.items.to_jsons(format_item)}))
                ]
                pass
            format_item.set_context_menu(context_menu)
            pass
        return result
Exemplo n.º 7
0
    def on_channel_format(self, context, re_match):
        channel_id = re_match.group("channel_id")
        format_id = re_match.group("format_id")
        channel_config = Client.CHANNELS[channel_id]
        client = self.get_client(context)

        # try to process tabs
        seo_url = context.get_param("seoUrl", "")
        if not seo_url:
            raise KodionException("seoUrl missing")

        format_tabs = client.get_format_tabs(channel_config, seo_url)

        # only on season tab -> show the content directly
        if len(format_tabs) == 1 and format_tabs[0]["type"] == "tab":
            format_tab = format_tabs[0]
            return self._on_channel_format_list(context, channel_config, format_tab["id"])

        # show the tabs/sections
        tabs = []
        for format_tab in format_tabs:
            if format_tab["type"] == "tab":
                tab_item = DirectoryItem(
                    format_tab["title"],
                    # /[CHANNEL_ID]/format/[FORMAT_ID]/list/[FORMAT_LIST_ID]/
                    context.create_uri([channel_id, "format", format_id, "list", str(format_tab["id"])]),
                )
                tab_item.set_image(format_tab["images"]["thumb"])
                tab_item.set_fanart(format_tab["images"]["fanart"])
                tabs.append(tab_item)
                pass
            elif format_tab["type"] == "date-span":
                tab_title = format_tab["title"]
                image = format_tab["images"]["thumb"]
                fanart = format_tab["images"]["fanart"]
                tab_item = DirectoryItem(
                    tab_title,
                    # /[CHANNEL_ID]/format/[FORMAT_ID]/year/[YEAR]/
                    context.create_uri(
                        [channel_id, "format", format_id, "year", tab_title],
                        {"start": format_tab["start"], "end": format_tab["end"], "image": image, "fanart": fanart},
                    ),
                )
                tab_item.set_image(image)
                tab_item.set_fanart(fanart)
                tabs.append(tab_item)
                pass
            else:
                raise KodionException('Unknown type "%s" for tab' % format_tab["type"])
            pass

        return tabs
Exemplo n.º 8
0
    def on_root(self, context, re_match):
        result = []

        # watch later
        if len(context.get_watch_later_list().list()) > 0:
            watch_later_item = DirectoryItem(
                '[B]' + context.localize(constants.localize.WATCH_LATER) +
                '[/B]',
                context.create_uri([constants.paths.WATCH_LATER, 'list']),
                image=context.create_resource_path('media', 'watch_later.png'))
            watch_later_item.set_fanart(self.get_fanart(context))
            result.append(watch_later_item)
            pass

        # search
        search_item = DirectoryItem(
            '[B]' + context.localize(constants.localize.SEARCH) + '[/B]',
            context.create_uri([constants.paths.SEARCH, 'list']),
            image=context.create_resource_path('media', 'search.png'))
        search_item.set_fanart(self.get_fanart(context))
        result.append(search_item)

        # "Neu bei Netzkino/DZANGO"
        config = self._client.get_config()
        category_id = str(config['new']['id'])
        category_item = DirectoryItem(
            u'[B]%s[/B]' % config['new']['title'],
            context.create_uri(['category', category_id]))
        category_image_url = config['category_image_url']
        if category_image_url:
            category_item.set_image(category_image_url % category_id)
            pass
        category_item.set_fanart(self.get_fanart(context))
        result.append(category_item)

        # categories
        categories = context.get_function_cache().get(
            FunctionCache.ONE_DAY, self._client.get_categories)
        for category in categories:
            category_id = str(category['id'])
            category_item = DirectoryItem(
                category['title'],
                context.create_uri(['category', category_id]))
            category_image_url = config['category_image_url']
            if category_image_url:
                category_item.set_image(category_image_url % category_id)
                pass
            category_item.set_fanart(self.get_fanart(context))
            result.append(category_item)
            pass

        return result, {self.RESULT_CACHE_TO_DISC: False}
Exemplo n.º 9
0
    def on_channel_format(self, context, re_match):
        channel_id = re_match.group('channel_id')
        format_id = re_match.group('format_id')
        channel_config = Client.CHANNELS[channel_id]
        client = self.get_client(context)

        # try to process tabs
        seo_url = context.get_param('seoUrl', '')
        if not seo_url:
            raise KodionException('seoUrl missing')

        format_tabs = client.get_format_tabs(channel_config, seo_url)

        # only on season tab -> show the content directly
        if len(format_tabs) == 1 and format_tabs[0]['type'] == 'tab':
            format_tab = format_tabs[0]
            return self._on_channel_format_list(context, channel_config, format_tab['id'])

        # show the tabs/sections
        tabs = []
        for format_tab in format_tabs:
            if format_tab['type'] == 'tab':
                tab_item = DirectoryItem(format_tab['title'],
                                         # /[CHANNEL_ID]/format/[FORMAT_ID]/list/[FORMAT_LIST_ID]/
                                         context.create_uri(
                                             [channel_id, 'format', format_id, 'list', str(format_tab['id'])]))
                tab_item.set_image(format_tab['images']['thumb'])
                tab_item.set_fanart(format_tab['images']['fanart'])
                tabs.append(tab_item)
                pass
            elif format_tab['type'] == 'date-span':
                tab_title = format_tab['title']
                image = format_tab['images']['thumb']
                fanart = format_tab['images']['fanart']
                tab_item = DirectoryItem(tab_title,
                                         # /[CHANNEL_ID]/format/[FORMAT_ID]/year/[YEAR]/
                                         context.create_uri([channel_id, 'format', format_id, 'year', tab_title],
                                                            {'start': format_tab['start'],
                                                             'end': format_tab['end'],
                                                             'image': image,
                                                             'fanart': fanart}))
                tab_item.set_image(image)
                tab_item.set_fanart(fanart)
                tabs.append(tab_item)
                pass
            else:
                raise KodionException('Unknown type "%s" for tab' % format_tab['type'])
            pass

        return tabs
Exemplo n.º 10
0
    def on_root(self, context, re_match):
        result = []

        # watch later
        if len(context.get_watch_later_list().list()) > 0:
            watch_later_item = DirectoryItem(
                "[B]" + context.localize(constants.localize.WATCH_LATER) + "[/B]",
                context.create_uri([constants.paths.WATCH_LATER, "list"]),
                image=context.create_resource_path("media", "watch_later.png"),
            )
            watch_later_item.set_fanart(self.get_fanart(context))
            result.append(watch_later_item)
            pass

        # search
        search_item = DirectoryItem(
            "[B]" + context.localize(constants.localize.SEARCH) + "[/B]",
            context.create_uri([constants.paths.SEARCH, "list"]),
            image=context.create_resource_path("media", "search.png"),
        )
        search_item.set_fanart(self.get_fanart(context))
        result.append(search_item)

        # "Neu bei Netzkino/DZANGO"
        config = self._client.get_config()
        category_id = str(config["new"]["id"])
        category_item = DirectoryItem(
            u"[B]%s[/B]" % config["new"]["title"], context.create_uri(["category", category_id])
        )
        category_image_url = config["category_image_url"]
        if category_image_url:
            category_item.set_image(category_image_url % category_id)
            pass
        category_item.set_fanart(self.get_fanart(context))
        result.append(category_item)

        # categories
        categories = context.get_function_cache().get(FunctionCache.ONE_DAY, self._client.get_categories)
        for category in categories:
            category_id = str(category["id"])
            category_item = DirectoryItem(category["title"], context.create_uri(["category", category_id]))
            category_image_url = config["category_image_url"]
            if category_image_url:
                category_item.set_image(category_image_url % category_id)
                pass
            category_item.set_fanart(self.get_fanart(context))
            result.append(category_item)
            pass

        return result, {self.RESULT_CACHE_TO_DISC: False}
Exemplo n.º 11
0
    def on_root(self, context, re_match):
        result = []

        # watch later
        if len(context.get_watch_later_list().list()) > 0:
            watch_later_item = DirectoryItem('[B]' + context.localize(constants.localize.WATCH_LATER) + '[/B]',
                                             context.create_uri([constants.paths.WATCH_LATER, 'list']),
                                             image=context.create_resource_path('media', 'watch_later.png'))
            watch_later_item.set_fanart(self.get_fanart(context))
            result.append(watch_later_item)
            pass

        # search
        search_item = DirectoryItem('[B]' + context.localize(constants.localize.SEARCH) + '[/B]',
                                    context.create_uri([constants.paths.SEARCH, 'list']),
                                    image=context.create_resource_path('media', 'search.png')
        )
        search_item.set_fanart(self.get_fanart(context))
        result.append(search_item)

        # "Neu bei Netzkino/DZANGO"
        config = self._client.get_config()
        category_id = str(config['new']['id'])
        category_item = DirectoryItem(u'[B]%s[/B]' % config['new']['title'],
                                      context.create_uri(['category', category_id]))
        category_image_url = config['category_image_url']
        if category_image_url:
            category_item.set_image(category_image_url % category_id)
            pass
        category_item.set_fanart(self.get_fanart(context))
        result.append(category_item)

        # categories
        categories = context.get_function_cache().get(FunctionCache.ONE_DAY, self._client.get_categories)
        for category in categories:
            category_id = str(category['id'])
            category_item = DirectoryItem(category['title'],
                                          context.create_uri(['category', category_id]))
            category_image_url = config['category_image_url']
            if category_image_url:
                category_item.set_image(category_image_url % category_id)
                pass
            category_item.set_fanart(self.get_fanart(context))
            result.append(category_item)
            pass

        return result, {self.RESULT_CACHE_TO_DISC: False}
Exemplo n.º 12
0
    def _feed_to_item(self, json_data, context):
        result = []

        data = json_data['data']['data']
        for item in data:
            gallery_item = DirectoryItem(item['title'],
                                         context.create_uri(['show', str(item['id'])]))
            gallery_item.set_fanart(self.get_fanart(context))
            image = item.get('thumbnails', [])
            if len(image) > 0:
                image = image[0].get('url', '')
                gallery_item.set_image(image)
                pass
            result.append(gallery_item)
            pass

        return result
Exemplo n.º 13
0
    def _on_library(self, context, re_match):
        context.set_content_type(kodion.constants.content_type.TV_SHOWS)
        context.add_sort_method(kodion.constants.sort_method.LABEL)

        result = []

        json_data = context.get_function_cache().get(
            FunctionCache.ONE_HOUR,
            self.get_client(context).get_formats)
        format_list = json_data.get('result', {}).get('content',
                                                      {}).get('formatlist')
        for key in format_list:
            now_format = format_list[key]
            title = now_format['formatlong']
            format_id = now_format['formatid']
            free_episodes = int(now_format.get('free_episodes', '0'))

            if free_episodes >= 1:
                format_item = DirectoryItem(
                    title, context.create_uri(['format', format_id]))

                # set image
                image = self.get_client(context).get_config(
                )['images']['format-thumbnail-url'].replace(
                    '%FORMAT_ID%', format_id)
                format_item.set_image(image)

                # set fanart
                fanart = self.get_client(context).get_config(
                )['images']['format-fanart-url'].replace(
                    '%FORMAT_ID%', format_id)
                format_item.set_fanart(fanart)

                context_menu = [
                    (context.localize(self._local_map['now.add_to_favs']),
                     'RunPlugin(%s)' % context.create_uri(
                         [kodion.constants.paths.FAVORITES, 'add'],
                         {'item': kodion.items.to_jsons(format_item)}))
                ]
                format_item.set_context_menu(context_menu)
                result.append(format_item)
                pass
            pass

        return result
Exemplo n.º 14
0
    def _feed_to_item(self, json_data, context):
        result = []

        data = json_data['data']['data']
        for item in data:
            gallery_item = DirectoryItem(
                item['title'], context.create_uri(['show',
                                                   str(item['id'])]))
            gallery_item.set_fanart(self.get_fanart(context))
            image = item.get('thumbnails', [])
            if len(image) > 0:
                image = image[0].get('url', '')
                gallery_item.set_image(image)
                pass
            result.append(gallery_item)
            pass

        return result
Exemplo n.º 15
0
    def _do_formats(self, context, json_formats):
        result = []
        formats = json_formats.get('items', [])

        # show only free videos if not logged in or or the setting is enabled
        show_only_free_videos = not self.is_logged_in() or context.get_settings().get_bool('nowtv.videos.only_free',
                                                                                           False)

        for format_data in formats:
            if show_only_free_videos and not format_data['free']:
                continue

            format_title = format_data['title']
            params = {}
            if format_data.get('seoUrl', ''):
                params['seoUrl'] = format_data['seoUrl']
                pass
            format_item = DirectoryItem(format_title,
                                        # /rtl/format/2/
                                        context.create_uri([format_data['station'], 'format', str(format_data['id'])],
                                                           params))
            format_item.set_image(format_data['images']['thumb'])
            format_item.set_fanart(format_data['images']['fanart'])
            result.append(format_item)

            if self.is_logged_in():
                if context.get_path() == '/nowtv/favorites/list/':
                    context_menu = [(context.localize(self._local_map['nowtv.remove_from_favs']),
                                     'RunPlugin(%s)' % context.create_uri(['nowtv', 'favorites', 'delete'],
                                                                          {'format_id': format_data['id']}))]
                    pass
                else:
                    context_menu = [(context.localize(self._local_map['nowtv.add_to_favs']),
                                     'RunPlugin(%s)' % context.create_uri(['nowtv', 'favorites', 'add'],
                                                                          {'format_id': format_data['id']}))]
                    pass
            else:
                context_menu = [(context.localize(self._local_map['nowtv.add_to_favs']),
                                 'RunPlugin(%s)' % context.create_uri([kodion.constants.paths.FAVORITES, 'add'],
                                                                      {'item': kodion.items.to_jsons(format_item)}))]
                pass
            format_item.set_context_menu(context_menu)
            pass
        return result
Exemplo n.º 16
0
 def _do_formats(self, context, json_formats):
     result = []
     formats = json_formats.get('items', [])
     for format_data in formats:
         format_title = format_data['title']
         params = {}
         if format_data.get('seoUrl', ''):
             params['seoUrl'] = format_data['seoUrl']
             pass
         format_item = DirectoryItem(format_title,
                                     context.create_uri([format_data['station'], 'format', str(format_data['id'])], params))
         format_item.set_image(format_data['images']['thumb'])
         format_item.set_fanart(format_data['images']['fanart'])
         result.append(format_item)
         context_menu = [(context.localize(self._local_map['nowtv.add_to_favs']),
                          'RunPlugin(%s)' % context.create_uri([kodion.constants.paths.FAVORITES, 'add'],
                                                               {'item': kodion.items.to_jsons(format_item)}))]
         format_item.set_context_menu(context_menu)
         pass
     return result
Exemplo n.º 17
0
    def on_channel_format(self, context, re_match):
        channel_id = re_match.group('channel_id')
        channel_config = Client.CHANNELS[channel_id]
        client = self.get_client(context)

        # try to process tabs
        seo_url = context.get_param('seoUrl', '')
        if seo_url:
            format_tabs = client.get_format_tabs(channel_config, seo_url)
            # with only one tab we could display the whole list of videos
            if len(format_tabs) == 1:
                format_tab = format_tabs[0]
                return self._on_channel_format_list(context, channel_config, format_tab['id'])

            # show the tabs/sections
            tabs = []
            for format_tab in format_tabs:
                if format_tab['type'] == 'season' or format_tab['type'] == 'year':
                    tab_item = DirectoryItem(format_tab['title'],
                                             context.create_uri([channel_id, 'formatlist', str(format_tab['id'])]))
                    tab_item.set_image(format_tab['images']['thumb'])
                    tab_item.set_fanart(format_tab['images']['fanart'])
                    tabs.append(tab_item)
                    pass
                elif format_tab['type'] == 'year':
                    tab_item = DirectoryItem(format_tab['title'],
                                             context.create_uri([channel_id, 'yearlist', str(format_tab['id'])]))
                    tab_item.set_image(format_tab['images']['thumb'])
                    tab_item.set_fanart(format_tab['images']['fanart'])
                    tabs.append(tab_item)
                    pass
                else:
                    raise KodionException('Unknown type "%s" for tab' % format_tab['type'])
                pass
            return tabs

        format_id = re_match.group('format_id')

        return []
Exemplo n.º 18
0
    def _on_library(self, context, re_match):
        context.set_content_type(kodion.constants.content_type.TV_SHOWS)
        context.add_sort_method(kodion.constants.sort_method.LABEL)

        result = []

        json_data = context.get_function_cache().get(FunctionCache.ONE_HOUR, self.get_client(context).get_formats)
        format_list = json_data.get('result', {}).get('content', {}).get('formatlist')
        for key in format_list:
            now_format = format_list[key]
            title = now_format['formatlong']
            format_id = now_format['formatid']
            free_episodes = int(now_format.get('free_episodes', '0'))

            if free_episodes >= 1:
                format_item = DirectoryItem(title,
                                            context.create_uri(['format', format_id]))

                # set image
                image = self.get_client(context).get_config()['images']['format-thumbnail-url'].replace('%FORMAT_ID%',
                                                                                                        format_id)
                format_item.set_image(image)

                # set fanart
                fanart = self.get_client(context).get_config()['images']['format-fanart-url'].replace('%FORMAT_ID%',
                                                                                                         format_id)
                format_item.set_fanart(fanart)

                context_menu = [(context.localize(self._local_map['now.add_to_favs']),
                                 'RunPlugin(%s)' % context.create_uri([kodion.constants.paths.FAVORITES, 'add'],
                                                                      {'item': kodion.items.to_jsons(format_item)}))]
                format_item.set_context_menu(context_menu)
                result.append(format_item)
                pass
            pass

        return result