diff --git a/installer.sh b/installer.sh
index 3694263..2a1ff1b 100644
--- a/installer.sh
+++ b/installer.sh
@@ -1,9 +1,9 @@
#!/bin/bash
######### Only These two lines to edit with new version #####
-version=2.4
+version=2.5
#############################################################
-
+PLUGINPATH='/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior'
# remove old version
if [ -f /var/lib/dpkg/status ]; then
apt-ger -r enigma2-plugin-extensions-arabicsavior
@@ -15,6 +15,9 @@ fi
cd /tmp
set -e
rm -rf *ArabicSavior* > /dev/null 2>&1
+echo "Backup keymap.xml"
+echo ""
+cp -f $PLUGINPATH/keymap.xml /tmp > /dev/null 2>&1
wget https://github.com/fairbird/ArabicSavior/archive/refs/heads/main.tar.gz
if [ -f '/tmp/ArabicSavior-main.tar.gz' ]; then
if [ -f /var/lib/dpkg/status ]; then
@@ -28,6 +31,9 @@ tar -xf main.tar.gz
cp -r ArabicSavior-main/usr /
rm -rf *ArabicSavior* > /dev/null 2>&1
rm -rf *main* > /dev/null 2>&1
+echo "Restore keymap.xml"
+cp -f /tmp/keymap.xml $PLUGINPATH > /dev/null 2>&1
+echo ""
set +e
cd ..
sync
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior/plugin.py b/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior/plugin.py
index 5c1a830..689438c 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior/plugin.py
+++ b/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior/plugin.py
@@ -1,15 +1,14 @@
# -*- coding: utf-8 -*-
-from __future__ import print_function
-
+from keyids import KEYIDS
from Components.ConfigList import ConfigListScreen
-from Components.config import config, ConfigSubsection, ConfigEnableDisable, ConfigSelection, ConfigYesNo, getConfigListEntry, configfile
+from Components.config import config, ConfigSubsection, ConfigEnableDisable, ConfigSelection, ConfigYesNo, getConfigListEntry, configfile, ConfigText
from Components.Label import Label
from Plugins.Plugin import PluginDescriptor
from Screens.Screen import Screen
from Screens.MessageBox import MessageBox
from Screens.Standby import TryQuitMainloop
from Components.Pixmap import Pixmap
-from enigma import getDesktop, addFont
+from enigma import getDesktop, addFont, eActionMap, eRCInput
from Components.Sources.StaticText import StaticText
from Components.ActionMap import ActionMap
from GlobalActions import globalActionMap
@@ -27,70 +26,70 @@
PLUGINPATH = resolveFilename(SCOPE_PLUGINS, "Extensions/ArabicSavior")
def trace_error():
- import sys
- import traceback
- try:
- traceback.print_exc(file=sys.stdout)
- traceback.print_exc(file=open("/tmp/ArabicSavior.log", "a"))
- except:
- pass
+ import sys
+ import traceback
+ try:
+ traceback.print_exc(file=sys.stdout)
+ traceback.print_exc(file=open("/tmp/ArabicSavior.log", "a"))
+ except:
+ pass
def logdata(label_name = "", data = None):
- try:
- data=str(data)
- fp = open("/tmp/ArabicSavior.log", "a")
- fp.write( str(label_name) + " : " + data+"\n")
- fp.close()
- except:
- trace_error()
- pass
+ try:
+ data=str(data)
+ fp = open("/tmp/ArabicSavior.log", "a")
+ fp.write( str(label_name) + " : " + data+"\n")
+ fp.close()
+ except:
+ trace_error()
+ pass
def dellog(label_name = "", data = None):
- try:
- if os_path.exists("/tmp/ArabicSavior.log"):
- os_remove("/tmp/ArabicSavior.log")
- except:
- pass
+ try:
+ if os_path.exists("/tmp/ArabicSavior.log"):
+ os_remove("/tmp/ArabicSavior.log")
+ except:
+ pass
def DreamOS():
- if os_path.exists("/var/lib/dpkg/status"):
- return DreamOS
+ if os_path.exists("/var/lib/dpkg/status"):
+ return DreamOS
def getversioninfo():
- currversion = "1.0"
- version_file = resolveFilename(SCOPE_PLUGINS, "Extensions/ArabicSavior/version")
- if os_path.exists(version_file):
- try:
- fp = open(version_file, "r").readlines()
- for line in fp:
- if "version" in line:
- currversion = line.split("=")[1].strip()
- except:
- pass
- return (currversion)
+ currversion = "1.0"
+ version_file = resolveFilename(SCOPE_PLUGINS, "Extensions/ArabicSavior/version")
+ if os_path.exists(version_file):
+ try:
+ fp = open(version_file, "r").readlines()
+ for line in fp:
+ if "version" in line:
+ currversion = line.split("=")[1].strip()
+ except:
+ pass
+ return (currversion)
VER = getversioninfo()
GETPath = os_path.join(PLUGINPATH + "/fonts")
if os_path.exists(PLUGINPATH + "/fonts/font_default.otf"):
- try:
- DEFAULTFont = PLUGINPATH + "/fonts/font_default.otf"
- except Exception as error:
- trace_error()
+ try:
+ DEFAULTFont = PLUGINPATH + "/fonts/font_default.otf"
+ except Exception as error:
+ trace_error()
else:
- logdata("ArabicSavior: Missing DEFAULT Font")
+ logdata("ArabicSavior: Missing DEFAULT Font")
fonts = []
try:
- if os_path.exists(GETPath):
- for fontName in os_listdir(GETPath):
- fontNamePath = os_path.join(GETPath, fontName)
- if fontName.endswith(".ttf") or fontName.endswith(".otf"):
- fontName = fontName[:-4]
- fonts.append((fontNamePath, fontName))
+ if os_path.exists(GETPath):
+ for fontName in os_listdir(GETPath):
+ fontNamePath = os_path.join(GETPath, fontName)
+ if fontName.endswith(".ttf") or fontName.endswith(".otf"):
+ fontName = fontName[:-4]
+ fonts.append((fontNamePath, fontName))
except Exception as error:
- trace_error()
+ trace_error()
fonts = sorted(fonts, key=lambda x: x[1])
@@ -99,281 +98,358 @@ def getversioninfo():
config.ArabicSavior.updateonline = ConfigYesNo(default=True)
config.ArabicSavior.fonts = ConfigSelection(default=DEFAULTFont, choices=fonts)
config.ArabicSavior.keyname_enable = ConfigYesNo(default=False)
-config.ArabicSavior.keyname = ConfigSelection(default = "KEY_TEXT", choices = [
- ("KEY_TEXT", _("TEXT")),
- ("KEY_TV", _("TV")),
- ("KEY_RADIO", _("RADIO")),
- ("KEY_OK", _("OK")),
- ("KEY_HELP", _("HELP")),
- ("KEY_INFO", _("INFO")),
- ("KEY_RED", _("RED")),
- ("KEY_GREEN", _("GREEN")),
- ("KEY_BLUE", _("BLUE")),
- ("KEY_VIDEO", _("PVR")),
- ("KEY_HOMEPAGE", _("HOMEPAGE")),
- ("KEY_0", _("0")),
- ("KEY_1", _("1")),
- ("KEY_2", _("2")),
- ("KEY_3", _("3")),
- ("KEY_F1", _("f1")),
- ("KEY_F2", _("f2")),
- ("KEY_F3", _("f3"))
- ])
+config.ArabicSavior.keyname = ConfigText(default="KEY_TEXT")
FONTSTYPE = config.ArabicSavior.fonts.value
sz_w = getDesktop(0).size().width()
+class KeyCaptureScreen(Screen):
+ skin = """
+
+ """
+ def __init__(self, session):
+ Screen.__init__(self, session)
+ self["label"] = Label(_("اضغط أي زر من الريموت ..."))
+ self.key_caught = False
+ self["actions"] = ActionMap(["SetupActions", "WizardActions", "MenuActions"],
+ {
+ "cancel": self.close,
+ "ok": self.dummy,
+ "up": self.dummy,
+ "down": self.dummy,
+ "left": self.dummy,
+ "right": self.dummy
+ }, -100)
+ self.onFirstExecBegin.append(self.startHook)
+ self.onClose.append(self.stopHook)
+
+ def dummy(self):
+ return 1
+
+ def startHook(self):
+ try:
+ self.hook_slot = eActionMap.getInstance().bindAction('', -2147483648, self.keyPressed)
+ except:
+ pass
+
+ def stopHook(self):
+ try:
+ if hasattr(self, 'hook_slot'):
+ self.hook_slot = None
+ eActionMap.getInstance().unbindAction('', self.keyPressed)
+ except:
+ pass
+
+ def keyPressed(self, key, flag):
+ if flag == 1:
+ keyname = self.resolveKeyName(key)
+ if keyname:
+ if keyname in ("KEY_EXIT", "KEY_ESC"):
+ self.close(None)
+ return 1
+ if not self.key_caught:
+ self.key_caught = True
+ self.close(keyname)
+ return 1
+ return 1
+
+ def resolveKeyName(self, key):
+ try:
+ from keyids import KEYIDS
+ for name, k_id in KEYIDS.items():
+ if k_id == key:
+ return name
+ except:
+ pass
+ try:
+ rc = eRCInput.getInstance()
+ if hasattr(rc, 'getLabel'): return rc.getLabel(key)
+ if hasattr(rc, 'getKeyName'): return rc.getKeyName(key)
+ except:
+ pass
+ return None
+
+
class ArabicSaviorSetup(ConfigListScreen, Screen):
- if sz_w == 1280:
- skin="""
+ if sz_w == 1280:
+ skin="""
-
-
-
-
-
+
+
+
+
+
+
+
"""
- else:
- if DreamOS():
- skin="""
+ else:
+ if DreamOS():
+ skin="""
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
"""
- else:
- skin="""
+ else:
+ skin="""
-
-
-
-
-
-
+
+
+
+
+
+
+
+
"""
- def __init__(self, session):
- dellog()
- Screen.__init__(self, session)
- self.session = session
- self.skin = ArabicSaviorSetup.skin
- self.configChanged = False
- list = []
- ConfigListScreen.__init__(self, list)
- self["config"].list = list
- self["key_red"] = StaticText(_("الغاء"))
- self["key_green"] = StaticText(_("حفظ"))
- self["key_yellow"] = StaticText(_("تفعيل اللغة"))
- self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
- {
- "cancel": self.keyClose,
- "green": self.keySave,
- "yellow": self.activate
- }, -1)
-
- self.set_active_value = config.ArabicSavior.active.value
- self.set_keyname_value = config.ArabicSavior.keyname.value
- self.set_fonts_value = config.ArabicSavior.fonts.value
-
- self.new_version = VER
-
- self["Picture"] = Pixmap()
- self.createConfigList()
- self.onLayoutFinish.append(self.setWindowTitle)
-
- def setWindowTitle(self):
- self.setTitle("منقذ اللغة العربية إصدار %s" % VER)
- updateOnline = config.ArabicSavior.updateonline.value
- if updateOnline:
- self.checkupdates()
-
- def createConfigList(self):
- self.configChanged = True
- self.set_active = getConfigListEntry(_(":تفعيل وتعطيل المنقذ العربي"), config.ArabicSavior.active)
- self.set_updateonline = getConfigListEntry(_(":تفعيل وتعطيل خاصية التحديث المباشر"), config.ArabicSavior.updateonline)
- self.set_keyname_enable = getConfigListEntry(_(":تفعيل وتعطيل خاصية الزر السريع"), config.ArabicSavior.keyname_enable)
- self.set_keyname = getConfigListEntry(_(":إختيار الزر السريع لتفعيل المنقذ العربي"), config.ArabicSavior.keyname)
- self.set_fonts = getConfigListEntry(_(":اختيار نوع الخط"), config.ArabicSavior.fonts)
-
- list = []
- list.append(self.set_active)
- list.append(self.set_updateonline)
- list.append(self.set_keyname_enable)
- if config.ArabicSavior.keyname_enable.value:
- list.append(self.set_keyname)
- list.append(self.set_fonts)
-
- self["config"].list = list
- self["config"].l.setList(list)
- self["config"].onSelectionChanged.append(self.Picture)
-
- def Picture(self):
- try:
- cur = self["config"].getCurrent()
- if cur == self.set_fonts:
- preview = PLUGINPATH + "/images/preview/%s.png" % config.ArabicSavior.fonts.value
- preview = preview.replace(PLUGINPATH + "/fonts", "")
- if os_path.exists(preview):
- self["Picture"].instance.setPixmapFromFile(preview)
- self["Picture"].show()
- else:
- logdata("Picture preview: No preview image")
- else:
- self["Picture"].hide()
- except Exception as error:
- logdata("Picture preview:", error)
-
- def keyLeft(self):
- ConfigListScreen.keyLeft(self)
- self.Picture()
- self.createConfigList()
-
- def keyRight(self):
- ConfigListScreen.keyRight(self)
- self.createConfigList()
- self.Picture()
-
- def activate(self):
- try:
- addFont(FONTSTYPE, "ArabicFont", 100, 1)
- logdata("activate: arabic font added successfully")
- except Exception as error:
- logdata("activate:", error)
- self["key_red"].setText(_("الغاء"))
- self["key_green"].setText(_("حفظ"))
- self.setTitle("منقذ اللغة العربية إصدار %s" % VER)
-
- def keySave(self):
- for x in self["config"].list:
- x[1].save()
- configfile.save()
- try:
- addFont(FONTSTYPE, "ArabicFont", 100, 1)
- logdata("activate: arabic font added successfully")
- except Exception as error:
- logdata("activate:", error)
- try:
- if os_path.exists("/usr/lib64/enigma2/python/Plugins/Extensions/ArabicSavior/keymap.xml"):
- keymap_path = "/usr/lib64/enigma2/python/Plugins/Extensions/ArabicSavior/keymap.xml"
- else:
- keymap_path = "/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior/keymap.xml"
- keyfile = open(keymap_path, "w")
- keyfile.write('\n\t\n' % config.ArabicSavior.keyname.value)
- keyfile.close()
- except Exception as error:
- logdata("keySave keymap error:", error)
- if self.set_active_value != config.ArabicSavior.active.value or \
- self.set_fonts_value != config.ArabicSavior.fonts.value or \
- self.set_keyname_value != config.ArabicSavior.keyname.value:
- self.session.openWithCallback(self.restart, MessageBox, _("تم تغيير الإعدادات ، هل تريد إعادة تشغيل الانجيما الآن؟"))
- else:
- self.close(True)
-
- def restart(self, answer = None):
- if answer:
- self.session.open(TryQuitMainloop, 3)
- return
- self.close(True)
-
- def keyClose(self):
- for x in self["config"].list:
- x[1].cancel()
- self.close()
-
- def checkupdates(self):
- try:
- url = b"https://raw.githubusercontent.com/fairbird/ArabicSavior/main/installer.sh"
- getPage(url, timeout = 10).addCallback(self.parseData).addErrback(self.errBack)
- except Exception as error:
- trace_error()
-
- def errBack(self, error = None):
- logdata("errBack-error",error)
-
- def parseData(self, data):
- if PY3:
- data = data.decode("utf-8")
- else:
- data = data.encode("utf-8")
- if data:
- lines = data.split("\n")
- for line in lines:
- if line.startswith("version"):
- self.new_version = line.split("=")[1]
- logdata("Current VER", VER)
- logdata("New VER", self.new_version)
- if float(VER) == float(self.new_version) or float(VER)>float(self.new_version):
- logdata("Updates","No new version available")
- else :
- new_version = self.new_version
- self.session.openWithCallback(self.install, MessageBox, _("New version %s is available.\n\nDo want ot install now." % new_version), MessageBox.TYPE_YESNO)
-
- def install(self, answer = False):
- try:
- if answer:
- cmdlist = []
- cmd="wget https://raw.githubusercontent.com/fairbird/ArabicSavior/main/installer.sh -O - | /bin/sh"
- cmdlist.append(cmd)
- self.session.open(Console, title = "Installing last update, enigma will be started after install", cmdlist = cmdlist, finishedCallback = self.myCallback, closeOnSuccess=False)
- except:
- trace_error()
-
- def myCallback(self, result = None):
- return
+ def __init__(self, session):
+ dellog()
+ Screen.__init__(self, session)
+ self.session = session
+ self.skin = ArabicSaviorSetup.skin
+ self.configChanged = False
+ list = []
+ ConfigListScreen.__init__(self, list)
+ self["config"].list = list
+ self["key_red"] = StaticText(_("الغاء"))
+ self["key_green"] = StaticText(_("حفظ"))
+ self["key_yellow"] = StaticText(_("تفعيل اللغة"))
+ self["key_blue"] = StaticText("")
+ self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
+ {
+ "cancel": self.keyClose,
+ "green": self.keySave,
+ "yellow": self.activate,
+ "blue": self.captureKey,
+ }, -1)
+
+ self.set_active_value = config.ArabicSavior.active.value
+ self.set_keyname_value = config.ArabicSavior.keyname.value
+ self.set_fonts_value = config.ArabicSavior.fonts.value
+
+ self.new_version = VER
+
+ self["Picture"] = Pixmap()
+ self.createConfigList()
+ self.onLayoutFinish.append(self.setWindowTitle)
+
+ def setWindowTitle(self):
+ self.setTitle("منقذ اللغة العربية إصدار %s" % VER)
+ updateOnline = config.ArabicSavior.updateonline.value
+ if updateOnline:
+ self.checkupdates()
+
+ def createConfigList(self):
+ self.configChanged = True
+ self.set_active = getConfigListEntry(_(":تفعيل وتعطيل المنقذ العربي"), config.ArabicSavior.active)
+ self.set_updateonline = getConfigListEntry(_(":تفعيل وتعطيل خاصية التحديث المباشر"), config.ArabicSavior.updateonline)
+ self.set_keyname_enable = getConfigListEntry(_(":تفعيل وتعطيل خاصية الزر السريع"), config.ArabicSavior.keyname_enable)
+ self.set_fonts = getConfigListEntry(_(":اختيار نوع الخط"), config.ArabicSavior.fonts)
+
+ list = []
+ list.append(self.set_active)
+ list.append(self.set_updateonline)
+ list.append(self.set_keyname_enable)
+ if config.ArabicSavior.keyname_enable.value:
+ self["key_blue"].setText(_("تعيين زر السريع"))
+ else:
+ self["key_blue"] = StaticText("")
+ list.append(self.set_fonts)
+
+ self["config"].list = list
+ self["config"].l.setList(list)
+ self["config"].onSelectionChanged.append(self.Picture)
+
+ def Picture(self):
+ try:
+ cur = self["config"].getCurrent()
+ if cur == self.set_fonts:
+ preview = PLUGINPATH + "/images/preview/%s.png" % config.ArabicSavior.fonts.value
+ preview = preview.replace(PLUGINPATH + "/fonts", "")
+ if os_path.exists(preview):
+ self["Picture"].instance.setPixmapFromFile(preview)
+ self["Picture"].show()
+ else:
+ logdata("Picture preview: No preview image")
+ else:
+ self["Picture"].hide()
+ except Exception as error:
+ logdata("Picture preview:", error)
+
+ def keyLeft(self):
+ ConfigListScreen.keyLeft(self)
+ self.Picture()
+ self.createConfigList()
+
+ def keyRight(self):
+ ConfigListScreen.keyRight(self)
+ self.createConfigList()
+ self.Picture()
+
+ def captureKey(self):
+ if config.ArabicSavior.keyname_enable.value:
+ self.session.openWithCallback(self.keyCaptured, KeyCaptureScreen)
+
+ def keyCaptured(self, keyname=None):
+ if keyname:
+ config.ArabicSavior.keyname.value = keyname
+ config.ArabicSavior.keyname.save()
+ self.keySave()
+ self.createConfigList()
+
+ def activate(self):
+ try:
+ addFont(FONTSTYPE, "ArabicFont", 100, 1)
+ logdata("activate: arabic font added successfully")
+ except Exception as error:
+ logdata("activate:", error)
+ self["key_red"].setText(_("الغاء"))
+ self["key_green"].setText(_("حفظ"))
+ self.setTitle("منقذ اللغة العربية إصدار %s" % VER)
+
+ def keySave(self):
+ for x in self["config"].list:
+ x[1].save()
+ configfile.save()
+ try:
+ addFont(FONTSTYPE, "ArabicFont", 100, 1)
+ logdata("activate: arabic font added successfully")
+ except Exception as error:
+ logdata("activate:", error)
+ try:
+ if os_path.exists("/usr/lib64/enigma2/python/Plugins/Extensions/ArabicSavior/keymap.xml"):
+ keymap_path = "/usr/lib64/enigma2/python/Plugins/Extensions/ArabicSavior/keymap.xml"
+ else:
+ keymap_path = "/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior/keymap.xml"
+ keyfile = open(keymap_path, "w")
+ keyfile.write('\n\t\n\_n' % config.ArabicSavior.keyname.value)
+ keyfile.close()
+ except Exception as error:
+ logdata("keySave keymap error:", error)
+ if self.set_active_value != config.ArabicSavior.active.value or \
+ self.set_fonts_value != config.ArabicSavior.fonts.value or \
+ self.set_keyname_value != config.ArabicSavior.keyname.value:
+ self.session.openWithCallback(self.restart, MessageBox, _("تم تغيير الإعدادات \n\n هل تريد إعادة تشغيل الانجيما الآن؟"))
+ else:
+ self.close(True)
+
+ def restart(self, answer = None):
+ if answer:
+ restartEnigma(self.session, answer)
+ return
+ self.close(True)
+
+ def keyClose(self):
+ for x in self["config"].list:
+ x[1].cancel()
+ self.close()
+
+ def checkupdates(self):
+ try:
+ url = b"https://raw.githubusercontent.com/fairbird/ArabicSavior/main/installer.sh"
+ getPage(url, timeout = 10).addCallback(self.parseData).addErrback(self.errBack)
+ except Exception as error:
+ trace_error()
+
+ def errBack(self, error = None):
+ logdata("errBack-error",error)
+
+ def parseData(self, data):
+ if PY3:
+ data = data.decode("utf-8")
+ else:
+ data = data.encode("utf-8")
+ if data:
+ lines = data.split("\n")
+ for line in lines:
+ if line.startswith("version"):
+ self.new_version = line.split("=")[1]
+ logdata("Current VER", VER)
+ logdata("New VER", self.new_version)
+ if float(VER) == float(self.new_version) or float(VER)>float(self.new_version):
+ logdata("Updates","No new version available")
+ else :
+ new_version = self.new_version
+ self.session.openWithCallback(self.install, MessageBox, _("New version %s is available.\n\nDo want ot install now." % new_version), MessageBox.TYPE_YESNO)
+
+ def install(self, answer = False):
+ try:
+ if answer:
+ cmdlist = []
+ cmd="wget https://raw.githubusercontent.com/fairbird/ArabicSavior/main/installer.sh -O - | /bin/sh"
+ cmdlist.append(cmd)
+ self.session.open(Console, title = "Installing last update, enigma will be started after install", cmdlist = cmdlist, finishedCallback = self.myCallback, closeOnSuccess=False)
+ except:
+ trace_error()
+
+ def myCallback(self, result = None):
+ return
+
+
+def restartEnigma(session, answer=None):
+ if answer:
+ session.open(TryQuitMainloop, 3)
-def main(session, **kwargs):
- session.open(ArabicSaviorSetup)
def panic(session, **kwargs):
- global FONTSTYPE
- try:
- FONTSTYPE = config.ArabicSavior.fonts.value
- if FONTSTYPE not in [x[0] for x in fonts]:
- FONTSTYPE = DEFAULTFont
- config.ArabicSavior.active.value = True
- config.ArabicSavior.active.save()
- config.ArabicSavior.fonts.value = FONTSTYPE
- config.ArabicSavior.fonts.save()
- configfile.save()
- addFont(FONTSTYPE, "ArabicFont", 100, 1)
- logdata("panic: quick activation applied")
- session.open(MessageBox, _("تم تفعيل الإعدادات السريعة بنجاح"), MessageBox.TYPE_INFO, timeout=3)
- except Exception as error:
- logdata("panic:", error)
- session.open(MessageBox, _("حدث خطأ أثناء التفعيل السريع"), MessageBox.TYPE_ERROR, timeout=4)
+ global FONTSTYPE
+ try:
+ FONTSTYPE = config.ArabicSavior.fonts.value
+ if FONTSTYPE not in [x[0] for x in fonts]:
+ FONTSTYPE = DEFAULTFont
+ config.ArabicSavior.active.value = True
+ config.ArabicSavior.active.save()
+ config.ArabicSavior.fonts.value = FONTSTYPE
+ config.ArabicSavior.fonts.save()
+ configfile.save()
+ addFont(FONTSTYPE, "ArabicFont", 100, 1)
+ logdata("panic: quick activation applied")
+ session.openWithCallback(lambda answer: restartEnigma(session, answer), MessageBox, _("تم تفعيل الإعدادات السريعة بنجاح\n\n هل تريد إعادة تشغيل الانجيما الآن؟"), MessageBox.TYPE_YESNO)
+
+ except Exception as error:
+ logdata("panic:", error)
+ session.open(MessageBox, _("حدث خطأ أثناء التفعيل السريع"), MessageBox.TYPE_ERROR, timeout=4)
+
+
+def main(session, **kwargs):
+ session.open(ArabicSaviorSetup)
+
def sessionstart(reason, session=None, **kwargs):
- if reason == 0:
- if session is not None:
- if config.ArabicSavior.keyname_enable.value:
- keymap = resolveFilename(SCOPE_PLUGINS, "Extensions/ArabicSavior/keymap.xml")
- readKeymap(keymap)
- globalActionMap.actions['ArabicSavior'] = lambda: panic(session)
- if config.ArabicSavior.active.value:
- try:
- addFont(FONTSTYPE, "ArabicFont", 100, 1)
- logdata("activate: arabic font added successfully")
- except Exception as error:
- logdata("activate:", error)
+ if reason == 0:
+ if session is not None:
+ if config.ArabicSavior.keyname_enable.value:
+ keymap = resolveFilename(SCOPE_PLUGINS, "Extensions/ArabicSavior/keymap.xml")
+ readKeymap(keymap)
+ globalActionMap.actions['ArabicSavior'] = lambda: panic(session)
+ if config.ArabicSavior.active.value:
+ try:
+ addFont(FONTSTYPE, "ArabicFont", 100, 1)
+ logdata("activate: arabic font added successfully")
+ except Exception as error:
+ logdata("activate:", error)
def Plugins(**kwargs):
- list = []
- list.append(PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART], fnc=sessionstart))
- list.append(PluginDescriptor(icon = "icon.png", name = "المنقذ العربي", description = "إصلاح اللغة العربية", where = PluginDescriptor.WHERE_PLUGINMENU, fnc = main))
- list.append(PluginDescriptor(name = "ArabicSavior تفعيل سريع المنقذ العربي", description = "ArabicSavior تفعيل آخر إعدادات الخط بسرعة", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc = panic))
- return list
+ list = []
+ list.append(PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART], fnc=sessionstart))
+ list.append(PluginDescriptor(icon = "icon.png", name = "المنقذ العربي", description = "إصلاح اللغة العربية", where = PluginDescriptor.WHERE_PLUGINMENU, fnc = main))
+ list.append(PluginDescriptor(name = "ArabicSavior تفعيل سريع المنقذ العربي", description = "ArabicSavior تفعيل آخر إعدادات الخط بسرعة", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc = panic))
+ return list
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior/version b/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior/version
index c7a20a0..d304987 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior/version
+++ b/usr/lib/enigma2/python/Plugins/Extensions/ArabicSavior/version
@@ -1,3 +1,3 @@
# هذا بلجن المنقذ العربي من عمل المرحوم الدكتور محمود فرج (mfaraj57) ومن تحديثات رائد (fairbird)
# لمزيد من الدعم زوروا (www.tunisia-sat.com)
-version=2.4
+version=2.5