# -*- coding: utf-8 -*- from __future__ import division import os import sys import urllib import xbmc import xbmcaddon import xbmcgui import xbmcplugin plugin_handle = int(sys.argv[1]) ADDON = xbmcaddon.Addon(id='plugin.video.iplayerwww') sys.path.insert(0, os.path.join(ADDON.getAddonInfo("path"), 'resources', 'lib')) try: import ipwww_common as Common from ipwww_common import utf8_unquote_plus, CreateBaseDirectory, KidsMode import ipwww_video as Video import ipwww_radio as Radio except ImportError, error: d = xbmcgui.Dialog() d.ok(str(error), 'Please check you installed this plugin correctly.') raise def get_params(): param = [] paramstring = sys.argv[2] if len(paramstring) >= 2: params = sys.argv[2] cleanedparams = params.replace('?', '') if (params[len(params) - 1] == '/'): params = params[0:len(params) - 2] pairsofparams = cleanedparams.split('&') param = {} for i in range(len(pairsofparams)): splitparams = {} splitparams = pairsofparams[i].split('=') if (len(splitparams)) == 2: param[splitparams[0]] = splitparams[1] return param params = get_params() content_type = None url = None name = None mode = None iconimage = None description = None subtitles_url = None logged_in = False keyword = None try: content_type = utf8_unquote_plus(params["content_type"]) except: pass try: url = utf8_unquote_plus(params["url"]) except: pass try: name = utf8_unquote_plus(params["name"]) except: pass try: iconimage = utf8_unquote_plus(params["iconimage"]) except: pass try: mode = int(params["mode"]) except: pass try: description = utf8_unquote_plus(params["description"]) except: pass try: subtitles_url = utf8_unquote_plus(params["subtitles_url"]) except: pass try: logged_in = params['logged_in'] == 'True' except: pass try: keyword = utf8_unquote_plus(params["keyword"]) except: pass # These are the modes which tell the plugin where to go. if mode == 1: KidsMode() elif mode is None or url is None or len(url) < 1: CreateBaseDirectory(content_type) # Modes 101-119 will create a main directory menu entry elif mode == 101: Video.ListLive() elif mode == 102: Video.ListAtoZ() elif mode == 103: Video.ListCategories() elif mode == 104: Video.Search(keyword) elif mode == 105: Video.ListMostPopular() elif mode == 106: Video.ListHighlights(url) elif mode == 198: Video.ListMainHighlights(url) elif mode == 107: Video.ListWatching(logged_in) elif mode == 108: Video.ListFavourites(logged_in) elif mode == 109: Video.ListChannelHighlights() elif mode == 112: Radio.ListAtoZ() elif mode == 113: Radio.ListLive() elif mode == 114: Radio.ListGenres() elif mode == 115: Radio.Search(keyword) elif mode == 116: Radio.ListMostPopular() elif mode == 117: Radio.ListListenList(logged_in) elif mode == 199: Radio.ListFollowing(logged_in) elif mode == 118: Video.RedButtonDialog() elif mode == 119: Common.SignOutBBCiD() elif mode == 120: Video.ListChannelAtoZ() # Modes 121-199 will create a sub directory menu entry elif mode == 121: Video.GetEpisodes(url) elif mode == 122: Video.GetAvailableStreams(name, url, iconimage, description) elif mode == 123: Video.AddAvailableLiveStreamsDirectory(name, url, iconimage) elif mode == 124: Video.GetAtoZPage(url) elif mode == 125: Video.ListCategoryFilters(url) elif mode == 126: Video.GetFilteredCategory(url) elif mode == 127: Video.GetGroup(url) elif mode == 128: Video.ScrapeEpisodes(url) elif mode == 129: Video.AddAvailableRedButtonDirectory(name, url) elif mode == 131: Radio.GetEpisodes(url) elif mode == 132: Radio.GetAvailableStreams(name, url, iconimage, description) elif mode == 133: Radio.AddAvailableLiveStreamsDirectory(name, url, iconimage) elif mode == 134: Video.ScrapeAtoZEpisodes(url) elif mode == 136: Radio.GetPage(url) # Modes 201-299 will create a playable menu entry, not a directory elif mode == 201: Video.PlayStream(name, url, iconimage, description, subtitles_url) elif mode == 202: Video.AddAvailableStreamItem(name, url, iconimage, description) elif mode == 203: Video.AddAvailableLiveStreamItemSelector(name, url, iconimage) elif mode == 204: Video.AddAvailableRedButtonItem(name, url) elif mode == 211: Radio.PlayStream(name, url, iconimage, description, subtitles_url) elif mode == 212: Radio.AddAvailableStreamItem(name, url, iconimage, description) elif mode == 213: Radio.AddAvailableLiveStreamItem(name, url, iconimage) xbmcplugin.endOfDirectory(int(sys.argv[1]))