def _addLink(self, itemInfo): ok = True # paramsAddons = {} # paramsAddons[self.PARAM_LISTTYPE] = VALUE_LIST_VIDEO # paramsAddons[self.PARAM_URL] = dirInfo["url"] if itemInfo["url_image"] != None: icon = url_join(self.BASE_URL, itemInfo["url_image"]) else: icon = "DefaultVideo.png" liz = xbmcgui.ListItem( label=itemInfo["title"], label2=itemInfo["create_date"], iconImage=icon, thumbnailImage=icon ) liz.setInfo( type="Video", infoLabels={ "title": itemInfo["title"], "plotoutline": itemInfo["create_date"], "plot": itemInfo["description"], "aired": convertStrDate(itemInfo["create_date"]), }, ) liz.setProperty("mimetype", "video/x-flv") url = url_join(self.BASE_URL, itemInfo["url_video"]) if url: ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=url, listitem=liz, isFolder=False) return ok
def _addLink(self, itemInfo): ok = True #paramsAddons = {} #paramsAddons[self.PARAM_LISTTYPE] = VALUE_LIST_VIDEO #paramsAddons[self.PARAM_URL] = dirInfo["url"] if itemInfo["url_image"] != None: icon = url_join(self.BASE_URL, itemInfo["url_image"]) else: icon = "DefaultVideo.png" liz = xbmcgui.ListItem(label=itemInfo["title"], label2=itemInfo["create_date"], iconImage=icon, thumbnailImage=icon) liz.setInfo(type="Video", infoLabels={ "title": itemInfo["title"], "plotoutline": itemInfo["create_date"], "plot": itemInfo["description"], "aired": convertStrDate(itemInfo["create_date"]) }) liz.setProperty('mimetype', 'video/x-flv') url = url_join(self.BASE_URL, itemInfo["url_video"]) if url: ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=url, listitem=liz, isFolder=False) return ok
def createVideoList(self, rel_url): pageUrl = url_join(self.BASE_URL, rel_url) print "createVideoList" xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=__language__(30001)) # TODO: set category with the name of the blog # TODO: Display number of pages numberIter = int(__settings__.getSetting("videoperpage")) + 1 nextPageRel_url = None # We are going to load numberIter web pages for i in range(numberIter): print pageUrl nextPageRel_url = huitartcity.getVideoList( pageUrl, addItemFunc=self._addLink, progressBar=None, msgFunc=None ) pageUrl = url_join(self.BASE_URL, nextPageRel_url) if nextPageRel_url == None: break if nextPageRel_url: self._addDir( { "title": "Suivant", "url": nextPageRel_url, "image": os.path.join(MEDIA_PATH, "next-page.png"), "description": "Charge la page suivante", } ) self._end_of_directory(True)
def createVideoList(self, rel_url): pageUrl = url_join(self.BASE_URL, rel_url) print "createVideoList" xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=__language__(30001)) #TODO: set category with the name of the blog #TODO: Display number of pages numberIter = int(__settings__.getSetting('videoperpage')) + 1 nextPageRel_url = None # We are going to load numberIter web pages for i in range(numberIter): print pageUrl nextPageRel_url = huitartcity.getVideoList( pageUrl, addItemFunc=self._addLink, progressBar=None, msgFunc=None) pageUrl = url_join(self.BASE_URL, nextPageRel_url) if nextPageRel_url == None: break if nextPageRel_url: self._addDir({ "title": "Suivant", "url": nextPageRel_url, "image": os.path.join(MEDIA_PATH, "next-page.png"), "description": "Charge la page suivante" }) self._end_of_directory(True)
def create_category_page(self, page_id, ha_elenco=False, category_name=''): if ha_elenco: list_item = xbmcgui.ListItem(label='Elenco completo') xbmcplugin.addDirectoryItem( handle=self.plugin_handle, url=utils.url_join( self.plugin_dir, "?action=full_list&category=%s" % (category_name)), listitem=list_item, isFolder=True) pages = utils.call_service("get_page", {"page": str(page_id)}) if pages != None: pages = [ page for page in pages if page["layout"] in ["SMALL_CARDS", "KIDS_COLLECTIONS"] ] for page in pages: if page["metadata"]["label"] == "TUTTI I TITOLI": continue list_item = xbmcgui.ListItem( label=page["metadata"]["label"].lower().capitalize()) url = utils.url_join( self.plugin_dir, "?action=open_page&uri=%s" % (urllib.quote_plus(page["retrieveItems"]["uri"]))) xbmcplugin.addDirectoryItem(handle=self.plugin_handle, isFolder=True, listitem=list_item, url=url) xbmcplugin.endOfDirectory(handle=self.plugin_handle) return
def _addDir(self, dirInfo): """ Credit to ppic """ # u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name) ok = True paramsAddons = {} paramsAddons[self.PARAM_LISTTYPE] = self.VALUE_LIST_VIDEO paramsAddons[self.PARAM_URL] = dirInfo["url"] if dirInfo["image"] != None: icon = url_join(self.BASE_URL, dirInfo["image"]) else: icon = "DefaultVideo.png" liz = xbmcgui.ListItem(dirInfo["title"], iconImage=icon, thumbnailImage=icon) # Context Menu # if c_items : # liz.addContextMenuItems( c_items, replaceItems=True ) liz.setInfo(type="Video", infoLabels={"title": dirInfo["title"], "plot": dirInfo["description"]}) url = self._create_param_url(paramsAddons) if url: ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=url, listitem=liz, isFolder=True) return ok
def add_items_to_folder(self, items, title=''): if len(items) == 0: dialog_title = utils.get_local_string(30043) dialog_msg = utils.get_local_string(30044) Dialogs.show_dialog(dialog_msg, dialog_title) xbmcplugin.endOfDirectory(handle=self.plugin_handle) return False items = TimVisionObjects.parse_collection(items) movies = 0 tvshows = 0 episodes = 0 seasons = 0 for item in items: list_item, is_folder, url = item.get_list_item() xbmcplugin.addDirectoryItem(handle=self.plugin_handle, isFolder=is_folder, listitem=list_item, url=utils.url_join( self.plugin_dir, url)) if item.mediatype == TimVisionObjects.ITEM_MOVIE: movies += 1 elif item.mediatype == TimVisionObjects.ITEM_TVSHOW: tvshows += 1 elif item.mediatype == TimVisionObjects.ITEM_SEASON: seasons += 1 elif item.mediatype == TimVisionObjects.ITEM_EPISODE: episodes += 1 if episodes > 0: xbmcplugin.addSortMethod(self.plugin_handle, xbmcplugin.SORT_METHOD_EPISODE) view_mode = VIEW_EPISODES else: xbmcplugin.addSortMethod(self.plugin_handle, xbmcplugin.SORT_METHOD_UNSORTED) xbmcplugin.addSortMethod(self.plugin_handle, xbmcplugin.SORT_METHOD_VIDEO_TITLE) xbmcplugin.addSortMethod(self.plugin_handle, xbmcplugin.SORT_METHOD_VIDEO_YEAR) xbmcplugin.addSortMethod(self.plugin_handle, xbmcplugin.SORT_METHOD_VIDEO_RATING) xbmcplugin.addSortMethod(self.plugin_handle, xbmcplugin.SORT_METHOD_VIDEO_RUNTIME) if movies > 0: view_mode = VIEW_MOVIES elif tvshows > 0: view_mode = VIEW_TVSHOWS elif seasons > 0: view_mode = VIEW_SEASONS else: view_mode = VIEW_FOLDERS if len(title) > 0: xbmcplugin.setPluginCategory(self.plugin_handle, title) if view_mode not in [VIEW_FOLDERS]: xbmcplugin.setContent(handle=self.plugin_handle, content=view_mode) xbmcplugin.endOfDirectory(handle=self.plugin_handle) self.set_custom_view(view_mode) return True
def createRootDir(self): print "createRootDir" xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=__language__(30001)) # TODO: set category with the name of the blog # TODO: Display number of pages pageUrl = url_join(self.BASE_URL, self.URL_LIST_BLOGS) print pageUrl huitartcity.getBlogsList(pageUrl, addItemFunc=self._addDir, progressBar=None, msgFunc=None) self._end_of_directory(True)
def createRootDir(self): print "createRootDir" xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=__language__(30001)) #TODO: set category with the name of the blog #TODO: Display number of pages pageUrl = url_join(self.BASE_URL, self.URL_LIST_BLOGS) print pageUrl huitartcity.getBlogsList(pageUrl, addItemFunc=self._addDir, progressBar=None, msgFunc=None) self._end_of_directory(True)
def create_main_page(self): error = False categories = utils.call_service("get_categories") if categories is None: error = True else: for cat in categories: label = cat["metadata"]["label"] if label in ["A NOLEGGIO", "SPORT"]: continue list_item = xbmcgui.ListItem(label=label.lower().capitalize()) uri = cat["actions"][0]["uri"] page_id = uri[6:uri.find("?")] xbmcplugin.addDirectoryItem( handle=self.plugin_handle, url=utils.url_join( self.plugin_dir, "?page=%s&category_id=%s" % (label, page_id)), isFolder=True, listitem=list_item) list_item = xbmcgui.ListItem(label='Preferiti') xbmcplugin.addDirectoryItem(handle=self.plugin_handle, url=utils.url_join(self.plugin_dir, "?action=favourites"), isFolder=True, listitem=list_item) list_item = xbmcgui.ListItem(label="Cerca...") xbmcplugin.addDirectoryItem(handle=self.plugin_handle, url=utils.url_join(self.plugin_dir, "?action=search"), isFolder=True, listitem=list_item) xbmcplugin.endOfDirectory(handle=self.plugin_handle) if error: dialog_title = utils.get_local_string(30038) dialog_msg = utils.get_local_string(30042) Dialogs.show_dialog(dialog_msg, dialog_title)
def send_request(self, url, base_url, method="GET", data={}): if not url.startswith("https://"): url = utils.url_join(base_url, url) url = self.__compile_url(url) Logger.log_write("Sending " + method + " request to " + url, Logger.LOG_TIMVISION) response = self.api_endpoint.get( url, params=data) if method == "GET" else self.api_endpoint.post( url, data=data) Logger.log_write("Status Code: " + str(response.status_code), Logger.LOG_TIMVISION) if response.status_code == 200: data = response.json() Logger.log_write("Response: " + response.text, Logger.LOG_TIMVISION) if isinstance(data, list): Logger.log_write("JSON result is an array", Logger.LOG_TIMVISION) data = data[0] if data["resultCode"] == "OK": return data return None
def _addDir(self, dirInfo): """ Credit to ppic """ #u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name) ok = True paramsAddons = {} paramsAddons[self.PARAM_LISTTYPE] = self.VALUE_LIST_VIDEO paramsAddons[self.PARAM_URL] = dirInfo["url"] if dirInfo["image"] != None: icon = url_join(self.BASE_URL, dirInfo["image"]) else: icon = "DefaultVideo.png" liz = xbmcgui.ListItem(dirInfo["title"], iconImage=icon, thumbnailImage=icon) #Context Menu #if c_items : # liz.addContextMenuItems( c_items, replaceItems=True ) liz.setInfo(type="Video", infoLabels={ "title": dirInfo["title"], "plot": dirInfo["description"] }) url = self._create_param_url(paramsAddons) if url: ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=url, listitem=liz, isFolder=True) return ok