def _post_process(self, item, prepend_date=False, mixed_list=False): if not item: return name = g.decode_py2(item.get("info", {}).get("title")) if not name: g.log("Item has no title: {}".format(item), "error") if (not item["info"]["mediatype"] == "list" and not self.hide_unaired and not self.is_aired(item["info"])): name = g.color_string(tools.italic_string(name), "red") if item["info"]["mediatype"] == "episode": if self.title_appends_mixed and mixed_list: name = self._handle_episode_title_appending( name, item, self.title_appends_mixed) elif self.title_appends_general and not mixed_list: name = self._handle_episode_title_appending( name, item, self.title_appends_general) if item["info"][ "mediatype"] == "list" and self.list_title_appends == "1": name += " - {}".format( g.color_string(g.encode_py2(item["info"]["username"]))) if not item["info"]["mediatype"] == "list" and prepend_date: release_day = tools.parse_datetime(item["info"]["aired"][:10]) if release_day: release_day = release_day.strftime("%d %b") name = "[{}] {}".format(release_day, g.encode_py2(name)) item.update({"name": name}) item["info"]["title"] = name return item
def italic_string(text): """ Ease of use method to return a italic like ready string for display in Kodi :param text: Text to display in italics :type text: str :return: Formatted string :rtype: str """ from resources.lib.modules.globals import g return "[I]{}[/I]".format(g.decode_py2(text))
def shows_search(self, query=None): if not query: k = xbmc.Keyboard("", g.get_language_string(30013)) k.doModal() query = k.getText() if k.isConfirmed() else None del k if not query: g.cancel_directory() return query = g.decode_py2(query) if g.get_bool_setting("searchHistory"): SearchHistory().add_search_history("tvshow", query) query = g.deaccent_string(g.display_string(query)) self.shows_search_results(query)
def deploy_init(): folders = ["providerModules/", "providers/"] root_init_path = os.path.join(g.ADDON_USERDATA_PATH, "__init__ .py") if not xbmcvfs.exists(g.ADDON_USERDATA_PATH): tools.makedirs(g.ADDON_USERDATA_PATH, exist_ok=True) if not xbmcvfs.exists(root_init_path): xbmcvfs.File(root_init_path, "a").close() for i in folders: folder_path = os.path.join(g.ADDON_USERDATA_PATH, i) tools.makedirs(folder_path, exist_ok=True) xbmcvfs.File(os.path.join(folder_path, "__init__.py"), "a").close() provider_init = xbmcvfs.File( os.path.join(g.ADDON_USERDATA_PATH, "providers", "__init__.py"), "w+") provider_init.write( str(base64.b64decode(g.decode_py2(INIT_BASE64)).decode("utf-8"))) provider_init.close()