def add_date(self): input_date = control.inputDialog(type=control.input_date) input_date = ''.join(input_date.split('/')[::-1]).replace(' ', '0') directory.run_builtin(action='matches', query=input_date)
def activate_audio_addon(url, query=None): from tulip import directory directory.run_builtin(addon_id=url, action=query if query is not None else None, content_type='audio')
def search(self): input_str = control.inputDialog() try: input_str = cleantitle.strip_accents(input_str.decode('utf-8')) except (UnicodeEncodeError, UnicodeDecodeError, AttributeError): input_str = cleantitle.strip_accents(input_str) input_str = quote(input_str.encode('utf-8')) directory.run_builtin(action='listing', url=self.search_link.format(input_str))
def activate_other_addon(url, query=None): if not url.startswith('plugin://'): url = ''.join(['plugin://', url, '/']) parsed = urlparse(url) if not control.condVisibility('System.HasAddon({0})'.format( parsed.netloc)): control.execute('InstallAddon({0})'.format(parsed.netloc)) params = dict(parse_qsl(parsed.query)) action = params.get('action') url = params.get('url') directory.run_builtin(addon_id=parsed.netloc, action=action, url=url, content_type=query)
def search(self, media=True, override=False, query=None): if media: choices = [ control.lang(30003), control.lang(30005), control.lang(30155), control.lang(30010) ] else: choices = [ control.lang(30003), control.lang(30005), control.lang(30010) ] if control.setting('history.bool') == 'false': del choices[-1] if control.setting('window.action') == '0' or override: if media: if not override: choice = control.selectDialog(choices) else: choice = None if choice == 0 or query == 'quick': search_link = url_generator() elif choice == 1 or query == 'advanced': search_link = url_generator(advanced=True) elif choice == 2 or query == 'domain': q = control.dialog.input(control.name()) search_link = url_generator(query=q) elif choice == 3 or query == 'history': if not read_from_history(history_media): return queries = read_from_history(history_media) if control.setting('window.action') == '0': choice = control.selectDialog(queries) if choice <= len(read_from_history( history_media)) and not choice == -1: search_link = url_generator( read_from_history(history_media)[choice], history=True) else: control.execute('Dialog.Close(all)') return else: self.list = [{ 'title': q, 'url': url_generator(q, history=True), 'action': 'search', 'query': q, 'isFolder': 'False', 'isPlayable': 'False' } for q in queries] for i in self.list: bookmark = dict((k, v) for k, v in iteritems(i) if not k == 'next') bm_object = json.dumps(bookmark) add_bm_cm = { 'title': 30023, 'query': { 'action': 'addBookmark', 'url': bm_object } } i.update({'cm': [add_bm_cm]}) directory.add(self.list) return elif query: # Can convert a query directly to listing for display search_link = url_generator(query, history=True) else: control.execute('Dialog.Close(all)') return directory.run_builtin(action='listing', url=search_link) else: if not override: del choices[1] choice = control.selectDialog(choices) else: choice = None if choice == 0 or query == 'quick': search_link = url_generator(media=False) elif choice == 1 or query == 'history': if not read_from_history(history_subrs): return queries = read_from_history(history_subrs) if control.setting('window.action') == '0': choice = control.selectDialog(queries) if choice <= len(read_from_history( history_media)) and not choice == -1: search_link = url_generator( read_from_history(history_subrs)[choice], media=False, history=True) else: control.execute('Dialog.Close(all)') return else: self.list = [{ 'title': q, 'url': url_generator(q, media=False, history=True), 'action': 'search', 'query': q, 'isFolder': 'False', 'isPlayable': 'False' } for q in queries] directory.add(self.list) return elif query: # Can convert a query directly to listing for display search_link = url_generator(query=query, media=False, history=True) else: control.execute('Dialog.Close(all)') return directory.run_builtin(action='listing', url=search_link) else: self.list = [{ 'title': control.lang(30003), 'action': 'search', 'query': 'quick', 'url': 'media' if media else 'subreddits' }] if media: self.list.append({ 'title': control.lang(30005), 'action': 'search', 'query': 'advanced', 'url': 'media' }) self.list.append({ 'title': control.lang(30155), 'action': 'search', 'query': 'domain', 'url': 'media' }) for i in self.list: i.update({'isFolder': 'False', 'isPlayable': 'False'}) if control.setting('history.bool') == 'true': self.list.append({ 'title': control.lang(30010), 'action': 'search', 'query': 'history', 'url': 'media' if media else 'subreddits' }) directory.add(self.list)
novasports.Indexer().event(url) elif action == 'add_date': novasports.Indexer().add_date() elif action == 'webtv': novasports.Indexer().webtv() elif action == 'teams_index': novasports.Indexer().teams_index() elif action == 'categories': novasports.Indexer().categories() elif action == 'switch': novasports.Indexer().switch() elif action == 'bookmarks': novasports.Indexer().bookmarks() elif action == 'go_to_root': from tulip.directory import run_builtin run_builtin(action='root', path_history='replace') elif action == 'play': novasports.Indexer().play(url) elif action == 'cache_clear': from tulip import cache cache.FunctionCache().reset_cache(notify=True)
def player(url, params): global skip_directory if url is None: log_debug('Nothing playable was found') return if url.startswith('alivegr://'): log_debug('Attempting pseudo live playback') skip_directory = True pseudo_live(url) return url = url.replace('&', '&') skip_directory = params.get('action') == 'play_skipped' directory_boolean = MOVIES in url or SHORTFILMS in url or THEATER in url or GK_BASE in url or ( 'episode' in url and GM_BASE in url) if directory_boolean and control.setting( 'action_type') == '1' and not skip_directory: directory.run_builtin(action='directory', url=url) return log_debug('Attempting to play this url: ' + url) if params.get('action') == 'play_resolved': stream = url elif params.get('query') and control.setting('check_streams') == 'true': sl = json.loads(params.get('query')) index = int(control.infoLabel('Container.CurrentItem')) - 1 stream = check_stream(sl, False, start_from=index, show_pd=True, cycle_list=False) else: stream = conditionals(url) if not stream: log_debug('Failed to resolve this url: {0}'.format(url)) return try: plot = params.get('plot').encode('latin-1') except (UnicodeEncodeError, UnicodeDecodeError, AttributeError): plot = params.get('plot') if not plot and 'greek-movies.com' in url: plot = gm_source_maker(url).get('plot') dash, m3u8_dash, mimetype, manifest_type = dash_conditionals(stream) if not m3u8_dash and control.setting( 'm3u8_quality_picker') == '1' and '.m3u8' in stream: try: stream = m3u8_picker(stream) except TypeError: pass if stream != url: log_debug('Stream has been resolved: ' + stream) else: log_debug('Attempting direct playback: ' + stream) # process headers if necessary: if '|' in stream: stream, sep, headers = stream.rpartition('|') headers = dict(parse_qsl(headers)) log_debug('Appending custom headers: ' + repr(headers)) stream = sep.join([stream, urlencode(headers)]) try: image = params.get('image').encode('latin-1') title = params.get('title').encode('latin-1') except (UnicodeEncodeError, UnicodeDecodeError, AttributeError): image = params.get('image') title = params.get('title') meta = {'title': title} if plot: meta.update({'plot': plot}) try: directory.resolve(stream, meta=meta, icon=image, dash=dash, manifest_type=manifest_type, mimetype=mimetype) if url.startswith('iptv://') or 'kineskop.tv' in url: control.execute('PlayerControl(RepeatOne)') except: control.execute('Dialog.Close(all)') control.infoDialog(control.lang(30112))
def mags_addon(): directory.run_builtin('plugin.video.Toronto-Channels', content_type='image')
elif content == 'image': news.Indexer().papers_index() elif content == 'executable': settings.Indexer().menu() elif action is None: navigator.Indexer().root() elif action == 'root': run_builtin(content_type='video') elif action == 'live_tv': live.Indexer().live_tv() elif action == 'pvr_client': kodi.pvr_client(query) elif action == 'networks': networks.Indexer().networks() elif action == 'news':
def search(self, action, query=None): if query is not None: choice = list(QUERY_MAP.keys()).index(query.split(',')[0]) str_input = query.split(',')[1] else: choice = None str_input = None if choice is None: choices = [ control.lang(30096), control.lang(30031), control.lang(30030), control.lang(30063), control.lang(30068), control.lang(30097), control.lang(30101) ] choice = control.selectDialog(heading=control.lang(30095), list=choices) if choice == 0: if str_input is None: str_input = control.dialog.input( heading=control.lang(30095).partition(' ')[0] + control.lang(30100) + control.lang(30096)) if not str_input: return add_to_history(u"Live TV Channel,{0}".format(str_input)) if action == 'add_to_history': control.refresh() return self.list = live.Indexer().live_tv(zapping=False, query=str_input.lower()) if query: directory.add(self.list) else: directory.run_builtin(action='generic_index', query=quote_plus(json.dumps(self.list))) elif choice == 1: if str_input is None: str_input = control.dialog.input( heading=control.lang(30095).partition(' ')[0] + control.lang(30100) + control.lang(30031)) try: str_input = cleantitle.strip_accents( str_input.decode('utf-8')) except (UnicodeEncodeError, UnicodeDecodeError, AttributeError): str_input = cleantitle.strip_accents(str_input) if not str_input: return add_to_history(u"Movie,{0}".format(str_input)) if action == 'add_to_history': control.refresh() return self.list = self.wrapper(str_input, 'movies') if query: directory.add(self.list, content='movies') else: directory.run_builtin(action='generic_index', query=quote_plus(json.dumps(self.list))) elif choice == 2: if str_input is None: str_input = control.dialog.input( heading=control.lang(30095).partition(' ')[0] + control.lang(30100) + control.lang(30030)) if not str_input: return try: str_input = cleantitle.strip_accents( str_input.decode('utf-8')) except (UnicodeEncodeError, UnicodeDecodeError, AttributeError): str_input = cleantitle.strip_accents(str_input) add_to_history(u"TV Serie,{0}".format(str_input)) if action == 'add_to_history': control.refresh() return self.list = self.wrapper(str_input, 'series') if query is not None: directory.add(self.list, content='tvshows') else: directory.run_builtin(action='generic_index', query=quote_plus(json.dumps(self.list))) elif choice == 3: if not str_input: str_input = control.dialog.input( heading=control.lang(30095).partition(' ')[0] + control.lang(30100) + control.lang(30063)) if not str_input: return try: str_input = cleantitle.strip_accents( str_input.decode('utf-8')) except (UnicodeEncodeError, UnicodeDecodeError, AttributeError): str_input = cleantitle.strip_accents(str_input) add_to_history(u"TV Show,{0}".format(str_input)) if action == 'add_to_history': control.refresh() return self.list = self.wrapper(str_input, 'shows') if query is not None: directory.add(self.list, content='tvshows') else: directory.run_builtin(action='generic_index', query=quote_plus(json.dumps(self.list))) elif choice == 4: if str_input is None: str_input = control.dialog.input( heading=control.lang(30095).partition(' ')[0] + control.lang(30100) + control.lang(30068)) if not str_input: return try: str_input = cleantitle.strip_accents( str_input.decode('utf-8')) except (UnicodeEncodeError, UnicodeDecodeError, AttributeError): str_input = cleantitle.strip_accents(str_input) add_to_history(u"Theater,{0}".format(str_input)) if action == 'add_to_history': control.refresh() return self.list = self.wrapper(str_input, 'theater') if query is not None: directory.add(self.list, content='movies') else: directory.run_builtin(action='generic_index', query=quote_plus(json.dumps(self.list))) elif choice == 5: if str_input is None: str_input = control.dialog.input( heading=control.lang(30095).partition(' ')[0] + control.lang(30100) + control.lang(30097)) if not str_input: return try: str_input = cleantitle.strip_accents( str_input.decode('utf-8')) except (UnicodeEncodeError, UnicodeDecodeError, AttributeError): str_input = cleantitle.strip_accents(str_input) add_to_history(u"Cartoon,{0}".format(str_input)) if action == 'add_to_history': control.refresh() return self.list = self.wrapper(str_input, 'animation') if query is not None: directory.add(self.list, content='tvshows') else: directory.run_builtin(action='generic_index', query=quote_plus(json.dumps(self.list))) elif choice == 6: if str_input is None: str_input = control.dialog.input( heading=control.lang(30095).partition(' ')[0] + control.lang(30100) + control.lang(30101)) if not str_input: return try: str_input = cleantitle.strip_accents( str_input.decode('utf-8')) except (UnicodeEncodeError, UnicodeDecodeError, AttributeError): str_input = cleantitle.strip_accents(str_input) add_to_history(u"Person,{0}".format(str_input)) if action == 'add_to_history': control.refresh() return self.list = self.wrapper(str_input, 'person') if query is not None: directory.add(self.list) else: directory.run_builtin(action='generic_index', query=quote_plus(json.dumps(self.list))) else: control.close_all()