From d3efd3bdc39a89e6400c50b72f829c38b9011cb5 Mon Sep 17 00:00:00 2001 From: alfa_addon_10 Date: Mon, 4 Sep 2017 16:57:33 +0200 Subject: [PATCH 01/21] same domain --- plugin.video.alfa/channels/seriesblanco.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin.video.alfa/channels/seriesblanco.py b/plugin.video.alfa/channels/seriesblanco.py index e4ba57cc..5e6fe2e0 100644 --- a/plugin.video.alfa/channels/seriesblanco.py +++ b/plugin.video.alfa/channels/seriesblanco.py @@ -11,7 +11,7 @@ from core import servertools from core.item import Item from platformcode import config, logger -HOST = "http://seriesblanco.com/" +HOST = "https://seriesblanco.com/" IDIOMAS = {'es': 'Español', 'en': 'Inglés', 'la': 'Latino', 'vo': 'VO', 'vos': 'VOS', 'vosi': 'VOSI', 'otro': 'OVOS'} list_idiomas = IDIOMAS.values() CALIDADES = ['SD', 'HDiTunes', 'Micro-HD-720p', 'Micro-HD-1080p', '1080p', '720p'] @@ -40,7 +40,7 @@ def mainlist(item): itemlist.append(Item(channel=item.channel, title="Series por género", action="generos", url=HOST, thumbnail=thumb_series)) itemlist.append( - Item(channel=item.channel, title="Buscar...", action="search", url="https://seriesblanco.com/finder.php", + Item(channel=item.channel, title="Buscar...", action="search", url=urlparse.urljoin(HOST, "finder.php"), thumbnail=thumb_buscar)) itemlist = filtertools.show_option(itemlist, item.channel, list_idiomas, CALIDADES) From 9d000678c7b737bcd50062f7ec8068a5aa06d4cd Mon Sep 17 00:00:00 2001 From: alfa_addon_10 Date: Tue, 5 Sep 2017 09:31:55 +0200 Subject: [PATCH 02/21] reordered if --- plugin.video.alfa/platformcode/launcher.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugin.video.alfa/platformcode/launcher.py b/plugin.video.alfa/platformcode/launcher.py index 89f5a4ee..96c40bdb 100755 --- a/plugin.video.alfa/platformcode/launcher.py +++ b/plugin.video.alfa/platformcode/launcher.py @@ -42,17 +42,13 @@ def run(item=None): logger.info(item.tostring()) try: - if item.action == "editor_keymap": - from platformcode import editor_keymap - return editor_keymap.start() - # If item has no action, stops here if item.action == "": logger.info("Item sin accion") return # Action for main menu in channelselector - if item.action == "getmainlist": + elif item.action == "getmainlist": import channelselector # # Check for updates only on first screen @@ -124,6 +120,10 @@ def run(item=None): play_from_library(item) return + elif item.action == "editor_keymap": + from platformcode import editor_keymap + return editor_keymap.start() + # Action in certain channel specified in "action" and "channel" parameters else: From 52fc5d975dcd1670c64f9671a6af54ba10c8a531 Mon Sep 17 00:00:00 2001 From: alfa_addon_10 Date: Tue, 5 Sep 2017 16:28:08 +0200 Subject: [PATCH 03/21] fixes --- plugin.video.alfa/channels/minimenu.py | 92 ---- .../platformcode/editor_keymap.py | 73 --- plugin.video.alfa/platformcode/keymaptools.py | 180 +++++++ plugin.video.alfa/platformcode/launcher.py | 9 +- plugin.video.alfa/resources/settings.xml | 2 +- ...ipt-shortcut-menu.xml => ShortCutMenu.xml} | 458 +++++++++--------- .../media/{Shorcut => Shortcut}/button-fo.png | Bin .../media/{Shorcut => Shortcut}/close.png | Bin .../dialog-bg-solid-white.png | Bin .../{Shorcut => Shortcut}/dialog-bg-solid.png | Bin .../media/{Shorcut => Shortcut}/logo.png | Bin .../media/{Shorcut => Shortcut}/white.png | Bin .../media/{Shorcut => Shortcut}/white70.png | Bin 13 files changed, 416 insertions(+), 398 deletions(-) delete mode 100755 plugin.video.alfa/channels/minimenu.py delete mode 100755 plugin.video.alfa/platformcode/editor_keymap.py create mode 100644 plugin.video.alfa/platformcode/keymaptools.py rename plugin.video.alfa/resources/skins/Default/720p/{script-shortcut-menu.xml => ShortCutMenu.xml} (82%) mode change 100755 => 100644 rename plugin.video.alfa/resources/skins/Default/media/{Shorcut => Shortcut}/button-fo.png (100%) mode change 100755 => 100644 rename plugin.video.alfa/resources/skins/Default/media/{Shorcut => Shortcut}/close.png (100%) mode change 100755 => 100644 rename plugin.video.alfa/resources/skins/Default/media/{Shorcut => Shortcut}/dialog-bg-solid-white.png (100%) mode change 100755 => 100644 rename plugin.video.alfa/resources/skins/Default/media/{Shorcut => Shortcut}/dialog-bg-solid.png (100%) mode change 100755 => 100644 rename plugin.video.alfa/resources/skins/Default/media/{Shorcut => Shortcut}/logo.png (100%) mode change 100755 => 100644 rename plugin.video.alfa/resources/skins/Default/media/{Shorcut => Shortcut}/white.png (100%) mode change 100755 => 100644 rename plugin.video.alfa/resources/skins/Default/media/{Shorcut => Shortcut}/white70.png (100%) mode change 100755 => 100644 diff --git a/plugin.video.alfa/channels/minimenu.py b/plugin.video.alfa/channels/minimenu.py deleted file mode 100755 index 1cdd3af9..00000000 --- a/plugin.video.alfa/channels/minimenu.py +++ /dev/null @@ -1,92 +0,0 @@ -# -*- coding: utf-8 -*- -#------------------------------------------------------------ -# XBMC Plugin -#------------------------------------------------------------ - -import xbmcgui -import xbmc - -from platformcode import config -from core import filetools - -main = None - - -MAIN_MENU = { - "news" : {"label" : "Novedades", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_news.png"), "order": 0}, - "channels" : {"label" : "Canales", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_channels.png"), "order": 1}, - "search" : {"label" : "Buscador", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_search.png"), "order": 2}, - "favorites" : {"label" : "Favoritos", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_favorites.png"), "order": 3}, - "videolibrary" : {"label" : "Videoteca", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_videolibrary.png"), "order": 4}, - "downloads" : {"label" : "Descargas", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_downloads.png"), "order": 5}, - "settings" : {"label" : "Configuración", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_setting_0.png"), "order": 6}, - } - - - -class Main(xbmcgui.WindowXMLDialog): - - def __init__( self, *args, **kwargs ): - self.items = [] - self.open = kwargs.get("open") - - def onInit(self): - self.setCoordinateResolution(2) - - - if self.open: - for menuentry in MAIN_MENU.keys(): - item = xbmcgui.ListItem(MAIN_MENU[menuentry]["label"]) - item.setProperty("thumb",str(MAIN_MENU[menuentry]["icon"])) - item.setProperty("identifier",str(menuentry)) - item.setProperty("order", str(MAIN_MENU[menuentry]["order"])) - self.items.append(item) - - self.items.sort(key=lambda it:int(it.getProperty("order"))) - self.getControl(32500).addItems(self.items) - self.setFocusId(32500) - self.open = False - - def onClick(self,controlId): - if controlId == 32500: - identifier = self.getControl(32500).getSelectedItem().getProperty("identifier") - if identifier == "news": - self.close() - xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJuZXdzIg0KfQ==")') - elif identifier == "channels": - self.close() - xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAiZ2V0Y2hhbm5lbHR5cGVzIiwgDQogICAgImNoYW5uZWwiOiAiY2hhbm5lbHNlbGVjdG9yIg0KfQ==")') - elif identifier == "search": - self.close() - xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJzZWFyY2giDQp9")') - elif identifier == "favorites": - self.close() - xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJmYXZvcml0ZXMiDQp9")') - elif identifier == "videolibrary": - self.close() - xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJ2aWRlb2xpYnJhcnkiDQp9")') - elif identifier == "downloads": - self.close() - xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJkb3dubG9hZHMiDQp9")') - elif identifier == "settings": - self.close() - xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJzZXR0aW5nIg0KfQ==")') - - - - def onAction(self,action): - #exit - global main - if action.getId() == 92 or action.getId() == 10: - main.close() - del main - if action.getId() == 117: - config.open_settings() - - -def start(item): - global main - main = Main('script-shortcut-menu.xml',config.get_runtime_path(),open=True) - main.doModal() - - diff --git a/plugin.video.alfa/platformcode/editor_keymap.py b/plugin.video.alfa/platformcode/editor_keymap.py deleted file mode 100755 index 4c59b4d4..00000000 --- a/plugin.video.alfa/platformcode/editor_keymap.py +++ /dev/null @@ -1,73 +0,0 @@ -# -*- coding: utf-8 -*- - -import xbmcgui -import xbmcaddon -from platformcode import config -from core import filetools -from threading import Timer - -class KeyListener(xbmcgui.WindowXMLDialog): - TIMEOUT = 10 - - def __new__(cls): - gui_api = tuple(map(int, xbmcaddon.Addon('xbmc.gui').getAddonInfo('version').split('.'))) - file_name = "DialogNotification.xml" if gui_api >= (5, 11, 0) else "DialogKaiToast.xml" - return super(KeyListener, cls).__new__(cls, file_name, "") - - def __init__(self): - self.key = None - - def onInit(self): - try: - self.getControl(401).addLabel("Presiona la tecla a usar para abrir la ventana") - self.getControl(402).addLabel("Tienes %s segundos" % self.TIMEOUT) - except AttributeError: - self.getControl(401).setLabel("Presiona la tecla a usar para abrir la ventana") - self.getControl(402).setLabel("Tienes %s segundos" % self.TIMEOUT) - - self.getControl(400).setImage(filetools.join(config.get_runtime_path(),"resources","images","matchcenter","matchcenter.png")) - - def onAction(self, action): - code = action.getButtonCode() - self.key = None if code == 0 else str(code) - self.close() - - @staticmethod - def record_key(): - dialog = KeyListener() - timeout = Timer(KeyListener.TIMEOUT, dialog.close) - timeout.start() - dialog.doModal() - timeout.cancel() - key = dialog.key - del dialog - return key - - -def start(): - tecla_guardada = config.get_setting("keymap_edit", "editor_keymap") - nuevakey = KeyListener().record_key() - if nuevakey and tecla_guardada != nuevakey: - from core import filetools - from platformcode import platformtools - import xbmc - file_xml = "special://profile/keymaps/alfa.xml" - data = '' % nuevakey + 'runplugin(plugin://' \ - 'plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAic3RhcnQiLCANCiAgICAiY2hhbm5lbCI6ICJtaW5pbWVudSIsIA0KICAgICJpbmZvTGFiZWxzIjoge30NCn0=)' - filetools.write(xbmc.translatePath(file_xml), data) - platformtools.dialog_notification("Tecla guardada", "Reinicia Kodi para que se apliquen los cambios") - - from core import scrapertools - config.set_setting("keymap_edit", nuevakey, "editor_keymap") - file_idioma = filetools.join(config.get_runtime_path(), 'resources', 'language', 'Spanish', 'strings.xml') - data = filetools.read(file_idioma) - value_xml = scrapertools.find_single_match(data, '([^<]+)<') - if "tecla" in value_xml: - data = data.replace(value_xml, 'Cambiar tecla/botón para abrir la ventana (Guardada: %s)' % nuevakey) - elif "key" in value_xml: - data = data.replace(value_xml, 'Change key/button to open the window (Saved: %s)' % nuevakey) - else: - data = data.replace(value_xml, 'Cambiamento di chiave/pulsante per aprire la finestra (Salvato: %s)' % nuevakey) - filetools.write(file_idioma, data) - - return diff --git a/plugin.video.alfa/platformcode/keymaptools.py b/plugin.video.alfa/platformcode/keymaptools.py new file mode 100644 index 00000000..4128f8b4 --- /dev/null +++ b/plugin.video.alfa/platformcode/keymaptools.py @@ -0,0 +1,180 @@ +# -*- coding: utf-8 -*- + +from threading import Timer + +import xbmc +import xbmcaddon +import xbmcgui +from core import filetools +from platformcode import config + + +class KeyListener(xbmcgui.WindowXMLDialog): + TIMEOUT = 10 + + def __new__(cls): + gui_api = tuple(map(int, xbmcaddon.Addon('xbmc.gui').getAddonInfo('version').split('.'))) + if gui_api >= (5, 11, 0): + filenname = "DialogNotification.xml" + else: + filenname = "DialogKaiToast.xml" + return super(KeyListener, cls).__new__(cls, filenname, "") + + def __init__(self): + self.key = None + + def onInit(self): + try: + self.getControl(401).addLabel("Presiona la tecla a usar para abrir la ventana") + self.getControl(402).addLabel("Tienes %s segundos" % self.TIMEOUT) + except AttributeError: + self.getControl(401).setLabel("Presiona la tecla a usar para abrir la ventana") + self.getControl(402).setLabel("Tienes %s segundos" % self.TIMEOUT) + + def onAction(self, action): + code = action.getButtonCode() + if code == 0: + self.key = None + else: + self.key = str(code) + self.close() + + @staticmethod + def record_key(): + dialog = KeyListener() + timeout = Timer(KeyListener.TIMEOUT, dialog.close) + timeout.start() + dialog.doModal() + timeout.cancel() + key = dialog.key + del dialog + return key + + +def set_key(): + saved_key = config.get_setting("shortcut_key") + new_key = KeyListener().record_key() + + if new_key and saved_key != new_key: + from core import filetools + from platformcode import platformtools + import xbmc + file_xml = "special://profile/keymaps/alfa.xml" + data = '' % new_key + 'runplugin(plugin://' \ + 'plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAia2V5bWFwIiwNCiAgICAib3BlbiI6IHRydWUNCn0=)' + filetools.write(xbmc.translatePath(file_xml), data) + platformtools.dialog_notification("Tecla guardada", "Reinicia Kodi para que se apliquen los cambios") + + config.set_setting("shortcut_key", new_key) + # file_idioma = filetools.join(config.get_runtime_path(), 'resources', 'language', 'Spanish', 'strings.xml') + # data = filetools.read(file_idioma) + # value_xml = scrapertools.find_single_match(data, '([^<]+)<') + # if "tecla" in value_xml: + # data = data.replace(value_xml, 'Cambiar tecla/botón para abrir la ventana (Guardada: %s)' % new_key) + # elif "key" in value_xml: + # data = data.replace(value_xml, 'Change key/button to open the window (Saved: %s)' % new_key) + # else: + # data = data.replace(value_xml, + # 'Cambiamento di chiave/pulsante per aprire la finestra (Salvato: %s)' % new_key) + # filetools.write(file_idioma, data) + + return + + +MAIN_MENU = { + "news": {"label": "Novedades", + "icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default", + "thumb_news.png"), "order": 0}, + "channels": {"label": "Canales", + "icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default", + "thumb_channels.png"), "order": 1}, + "search": {"label": "Buscador", + "icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default", + "thumb_search.png"), "order": 2}, + "favorites": {"label": "Favoritos", + "icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default", + "thumb_favorites.png"), "order": 3}, + "videolibrary": {"label": "Videoteca", + "icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default", + "thumb_videolibrary.png"), "order": 4}, + "downloads": {"label": "Descargas", + "icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default", + "thumb_downloads.png"), "order": 5}, + "settings": {"label": "Configuración", + "icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default", + "thumb_setting_0.png"), "order": 6}, +} + + +class Main(xbmcgui.WindowXMLDialog): + def __init__(self, *args, **kwargs): + self.items = [] + self.open = kwargs.get("open") + + def onInit(self): + self.setCoordinateResolution(2) + + if self.open: + for menuentry in MAIN_MENU.keys(): + item = xbmcgui.ListItem(MAIN_MENU[menuentry]["label"]) + item.setProperty("thumb", str(MAIN_MENU[menuentry]["icon"])) + item.setProperty("identifier", str(menuentry)) + item.setProperty("order", str(MAIN_MENU[menuentry]["order"])) + self.items.append(item) + + self.items.sort(key=lambda it: it.getProperty("order")) + self.getControl(32500).addItems(self.items) + self.setFocusId(32500) + self.open = False + + def onClick(self, control_id): + if control_id == 32500: + identifier = self.getControl(32500).getSelectedItem().getProperty("identifier") + if identifier == "news": + self.close() + xbmc.executebuiltin( + 'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJuZXdzIg0KfQ==")') + elif identifier == "channels": + self.close() + xbmc.executebuiltin( + 'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAiZ2V0Y2hhbm5lbHR5cGVzIiwgDQogICAgImNoYW5uZWwiOiAiY2hhbm5lbHNlbGVjdG9yIg0KfQ==")') + elif identifier == "search": + self.close() + xbmc.executebuiltin( + 'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJzZWFyY2giDQp9")') + elif identifier == "favorites": + self.close() + xbmc.executebuiltin( + 'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJmYXZvcml0ZXMiDQp9")') + elif identifier == "videolibrary": + self.close() + xbmc.executebuiltin( + 'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJ2aWRlb2xpYnJhcnkiDQp9")') + elif identifier == "downloads": + self.close() + xbmc.executebuiltin( + 'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJkb3dubG9hZHMiDQp9")') + elif identifier == "settings": + self.close() + xbmc.executebuiltin( + 'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJzZXR0aW5nIg0KfQ==")') + + config.set_setting("shortcut_flag", "") + + def onAction(self, action): + # exit + if action.getId() in [xbmcgui.ACTION_PREVIOUS_MENU, xbmcgui.ACTION_NAV_BACK]: + # main.close() + self.close() + config.set_setting("shortcut_flag", "") + + if action.getId() == xbmcgui.ACTION_CONTEXT_MENU: + config.open_settings() + + +def open_shortcut_menu(): + if config.get_setting("shortcut_flag") != "open": + main = Main('ShortCutMenu.xml', config.get_runtime_path(), open=True) + config.set_setting("shortcut_flag", "open") + main.doModal() + del main diff --git a/plugin.video.alfa/platformcode/launcher.py b/plugin.video.alfa/platformcode/launcher.py index 96c40bdb..22c0da65 100755 --- a/plugin.video.alfa/platformcode/launcher.py +++ b/plugin.video.alfa/platformcode/launcher.py @@ -120,9 +120,12 @@ def run(item=None): play_from_library(item) return - elif item.action == "editor_keymap": - from platformcode import editor_keymap - return editor_keymap.start() + elif item.action == "keymap": + from platformcode import keymaptools + if item.open: + return keymaptools.open_shortcut_menu() + else: + return keymaptools.set_key() # Action in certain channel specified in "action" and "channel" parameters else: diff --git a/plugin.video.alfa/resources/settings.xml b/plugin.video.alfa/resources/settings.xml index cdf00232..71aa0073 100755 --- a/plugin.video.alfa/resources/settings.xml +++ b/plugin.video.alfa/resources/settings.xml @@ -51,6 +51,6 @@ - + diff --git a/plugin.video.alfa/resources/skins/Default/720p/script-shortcut-menu.xml b/plugin.video.alfa/resources/skins/Default/720p/ShortCutMenu.xml old mode 100755 new mode 100644 similarity index 82% rename from plugin.video.alfa/resources/skins/Default/720p/script-shortcut-menu.xml rename to plugin.video.alfa/resources/skins/Default/720p/ShortCutMenu.xml index 21cceb48..ee797825 --- a/plugin.video.alfa/resources/skins/Default/720p/script-shortcut-menu.xml +++ b/plugin.video.alfa/resources/skins/Default/720p/ShortCutMenu.xml @@ -1,229 +1,229 @@ - - - 0.52 - - 147 - 180 - - 32500 - - - - - - - - - - - 0 - 0 - 969 - 283 - Shorcut/dialog-bg-solid.png - - - 0 - 0 - 969 - 70 - Shorcut/white70.png - - - 70 - -30 - 0 - 969 - 70 - font20_title - - left - center - black - - - -1920 - -1080 - 5760 - 3240 - - - - - Action(close) - - - button overlay to avoid closing in dialog area - 0 - 0 - 969 - 283 - - - - - noop - - - 969 - 11 - 48 - 48 - 48 - 48 - - - - - - Conditional - Shorcut/close.png - Shorcut/logo.png - Shorcut/close.png - Shorcut/logo.png - Action(close) - 32500 - 32500 - - - - - -21 - 50 - 1011 - 253 - Shorcut/dialogbutton-nofo.png - - - -139 - 55 - 980 - 220 - 32501 - 61 - horizontal - 200 - 61 - Conditional - Conditional - - 2 - - 5 - 10 - 347 - 260 - Shorcut/button-nofo.png - - - 30 - 149 - 306 - 75 - Shorcut/black.png - - - 95 - 23 - 160 - 130 - $INFO[ListItem.Property(thumb)] - keep - center - - - 329 - 24 - 50 - 50 - keep - $INFO[ListItem.Overlay] - - - 25 - 146 - 300 - 74 - - text_shadow - font12 - center - center - - - - - 0.10 - - - - - - - 2 - - 340 - 245 - Shorcut/button-nofo.png - Unfocus - Focus - - - 340 - 237 - Shorcut/button-fo.png - Unfocus - - - 5 - 24 - 50 - 50 - keep - $INFO[ListItem.Overlay] - - - 23 - 149 - 298 - 75 - Shorcut/black.png - - - 95 - 23 - 160 - 130 - $INFO[ListItem.Property(thumb)] - keep - center - - - 25 - 146 - 300 - 74 - font12 - - center - center - - - - - - -122 - 280 - 972 - 15 - Shorcut/white.png - Shorcut/white.png - Shorcut/white.png - - - - - false - horizontal - 32500 - 32500 - 32500 - 32500 - Conditional - - - - - + + + 0.52 + + 147 + 180 + + 32500 + + + + + + + + + + + 0 + 0 + 969 + 283 + Shortcut/dialog-bg-solid.png + + + 0 + 0 + 969 + 70 + Shortcut/white70.png + + + 70 + -30 + 0 + 969 + 70 + font20_title + + left + center + black + + + -1920 + -1080 + 5760 + 3240 + - + - + Action(close) + + + button overlay to avoid closing in dialog area + 0 + 0 + 969 + 283 + - + - + noop + + + 969 + 11 + 48 + 48 + 48 + 48 + - + - + + Conditional + Shortcut/close.png + Shortcut/logo.png + Shortcut/close.png + Shortcut/logo.png + Action(close) + 32500 + 32500 + + + + + -21 + 50 + 1011 + 253 + Shortcut/dialogbutton-nofo.png + + + -139 + 55 + 980 + 220 + 32501 + 61 + horizontal + 200 + 61 + Conditional + Conditional + + 2 + + 5 + 10 + 347 + 260 + Shortcut/button-nofo.png + + + 30 + 149 + 306 + 75 + Shortcut/black.png + + + 95 + 23 + 160 + 130 + $INFO[ListItem.Property(thumb)] + keep + center + + + 329 + 24 + 50 + 50 + keep + $INFO[ListItem.Overlay] + + + 25 + 146 + 300 + 74 + + text_shadow + font12 + center + center + + + + + 0.10 + + + + + + + 2 + + 340 + 245 + Shortcut/button-nofo.png + Unfocus + Focus + + + 340 + 237 + Shortcut/button-fo.png + Unfocus + + + 5 + 24 + 50 + 50 + keep + $INFO[ListItem.Overlay] + + + 23 + 149 + 298 + 75 + Shortcut/black.png + + + 95 + 23 + 160 + 130 + $INFO[ListItem.Property(thumb)] + keep + center + + + 25 + 146 + 300 + 74 + font12 + + center + center + + + + + + -122 + 280 + 972 + 15 + Shortcut/white.png + Shortcut/white.png + Shortcut/white.png + - + - + false + horizontal + 32500 + 32500 + 32500 + 32500 + Conditional + + + + + diff --git a/plugin.video.alfa/resources/skins/Default/media/Shorcut/button-fo.png b/plugin.video.alfa/resources/skins/Default/media/Shortcut/button-fo.png old mode 100755 new mode 100644 similarity index 100% rename from plugin.video.alfa/resources/skins/Default/media/Shorcut/button-fo.png rename to plugin.video.alfa/resources/skins/Default/media/Shortcut/button-fo.png diff --git a/plugin.video.alfa/resources/skins/Default/media/Shorcut/close.png b/plugin.video.alfa/resources/skins/Default/media/Shortcut/close.png old mode 100755 new mode 100644 similarity index 100% rename from plugin.video.alfa/resources/skins/Default/media/Shorcut/close.png rename to plugin.video.alfa/resources/skins/Default/media/Shortcut/close.png diff --git a/plugin.video.alfa/resources/skins/Default/media/Shorcut/dialog-bg-solid-white.png b/plugin.video.alfa/resources/skins/Default/media/Shortcut/dialog-bg-solid-white.png old mode 100755 new mode 100644 similarity index 100% rename from plugin.video.alfa/resources/skins/Default/media/Shorcut/dialog-bg-solid-white.png rename to plugin.video.alfa/resources/skins/Default/media/Shortcut/dialog-bg-solid-white.png diff --git a/plugin.video.alfa/resources/skins/Default/media/Shorcut/dialog-bg-solid.png b/plugin.video.alfa/resources/skins/Default/media/Shortcut/dialog-bg-solid.png old mode 100755 new mode 100644 similarity index 100% rename from plugin.video.alfa/resources/skins/Default/media/Shorcut/dialog-bg-solid.png rename to plugin.video.alfa/resources/skins/Default/media/Shortcut/dialog-bg-solid.png diff --git a/plugin.video.alfa/resources/skins/Default/media/Shorcut/logo.png b/plugin.video.alfa/resources/skins/Default/media/Shortcut/logo.png old mode 100755 new mode 100644 similarity index 100% rename from plugin.video.alfa/resources/skins/Default/media/Shorcut/logo.png rename to plugin.video.alfa/resources/skins/Default/media/Shortcut/logo.png diff --git a/plugin.video.alfa/resources/skins/Default/media/Shorcut/white.png b/plugin.video.alfa/resources/skins/Default/media/Shortcut/white.png old mode 100755 new mode 100644 similarity index 100% rename from plugin.video.alfa/resources/skins/Default/media/Shorcut/white.png rename to plugin.video.alfa/resources/skins/Default/media/Shortcut/white.png diff --git a/plugin.video.alfa/resources/skins/Default/media/Shorcut/white70.png b/plugin.video.alfa/resources/skins/Default/media/Shortcut/white70.png old mode 100755 new mode 100644 similarity index 100% rename from plugin.video.alfa/resources/skins/Default/media/Shorcut/white70.png rename to plugin.video.alfa/resources/skins/Default/media/Shortcut/white70.png From cc0f8c10042af02726b5d02960250caf10423722 Mon Sep 17 00:00:00 2001 From: alfa_addon_10 Date: Tue, 5 Sep 2017 20:42:25 +0200 Subject: [PATCH 04/21] fix --- plugin.video.alfa/channels/jkanime.py | 98 +++++++++++++----------- plugin.video.alfa/servers/redirects.json | 60 --------------- plugin.video.alfa/servers/redirects.py | 23 ------ 3 files changed, 55 insertions(+), 126 deletions(-) delete mode 100755 plugin.video.alfa/servers/redirects.json delete mode 100755 plugin.video.alfa/servers/redirects.py diff --git a/plugin.video.alfa/channels/jkanime.py b/plugin.video.alfa/channels/jkanime.py index 523247eb..59cda535 100755 --- a/plugin.video.alfa/channels/jkanime.py +++ b/plugin.video.alfa/channels/jkanime.py @@ -3,7 +3,9 @@ import re import urlparse +from core import httptools from core import scrapertools +from core import servertools from core.item import Item from platformcode import logger @@ -11,7 +13,7 @@ from platformcode import logger def mainlist(item): logger.info() - itemlist = [] + itemlist = list() itemlist.append( Item(channel=item.channel, action="ultimos_capitulos", title="Últimos Capitulos", url="http://jkanime.net/")) itemlist.append(Item(channel=item.channel, action="ultimos", title="Últimos", url="http://jkanime.net/")) @@ -25,7 +27,7 @@ def mainlist(item): def ultimos_capitulos(item): logger.info() itemlist = [] - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data data = scrapertools.get_match(data, '
    .+?
') data = data.replace('\t', '') @@ -43,7 +45,8 @@ def ultimos_capitulos(item): logger.debug("title=[" + title + "], url=[" + url + "], thumbnail=[" + thumbnail + "]") itemlist.append( - Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail, plot=plot)) + Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail, plot=plot, + show=scrapedtitle.strip(), fulltitle=title)) return itemlist @@ -67,7 +70,7 @@ def search(item, texto): def ultimos(item): logger.info() itemlist = [] - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data data = scrapertools.get_match(data, '
    (.*?)
') patron = '([^<]+)<' @@ -90,7 +93,7 @@ def generos(item): logger.info() itemlist = [] - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data data = scrapertools.get_match(data, '
(.*?)
') patron = '
([^<]+)' @@ -114,7 +117,7 @@ def letras(item): logger.info() itemlist = [] - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data data = scrapertools.get_match(data, '
    (.*?)
') patron = '([^<]+)' @@ -138,24 +141,9 @@ def series(item): logger.info() # Descarga la pagina - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data # Extrae las entradas - ''' - - - - - - - - - - - - ''' patron = 'Resultados Siguientes') @@ -198,7 +186,7 @@ def series(item): return itemlist -def getPagesAndEpisodes(data): +def get_pages_and_episodes(data): results = re.findall('href="#pag([0-9]+)">[0-9]+ - ([0-9]+)', data) if results: return int(results[-1][0]), int(results[-1][1]) @@ -210,37 +198,30 @@ def episodios(item): itemlist = [] # Descarga la pagina - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data scrapedplot = scrapertools.get_match(data, '') scrapedthumbnail = scrapertools.find_single_match(data, '
.*?src="([^"]+)"') idserie = scrapertools.get_match(data, "ajax/pagination_episodes/(\d+)/") logger.info("idserie=" + idserie) - if " Eps" in item.extra and not "Desc" in item.extra: + if " Eps" in item.extra and "Desc" not in item.extra: caps_x = item.extra caps_x = caps_x.replace(" Eps", "") capitulos = int(caps_x) paginas = capitulos / 10 + (capitulos % 10 > 0) else: - paginas, capitulos = getPagesAndEpisodes(data) + paginas, capitulos = get_pages_and_episodes(data) logger.info("idserie=" + idserie) - for numero in range(1, paginas + 1): + for num_pag in range(1, paginas + 1): - numero_pagina = str(numero) - headers = [] - headers.append( - ["User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:16.0) Gecko/20100101 Firefox/16.0"]) - headers.append(["Referer", item.url]) - data2 = scrapertools.cache_page( - "http://jkanime.net/ajax/pagination_episodes/" + idserie + "/" + numero_pagina + "/") - logger.info("data2=" + data2) + numero_pagina = str(num_pag) + headers = {"Referer": item.url} + data2 = scrapertools.cache_page("http://jkanime.net/ajax/pagination_episodes/%s/%s/" % (idserie, numero_pagina), + headers=headers) + # logger.info("data2=" + data2) - ''' - [{"number":"1","title":"Rose of Versailles - 1"},{"number":"2","title":"Rose of Versailles - 2"},{"number":"3","title":"Rose of Versailles - 3"},{"number":"4","title":"Rose of Versailles - 4"},{"number":"5","title":"Rose of Versailles - 5"},{"number":"6","title":"Rose of Versailles - 6"},{"number":"7","title":"Rose of Versailles - 7"},{"number":"8","title":"Rose of Versailles - 8"},{"number":"9","title":"Rose of Versailles - 9"},{"number":"10","title":"Rose of Versailles - 10"}] - [{"id":"14199","title":"GetBackers - 1","number":"1","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14200","title":"GetBackers - 2","number":"2","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14201","title":"GetBackers - 3","number":"3","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14202","title":"GetBackers - 4","number":"4","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14203","title":"GetBackers - 5","number":"5","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14204","title":"GetBackers - 6","number":"6","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14205","title":"GetBackers - 7","number":"7","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14206","title":"GetBackers - 8","number":"8","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14207","title":"GetBackers - 9","number":"9","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14208","title":"GetBackers - 10","number":"10","animes_id":"122","timestamp":"2012-01-04 16:59:30"}] - ''' patron = '"number"\:"(\d+)","title"\:"([^"]+)"' matches = re.compile(patron, re.DOTALL).findall(data2) @@ -253,12 +234,12 @@ def episodios(item): logger.debug("title=[" + title + "], url=[" + url + "], thumbnail=[" + thumbnail + "]") itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail, - fanart=thumbnail, plot=plot)) + fanart=thumbnail, plot=plot, fulltitle=title)) if len(itemlist) == 0: try: - porestrenar = scrapertools.get_match(data, - 'Estad[^<]+]+>Por estrenar') + # porestrenar = scrapertools.get_match(data, + # 'Estad[^<]+]+>Por estrenar') itemlist.append(Item(channel=item.channel, action="findvideos", title="Serie por estrenar", url="", thumbnail=scrapedthumbnail, fanart=scrapedthumbnail, plot=scrapedplot, server="directo", folder=False)) @@ -266,3 +247,34 @@ def episodios(item): pass return itemlist + + +def findvideos(item): + logger.info() + + itemlist = [] + data = re.sub(r"\n|\r|\t|\s{2}|-\s", "", httptools.downloadpage(item.url).data) + + list_videos = scrapertools.find_multiple_matches(data, '