def onInit(self): self.display_list = self.getControl(1000) menu_items = [] for idx, i in enumerate(self.sources): menu_item = tools.menuItem(label='%s' % i['release_title']) for info in i.keys(): try: value = i[info] if type(value) == list: value = [str(k) for k in value] value = ' '.join(sorted(value)) if info == 'size': value = tools.source_size_display(value) menu_item.setProperty(info, str(value).replace('_', ' ')) except UnicodeEncodeError: menu_item.setProperty(info, i[info]) struct_info = source_utils.info_list_to_sorted_dict(i.get('info', [])) for property in struct_info.keys(): menu_item.setProperty('info.{}'.format(property), struct_info[property]) menu_items.append(menu_item) self.display_list.addItem(menu_item) self.setFocusId(1000)
def onInit(self): self.display_list = self.getControl(1000) menu_items = [] for idx, i in enumerate(self.sources): menu_item = tools.menuItem(label=('%s) %s' % (idx + 1, i['release_title']))) for info in i.keys(): try: tools.log(i) tools.log(info) value = i[info] if type(value) == list: value = [str(k) for k in value] value = ' '.join(sorted(value)) if info == 'size': value = tools.source_size_display(value) if info == 'type' and i.get(info) == 'hoster': menu_item.setProperty('provider', str(value).replace('_', ' ')) menu_item.setProperty(info, str(value).replace('_', ' ')) except UnicodeEncodeError: menu_item.setProperty(info, i[info]) menu_items.append(menu_item) self.display_list.addItem(menu_item) self.setFocusId(1000)
def fill_packages(self): self.refresh_data() self.package_list.reset() for i in self.packages: item = tools.menuItem(label=i['pack_name']) for info in i.keys(): item.setProperty(info, i[info]) self.package_list.addItem(item)
def play_source(self, stream_link, args, resume_time=None, params=None): try: self.pre_cache_initiated = False if resume_time is not None: self.offset = float(resume_time) self.params = params if stream_link is None: tools.cancelPlayback() raise Exception self.playing_file = stream_link self.original_action_args = args self.smart_module = smartPlay.SmartPlay(self.original_action_args) args = tools.get_item_information(args) self.args = args if 'showInfo' in args: self.media_type = 'episode' # Workaround for estuary skin to allow episode information to be displayed in Video Top Info args['art']['tvshow.clearlogo'] = args['art'].get( 'clearlogo', '') else: self.media_type = 'movie' self.trakt_id = args['ids']['trakt'] orginalArgs = json.loads(tools.unquote(self.original_action_args)) if 'resume' in orginalArgs: if orginalArgs['resume'] == 'true': self.tryGetBookmark() self.handleBookmark() item = tools.menuItem(path=stream_link) args['info']['FileNameAndPath'] = tools.unquote(stream_link) item.setInfo(type='video', infoLabels=args['info']) item.setArt(args['art']) item.setCast(args['cast']) item.setUniqueIDs(args['ids']) tools.closeBusyDialog() tools.closeAllDialogs() tools.resolvedUrl(syshandle, True, item) self.keepAlive() except: traceback.print_exc() pass
def getSourcesWorkaround2(self, actionArgs): item_information = tools.get_item_information(actionArgs) item = tools.menuItem(label=item_information['info']['title']) item.setArt(item_information['art']) item.setUniqueIDs(item_information['ids']) item.setInfo(type='video', infoLabels=tools.clean_info_keys( item_information['info'])) tools.playList.add( url='plugin://plugin.video.%s?action=getSources&actionArgs=%s' % (tools.addonName.lower(), tools.quote(actionArgs)), listitem=item) tools.player().play(tools.playList)
def myFilesPlay(self, args): args = json.loads(args) if args['debrid_provider'] == 'real_debrid': resolved_link = real_debrid.RealDebrid().unrestrict_link( args['link']) elif args['debrid_provider'] == 'premiumize': resolved_link = args['link'] else: raise IncorrectDebridProvider item = tools.menuItem(path=resolved_link) tools.resolvedUrl(syshandle, True, item)
def play_source(self, stream_link, args): try: self.pre_cache_initiated = False if stream_link is None: tools.playList.clear() raise Exception self.args = args if tools.checkOmniConnect(): port = tools.getSetting('omni.port') stream_link = 'http://localhost:%s?BLASTURL=%s' % (port, stream_link) item = tools.menuItem(path=stream_link) if 'episodeInfo' in args: self.media_type = 'episode' self.trakt_id = args['episodeInfo']['ids']['trakt'] item.setArt(args['episodeInfo']['art']) item.setInfo(type='video', infoLabels=args['episodeInfo']['info']) else: self.media_type = 'movie' self.trakt_id = args['ids']['trakt'] item.setArt(args['art']) item.setInfo(type='video', infoLabels=args['info']) if tools.playList.getposition() == 0 and tools.getSetting('smartPlay.traktresume') == 'true'\ and tools.getSetting('trakt.auth') is not '': tools.log('Getting Trakt Resume Point', 'info') self.traktBookmark() tools.resolvedUrl(syshandle, True, item) try: tools.busyDialog.close() except: pass self.keepAlive() except: import traceback traceback.print_exc()
def play_source(self, stream_link, args): try: self.pre_cache_initiated = False if stream_link is None: tools.cancelPlayback() raise Exception self.original_action_args = args args = tools.get_item_information(args) self.args = args item = tools.menuItem(path=stream_link) if 'showInfo' in args: self.media_type = 'episode' self.trakt_id = args['ids']['trakt'] item.setArt(args['art']) item.setUniqueIDs(args['ids']) item.setInfo(type='video', infoLabels=args['info']) else: self.media_type = 'movie' self.trakt_id = args['ids']['trakt'] item.setUniqueIDs(args['ids']) item.setArt(args['art']) item.setInfo(type='video', infoLabels=args['info']) if tools.playList.getposition() == 0 and tools.getSetting('smartPlay.traktresume') == 'true' \ and tools.getSetting('trakt.auth') is not '': tools.log('Getting Trakt Resume Point', 'info') self.traktBookmark() tools.resolvedUrl(syshandle, True, item) self.keepAlive() try: tools.closeBusyDialog() except: pass except: import traceback traceback.print_exc()
def fill_providers(self, package_name=None): self.refresh_data() self.provider_list.reset() if package_name is None: self.provider_list.reset() provider_types = ['torrent', 'hosters'] for provider_type in provider_types: for i in [ provider for provider in self.providers if provider['package'] == package_name and provider['provider_type'] == provider_type ]: item = tools.menuItem(label=i['provider_name']) for info in i.keys(): item.setProperty(info, i[info]) self.provider_list.addItem(item)
def play_item(self, args): resolved_link = self.resolve_link(args) item = tools.menuItem(path=resolved_link) tools.resolvedUrl(syshandle, True, item)