diff --git a/platformcode/keymaptools.py b/platformcode/keymaptools.py
index 6655c3dc..246f579a 100644
--- a/platformcode/keymaptools.py
+++ b/platformcode/keymaptools.py
@@ -1,18 +1,14 @@
# -*- coding: utf-8 -*-
from builtins import map
-#from builtins import str
-import sys
+import sys, xbmc, xbmcaddon, xbmcgui, base64, json
PY3 = False
if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int
from threading import Timer
-import xbmc
-import xbmcaddon
-import xbmcgui
-
from channelselector import get_thumb
from platformcode import config, logger
+import channelselector
class KeyListener(xbmcgui.WindowXMLDialog):
@@ -66,23 +62,11 @@ def set_key():
from platformcode import platformtools
import xbmc
file_xml = "special://profile/keymaps/kod.xml"
- data = '' % new_key + 'runplugin(plugin://' \
- 'plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAia2V5bWFwIiwNCiAgICAib3BlbiI6IHRydWUNCn0=)'
+ data = '' % new_key + 'runplugin(plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAia2V5bWFwIiwNCiAgICAib3BlbiI6IHRydWUNCn0=)'
filetools.write(xbmc.translatePath(file_xml), data)
platformtools.dialog_notification(config.get_localized_string(70700),config.get_localized_string(70702))
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
@@ -97,18 +81,7 @@ def delete_key():
config.set_setting("shortcut_key", '')
-
-MAIN_MENU = {
- "news": {"label": config.get_localized_string(30130), "icon": get_thumb("news.png"), "order": 0},
- "channels": {"label": config.get_localized_string(30118), "icon": get_thumb("channels.png"), "order": 1},
- "search": {"label": config.get_localized_string(70082), "icon": get_thumb("search.png"), "order": 2},
- "videolibrary": {"label": config.get_localized_string(30131), "icon": get_thumb("videolibrary.png"), "order": 3},
- "kodfavorites": {"label": config.get_localized_string(70527), "icon": get_thumb("mylink.png"), "order": 4},
- "favorites": {"label": config.get_localized_string(30102), "icon": get_thumb("favorites.png"), "order": 5},
- "downloads": {"label": config.get_localized_string(60332), "icon": get_thumb("downloads.png"), "order": 6},
- "settings": {"label": config.get_localized_string(60333), "icon": get_thumb("setting_0.png"), "order": 7}
-}
-
+MAIN_MENU = channelselector.getmainlist()
class Main(xbmcgui.WindowXMLDialog):
def __init__(self, *args, **kwargs):
@@ -119,50 +92,27 @@ class Main(xbmcgui.WindowXMLDialog):
if config.get_platform(True)['num_version'] < 18:
self.setCoordinateResolution(2)
- for menuentry in list(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"]))
+ for menuentry in MAIN_MENU:
+ item = xbmcgui.ListItem(menuentry.title)
+ item.setProperty("thumb", menuentry.thumbnail)
+ action = {"channel" : menuentry.channel, "action" : menuentry.action}
+ item.setProperty("action", base64.b64encode(json.dumps(action).encode()))
self.items.append(item)
- self.items.sort(key=lambda it: it.getProperty("order"))
self.getControl(32500).addItems(self.items)
self.setFocusId(32500)
def onClick(self, control_id):
if control_id == 32500:
- identifier = self.getControl(32500).getSelectedItem().getProperty("identifier")
- if identifier == "news":
- xbmc.executebuiltin('Dialog.Close(all,true)')
- xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJuZXdzIg0KfQ==")')
- elif identifier == "channels":
- xbmc.executebuiltin('Dialog.Close(all,true)')
- xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAiZ2V0Y2hhbm5lbHR5cGVzIiwgDQogICAgImNoYW5uZWwiOiAiY2hhbm5lbHNlbGVjdG9yIg0KfQ==")')
- elif identifier == "search":
- xbmc.executebuiltin('Dialog.Close(all,true)')
- xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJzZWFyY2giDQp9")')
- elif identifier == "videolibrary":
- xbmc.executebuiltin('Dialog.Close(all,true)')
- xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJ2aWRlb2xpYnJhcnkiDQp9")')
- elif identifier == "favorites":
- xbmc.executebuiltin('Dialog.Close(all,true)')
- xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJmYXZvcml0ZXMiDQp9")')
- elif identifier == "kodfavorites":
- xbmc.executebuiltin('Dialog.Close(all,true)')
- xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJrb2RmYXZvcml0ZXMiDQp9")')
- elif identifier == "downloads":
- xbmc.executebuiltin('Dialog.Close(all,true)')
- xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJkb3dubG9hZHMiDQp9")')
- elif identifier == "settings":
- xbmc.executebuiltin('Dialog.Close(all,true)')
- xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJzZXR0aW5nIg0KfQ==")')
+ action = self.getControl(32500).getSelectedItem().getProperty("action")
+ xbmc.executebuiltin('Dialog.Close(all,true)')
+ xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.kod/?' + action + '")')
+
def onAction(self, action):
# exit
if action.getId() in [xbmcgui.ACTION_PREVIOUS_MENU, xbmcgui.ACTION_NAV_BACK]:
- # main.close()
xbmc.executebuiltin('Dialog.Close(all,true)')
if action.getId() == xbmcgui.ACTION_CONTEXT_MENU: