# -*- coding: utf-8 -*- """ Addon code """ from __future__ import absolute_import, division, unicode_literals import logging from routing import Plugin from resources.lib import kodilogging kodilogging.config() routing = Plugin() # pylint: disable=invalid-name _LOGGER = logging.getLogger('addon') @routing.route('/') def show_main_menu(): """ Show the main menu """ from resources.lib.modules.menu import Menu Menu().show_mainmenu() @routing.route('/channels') def show_channels(): """ Shows Live TV channels """ from resources.lib.modules.channels import Channels Channels().show_channels() @routing.route('/channels/') def show_channel_menu(channel): """ Shows Live TV channels """ from resources.lib.modules.channels import Channels Channels().show_channel_menu(channel) @routing.route('/channels//categories') def show_channel_categories(channel): """ Shows TV Channel categories """ from resources.lib.modules.channels import Channels Channels().show_channel_categories(channel) @routing.route('/channels//categories/') def show_channel_category(channel, category): """ Shows TV Channel categories """ from resources.lib.modules.channels import Channels Channels().show_channel_category(channel, category) @routing.route('/channels//tvguide') def show_channel_tvguide(channel): """ Shows the dates in the tv guide """ from resources.lib.modules.tvguide import TvGuide TvGuide().show_channel(channel) @routing.route('/channels//tvguide/') def show_channel_tvguide_detail(channel=None, date=None): """ Shows the programs of a specific date in the tv guide """ from resources.lib.modules.tvguide import TvGuide TvGuide().show_detail(channel, date) @routing.route('/catalog') def show_catalog(): """ Show the catalog """ from resources.lib.modules.catalog import Catalog Catalog().show_catalog() @routing.route('/catalog/') def show_channel_catalog(channel): """ Show a category in the catalog """ from resources.lib.modules.catalog import Catalog Catalog().show_catalog_channel(channel) @routing.route('/catalog//') def show_catalog_program(channel, program): """ Show a program from the catalog """ from resources.lib.modules.catalog import Catalog Catalog().show_program(channel, program) @routing.route('/catalog///clips') def show_catalog_program_clips(channel, program): """ Show the clips from a program """ from resources.lib.modules.catalog import Catalog Catalog().show_program_clips(channel, program) @routing.route('/catalog///season/') def show_catalog_program_season(channel, program, season): """ Show a season from a program """ from resources.lib.modules.catalog import Catalog Catalog().show_program_season(channel, program, season) @routing.route('/search') @routing.route('/search/') def show_search(query=None): """ Shows the search dialog """ from resources.lib.modules.search import Search Search().show_search(query) @routing.route('/play/live/') def play_live(channel): """ Play the requested item """ from resources.lib.modules.player import Player Player().live(channel) @routing.route('/play/epg//') def play_epg(channel, timestamp): """ Play the requested item """ from resources.lib.modules.tvguide import TvGuide TvGuide().play_epg_datetime(channel, timestamp) @routing.route('/play/catalog/') def play_catalog(uuid): """ Play the requested item """ from resources.lib.modules.player import Player Player().play(uuid) @routing.route('/play/page//') def play_from_page(channel, page): """ Play the requested item """ try: # Python 3 from urllib.parse import unquote except ImportError: # Python 2 from urllib import unquote from resources.lib.modules.player import Player Player().play_from_page(channel, unquote(page)) @routing.route('/metadata/update') def metadata_update(): """ Update the metadata for the listings (called from settings) """ from resources.lib.modules.metadata import Metadata Metadata().update() @routing.route('/iptv/channels') def iptv_channels(): """ Generate channel data for the Kodi PVR integration """ from resources.lib.modules.iptvmanager import IPTVManager IPTVManager(int(routing.args['port'][0])).send_channels() # pylint: disable=too-many-function-args @routing.route('/iptv/epg') def iptv_epg(): """ Generate EPG data for the Kodi PVR integration """ from resources.lib.modules.iptvmanager import IPTVManager IPTVManager(int(routing.args['port'][0])).send_epg() # pylint: disable=too-many-function-args def run(params): """ Run the routing plugin """ routing.run(params)