diff --git a/CONTROL/control b/CONTROL/control
index 8488fc21..85ed5807 100644
--- a/CONTROL/control
+++ b/CONTROL/control
@@ -1,5 +1,5 @@
Package: enigma2-plugin-extensions-linuxsat-panel
-Version: 3.0.5
+Version: 3.0.6
Description: addons panel
Section: extra
Priority: optional
diff --git a/README.md b/README.md
index c1eff867..bfe34f36 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-
+
@@ -54,7 +54,16 @@
## 🗓️ Version History
-### v3.0.5 (Current)
+### v3.0.6 (Current)
+- Security: removed --no-check-certificate from every wget install/update call
+- Hardened lsConsole and checkskin temp files against local symlink attacks
+- Fixed LCN scan (Order LCN Bouquet) always logging a false error even on success
+- Fixed possible crash/misfile reading lcndb entries with an unexpected mode
+- Fixed commits cache never actually loading (str repr vs JSON mismatch)
+- Fixed crash risk in RTL/Arabic font loading (add_skin_fonts)
+- Removed unused translate_utils.py and duplicate code
+
+### v3.0.5
- Added Commit History viewer (INFO button -> Commit History)
- LSinfo now supports 3 modes: info/about/commits
- Commit list shows date, author, message and hash
diff --git a/installer.sh b/installer.sh
index 18d7c661..952ab31b 100644
--- a/installer.sh
+++ b/installer.sh
@@ -1,7 +1,7 @@
#!/bin/bash
-version='3.0.5'
-changelog="\n--Added Commit History viewer (INFO button -> Commit History)\n--LSinfo now supports 3 modes: info/about/commits\n--Commit list shows date, author, message and hash\n--Added cache system for commits (saves to commits_cache.json)\n--Auto-refresh cache every 24 hours\n--Rate limit handling with fallback to cached data\n--Updated info.txt with clean formatting (no special chars)\n--Fixed AsyncMixin inheritance for LSinfo\n--Fixed console output for script execution (removed redirections)\n--Updated README.md to v3.0.5"
+version='3.0.6'
+changelog="\n--Security: removed --no-check-certificate from every wget install/update call\n--Hardened lsConsole and checkskin temp files against local symlink attacks\n--Fixed LCN scan (Order LCN Bouquet) always logging a false error\n--Fixed possible crash reading lcndb/service data with an unexpected mode\n--Fixed commits cache never actually loading (str repr vs JSON mismatch)\n--Fixed crash risk in RTL/Arabic font loading (add_skin_fonts)\n--Removed unused translate_utils.py and duplicate code\n--Updated README.md to v3.0.6"
TMPPATH=/tmp/LinuxsatPanel-install
FILEPATH=/tmp/LinuxsatPanel-main.tar.gz
@@ -87,7 +87,7 @@ install_pkg() {
install_pkg "$Packagerequests"
echo "Downloading LinuxsatPanel..."
-wget --no-check-certificate 'https://github.com/Belfagor2005/LinuxsatPanel/archive/refs/heads/main.tar.gz' -O "$FILEPATH"
+wget 'https://github.com/Belfagor2005/LinuxsatPanel/archive/refs/heads/main.tar.gz' -O "$FILEPATH"
if [ $? -ne 0 ]; then
echo "Failed to download LinuxsatPanel package!"
cleanup
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/LCNScanner/Lcn.py b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/LCNScanner/Lcn.py
index 172e9183..dd9bc8f8 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/LCNScanner/Lcn.py
+++ b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/LCNScanner/Lcn.py
@@ -193,6 +193,9 @@ def readE2Services(self, serviceType):
refstr = '%s ORDER BY name' % (self.service_types_tv)
elif serviceType == "RADIO":
refstr = '%s ORDER BY name' % (self.service_types_radio)
+ else:
+ print("Unknown serviceType '%s', skipping." % serviceType)
+ return
ref = eServiceReference(refstr)
serviceHandler = eServiceCenter.getInstance()
servicelist = serviceHandler.list(ref)
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/LCNScanner/plugin.py b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/LCNScanner/plugin.py
index d18a9ed5..ab674ae3 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/LCNScanner/plugin.py
+++ b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/LCNScanner/plugin.py
@@ -257,6 +257,11 @@ def matchLCNsAndServices(mode, lcndb, services, duplicate, renumbers):
elif data[self.LCNS_MEDIUM] in ("A", "T"):
lcnCache = terrestrialCache
serviceLCNs = terrestrialLCNs
+ else:
+ print(
+ "[LCNScanner] Warning: Unknown medium '{}' for service '{}', skipping!".format(
+ data[self.LCNS_MEDIUM], data[self.LCNS_SERVICEREFERENCE]))
+ continue
if service in services:
if lcn in lcnCache:
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/__init__.py b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/__init__.py
index b78206a0..7e42de80 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/__init__.py
+++ b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/__init__.py
@@ -35,7 +35,7 @@
__email__ = "ekekaz@gmail.com"
__copyright__ = 'Copyright (c) 2024 Lululla'
__license__ = "GPL-v2"
-__version__ = "3.0.5"
+__version__ = "3.0.6"
def check_and_install_requests():
@@ -75,10 +75,6 @@ def check_and_install_requests():
PluginLanguagePath = 'Extensions/LinuxsatPanel/locale'
plugin_path = dirname(sys.modules[__name__].__file__)
AgentRequest = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.3'
-# used by translate_utils
-DEBUG = False
-HEADERS = {"User-Agent": AgentRequest}
-SYSTEM_DIR = plugin_path
infourl = 'https://raw.githubusercontent.com/Belfagor2005/upload/main/fill/info.txt'
abouturl = 'https://raw.githubusercontent.com/Belfagor2005/upload/main/fill/about.txt'
xmlurl = 'https://raw.githubusercontent.com/Belfagor2005/upload/main/fill/addons_2024.xml'
@@ -506,6 +502,11 @@ def add_skin_fonts():
from enigma import addFont
FNTPath = join(plugin_path, "fonts")
font_config = {
+ RT_HALIGN_RIGHT: {
+ 'regular': 'DejaVuSans.otf',
+ 'medium': 'DejaVuSans.otf',
+ 'bold': 'DejaVuSans.otf'
+ },
RT_HALIGN_LEFT: {
'regular': 'ls-regular.ttf',
'medium': 'ls-medium.ttf',
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/addons/NewOeSk.py b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/addons/NewOeSk.py
index 1f40b469..cba5c5f0 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/addons/NewOeSk.py
+++ b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/addons/NewOeSk.py
@@ -61,16 +61,6 @@ def newOE():
return boo
-patterns_to_remove = [
- r'scrollbarWidth="[^"]*"',
- r'scrollbarSliderBorderWidth="[^"]*"',
- r'textoffsets\s*="[^"]*"',
- r'secondfont\s*="[^"]*"',
- r'scrollbarBorderWidth="[^"]*"',
- r'scrollbarForegroundColor="[^"]*"',
- r'scrollbarBorderColor="[^"]*"'
-]
-
# scrollbarMode="
patterns_to_remove = [
r'scrollbarWidth="[^"]*"',
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/addons/checkskin.py b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/addons/checkskin.py
index 5b06a9b1..928a4b70 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/addons/checkskin.py
+++ b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/addons/checkskin.py
@@ -45,16 +45,21 @@
user_log = tmplog + 'my_debug.log'
+def _safe_open(path, mode):
+ """Open a fixed, predictable /tmp path for write/append without
+ following a symlink another local user may have planted there."""
+ flags = os.O_CREAT | os.O_WRONLY | os.O_NOFOLLOW
+ flags |= os.O_APPEND if 'a' in mode else os.O_TRUNC
+ fd = os.open(path, flags, 0o600)
+ if PY3:
+ return os.fdopen(fd, mode, encoding="utf-8")
+ return os.fdopen(fd, mode)
+
+
# Funzione di logging compatibile con Python 2 e 3
try:
- if PY3:
- # Python 3: usa encoding
- with open(user_log, "w", encoding="utf-8") as log_file:
- log_file.write("Log Initialized\n")
- else:
- # Python 2: no encoding parameter
- with open(user_log, "w") as log_file:
- log_file.write("Log Initialized\n")
+ with _safe_open(user_log, "w") as log_file:
+ log_file.write("Log Initialized\n")
except Exception as e:
print("Error initializing log: %s" % str(e))
@@ -63,12 +68,11 @@ def checklogskin(data):
try:
print(colorstart + str(data) + colorend) # stampa sul terminale
if PY3:
- # Python 3
- with open(user_log, "a", encoding="utf-8") as log_file:
+ with _safe_open(user_log, "a") as log_file:
log_file.write("\n:> " + str(data))
else:
# Python 2
- with open(user_log, "a") as log_file:
+ with _safe_open(user_log, "a") as log_file:
log_file.write("\n:> " + str(data).encode('utf-8'))
except Exception as e:
print("Error logging data: %s" % str(e))
@@ -202,11 +206,11 @@ def check_module_skin():
if user_skin:
user_skin = "\n" + user_skin + "\n"
if PY3:
- with open(user_skin_file, "w", encoding="utf-8") as myFile:
+ with _safe_open(user_skin_file, "w") as myFile:
checklogskin("write myFile %s" % user_skin_file)
myFile.write(user_skin)
else:
- with open(user_skin_file, "w") as myFile:
+ with _safe_open(user_skin_file, "w") as myFile:
checklogskin("write myFile %s" % user_skin_file)
myFile.write(user_skin.encode('utf-8'))
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/lsConsole.py b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/lsConsole.py
index 121d87d7..34d245f1 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/lsConsole.py
+++ b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/lsConsole.py
@@ -15,6 +15,7 @@
import sys
import codecs
import os
+import tempfile
import gettext
_ = gettext.gettext
@@ -106,6 +107,7 @@ def __init__(
self.container.dataAvail_conn = self.container.dataAvail.connect(
self.dataAvail)
self.onLayoutFinish.append(self.startRun)
+ self._scripts = []
def updateTitle(self):
self.setTitle(self.newtitle)
@@ -119,18 +121,34 @@ def execScript(self, cmd):
directly. Writing the command to a real temp script and running
that removes every one of those differences - a script file is
always interpreted by /bin/sh exactly as written.
+
+ The file is created with mkstemp (unique name, opened exclusively,
+ 0600 by default) rather than a predictable path, to avoid a local
+ symlink/race attack on the shared /tmp directory.
"""
- script = '/tmp/.lsconsole_%d.sh' % self.run
try:
- with codecs.open(script, 'w', encoding='utf-8') as f:
- f.write('#!/bin/sh\n')
- f.write(cmd + '\n')
- os.chmod(script, 0o755)
+ fd, script = tempfile.mkstemp(
+ prefix='.lsconsole_', suffix='.sh', dir='/tmp')
+ content = '#!/bin/sh\n' + cmd + '\n'
+ if not isinstance(content, bytes):
+ content = content.encode('utf-8')
+ with os.fdopen(fd, 'wb') as f:
+ f.write(content)
+ os.chmod(script, 0o700)
except (IOError, OSError) as e:
print('[Console] cannot write run script:', e)
return self.container.execute(cmd) # last-resort fallback
+ self._scripts.append(script)
return self.container.execute('/bin/sh ' + script)
+ def _cleanupScripts(self):
+ while self._scripts:
+ script = self._scripts.pop()
+ try:
+ os.remove(script)
+ except OSError:
+ pass
+
def startRun(self):
if self.showStartStopText:
self['text'].setText(_('Execution progress\n\n'))
@@ -204,6 +222,7 @@ def cancelCallback(self, ret=None):
self.container.appClosed_conn = None
self.container.dataAvail_conn = None
self.container.kill()
+ self._cleanupScripts()
self.close()
def closeConsole(self):
@@ -214,6 +233,7 @@ def closeConsole(self):
except BaseException:
self.container.appClosed_conn = None
self.container.dataAvail_conn = None
+ self._cleanupScripts()
self.close()
else:
self.show()
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/plugin.py b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/plugin.py
index a162988b..c1488c13 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/plugin.py
+++ b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/plugin.py
@@ -177,7 +177,7 @@
import io
import time
from datetime import datetime as dt
-from json import loads
+from json import loads, dumps
from re import compile, search, DOTALL
from shutil import copy2
from sys import version_info
@@ -1283,7 +1283,7 @@ def _update_confirmed(self, answer=False):
lsConsole,
"Updating Linuxsat Panel...",
cmdlist=[
- "wget -q --no-check-certificate " +
+ "wget -q " +
b64decoder(installer_url) +
" -O - | /bin/sh"],
finishedCallback=self._update_finished,
@@ -1566,7 +1566,7 @@ def __init__(self, session, name):
self.urls,
"Acherone Script Command",
"acherone_script_command.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/acherone-script/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/acherone-script/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1574,7 +1574,7 @@ def __init__(self, session, name):
self.urls,
"Advanced Screeshots",
"advanced_screeshots.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/AdvancedScreenshot/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/AdvancedScreenshot/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1582,7 +1582,7 @@ def __init__(self, session, name):
self.urls,
"Apod",
"apod.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/apod/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/apod/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1590,7 +1590,7 @@ def __init__(self, session, name):
self.urls,
"Apsattv",
"apsat.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/Apsattv/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/Apsattv/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1598,7 +1598,7 @@ def __init__(self, session, name):
self.urls,
"Archimede M3u Converter",
"archimede_m3u_converter.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/Archimede-M3UConverter/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/Archimede-M3UConverter/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1606,7 +1606,7 @@ def __init__(self, session, name):
self.urls,
"Calendar",
"calendar.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/Calendar/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/Calendar/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1614,7 +1614,7 @@ def __init__(self, session, name):
self.urls,
"DDRSS Reader",
"ddrss.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/DDRSSReader/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/DDRSSReader/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1622,7 +1622,7 @@ def __init__(self, session, name):
self.urls,
"EPGImport 99",
"epgimport_99.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/EPGImport-99/main/installer_source.sh -O - | /bin/bash")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/EPGImport-99/main/installer_source.sh -O - | /bin/bash")
add_menu_item(
menu_list,
self.titles,
@@ -1630,7 +1630,7 @@ def __init__(self, session, name):
self.urls,
"EPGImport Source",
"epgsource.png",
- "wget -q --no-check-certificate \"https://raw.githubusercontent.com/Belfagor2005/EPGImport-99/main/installer_source.sh?inline=false\" -O - | /bin/sh")
+ "wget -q \"https://raw.githubusercontent.com/Belfagor2005/EPGImport-99/main/installer_source.sh?inline=false\" -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1638,7 +1638,7 @@ def __init__(self, session, name):
self.urls,
"Filmon",
"filmon.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/Filmon/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/Filmon/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1646,7 +1646,7 @@ def __init__(self, session, name):
self.urls,
"ForecaOne",
"ForecaOne.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/ForecaOne/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/ForecaOne/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1654,7 +1654,7 @@ def __init__(self, session, name):
self.urls,
"Freearhey",
"freearhey.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/freearhey/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/freearhey/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1662,7 +1662,7 @@ def __init__(self, session, name):
self.urls,
"HasBahCa",
"hasbahca.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/HasBahCa/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/HasBahCa/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1670,7 +1670,7 @@ def __init__(self, session, name):
self.urls,
"Horoscope",
"horoscope.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/Horoscope/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/Horoscope/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1678,7 +1678,7 @@ def __init__(self, session, name):
self.urls,
"mmPicons",
"mmpicons.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/mmPicons/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/mmPicons/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1686,7 +1686,7 @@ def __init__(self, session, name):
self.urls,
"Oroscopo Italia",
"oroscopoitalia.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/oroscopo_radioitalia/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/oroscopo_radioitalia/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1694,7 +1694,7 @@ def __init__(self, session, name):
self.urls,
"Parsa Tv",
"parsatv.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/tvParsa/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/tvParsa/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1702,7 +1702,7 @@ def __init__(self, session, name):
self.urls,
"Radio80",
"radio80.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/Radio-80-s/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/Radio-80-s/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1710,7 +1710,7 @@ def __init__(self, session, name):
self.urls,
"Radio Git",
"radio_git.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/RadioGit/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/RadioGit/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1718,7 +1718,7 @@ def __init__(self, session, name):
self.urls,
"Rai Play",
"rai_play.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/RaiPlay/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/RaiPlay/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1726,7 +1726,7 @@ def __init__(self, session, name):
self.urls,
"Rsi Live",
"rsilive.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/OwnerPlugins/rsilive/main/installer.sh -O - | /bin/bash")
+ "wget -q https://raw.githubusercontent.com/OwnerPlugins/rsilive/main/installer.sh -O - | /bin/bash")
add_menu_item(
menu_list,
self.titles,
@@ -1734,7 +1734,7 @@ def __init__(self, session, name):
self.urls,
"Rss Reader",
"rss_reader.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/RSSReader/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/RSSReader/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1742,7 +1742,7 @@ def __init__(self, session, name):
self.urls,
"Scsearch",
"scsearch.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/OwnerPlugins/scsearch/main/installer.sh -O - | /bin/bash")
+ "wget -q https://raw.githubusercontent.com/OwnerPlugins/scsearch/main/installer.sh -O - | /bin/bash")
add_menu_item(
menu_list,
self.titles,
@@ -1750,7 +1750,7 @@ def __init__(self, session, name):
self.urls,
"StreamProxy",
"streamproxy.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/OwnerPlugins/StreamProxy/main/installer.sh -O - | /bin/bash")
+ "wget -q https://raw.githubusercontent.com/OwnerPlugins/StreamProxy/main/installer.sh -O - | /bin/bash")
add_menu_item(
menu_list,
self.titles,
@@ -1758,7 +1758,7 @@ def __init__(self, session, name):
self.urls,
"SlWebcams",
"slwebcams.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/OwnerPlugins/SLwebcams/main/installer.sh -O - | /bin/bash")
+ "wget -q https://raw.githubusercontent.com/OwnerPlugins/SLwebcams/main/installer.sh -O - | /bin/bash")
add_menu_item(
menu_list,
self.titles,
@@ -1766,7 +1766,7 @@ def __init__(self, session, name):
self.urls,
"Softcam Manager",
"softcam_manager.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/tvManager/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/tvManager/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1774,7 +1774,7 @@ def __init__(self, session, name):
self.urls,
"Stalker Portal Converter",
"stalker_portal_converter.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/StalkerPortalConverter/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/StalkerPortalConverter/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1782,7 +1782,7 @@ def __init__(self, session, name):
self.urls,
"Stvcl",
"stvcl.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/S.T.V.C.L-/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/S.T.V.C.L-/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1790,7 +1790,7 @@ def __init__(self, session, name):
self.urls,
"TvDream",
"tvdream.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/tvDream/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/tvDream/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1798,7 +1798,7 @@ def __init__(self, session, name):
self.urls,
"TVGarden",
"tvgarden.png",
- "wget -q --no-check-certificate \"https://raw.githubusercontent.com/Belfagor2005/TVGarden/main/installer.sh\" -O - | /bin/sh")
+ "wget -q \"https://raw.githubusercontent.com/Belfagor2005/TVGarden/main/installer.sh\" -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1806,7 +1806,7 @@ def __init__(self, session, name):
self.urls,
"TvSettings",
"tvsettings.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/tvSettings/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/tvSettings/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1814,7 +1814,7 @@ def __init__(self, session, name):
self.urls,
"TvToM3u",
"tvtom3u.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/TvToM3u/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/TvToM3u/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1822,7 +1822,7 @@ def __init__(self, session, name):
self.urls,
"Vavoo",
"vavoo.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/vavoo/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/vavoo/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1830,7 +1830,7 @@ def __init__(self, session, name):
self.urls,
"WiFi Manager",
"wifi_manager.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/WiFi-Manager/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/WiFi-Manager/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1838,7 +1838,7 @@ def __init__(self, session, name):
self.urls,
"Worldcam",
"worldcam.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/WorldCam/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/WorldCam/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1846,7 +1846,7 @@ def __init__(self, session, name):
self.urls,
"XC Forever",
"xc.png",
- "wget -q --no-check-certificate \"https://raw.githubusercontent.com/Belfagor2005/xc_plugin_forever/main/installer.sh?inline=false\" -O - | /bin/sh")
+ "wget -q \"https://raw.githubusercontent.com/Belfagor2005/xc_plugin_forever/main/installer.sh?inline=false\" -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1854,7 +1854,7 @@ def __init__(self, session, name):
self.urls,
"XXX Plugin",
"xxx_plugin.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/xxxplugin/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/Belfagor2005/xxxplugin/main/installer.sh -O - | /bin/sh")
self.initGrid(menu_list)
@@ -1928,7 +1928,7 @@ def __init__(self, session, name):
self.urls,
"CiefpBouquetUpdater",
"ciefp_bu.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpBouquetUpdater/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpBouquetUpdater/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1936,7 +1936,7 @@ def __init__(self, session, name):
self.urls,
"CiefpChannelManager",
"ciefp_cman.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpChannelManager/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpChannelManager/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1944,7 +1944,7 @@ def __init__(self, session, name):
self.urls,
"CiefpE2Converter",
"ciefp_ec.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpE2Converter/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpE2Converter/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1952,7 +1952,7 @@ def __init__(self, session, name):
self.urls,
"CiefpKingSat",
"ciefpkingsat.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpKingSat/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpKingSat/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1960,7 +1960,7 @@ def __init__(self, session, name):
self.urls,
"CiefpIptvBouquets",
"ciefp_ib.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpIPTVBouquets/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpIPTVBouquets/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1968,7 +1968,7 @@ def __init__(self, session, name):
self.urls,
"CiefpMojTvEPG",
"ciefp_mojtvepg.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpMojTvEPG/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpMojTvEPG/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1976,7 +1976,7 @@ def __init__(self, session, name):
self.urls,
"CiefpOpenDirectory",
"ciefp_opdir.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpOpenDirectories/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpOpenDirectories/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1984,7 +1984,7 @@ def __init__(self, session, name):
self.urls,
"CiefpOscamEditor",
"ciefp_oe.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpOscamEditor/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpOscamEditor/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -1992,7 +1992,7 @@ def __init__(self, session, name):
self.urls,
"CiefpParabolaCZ",
"CiefpParabolaCZ.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpParabolaCZ/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpParabolaCZ/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2000,7 +2000,7 @@ def __init__(self, session, name):
self.urls,
"CiefpRottenTomatoes",
"ciefprottentomatoes.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpRottenTomatoes/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpRottenTomatoes/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2008,7 +2008,7 @@ def __init__(self, session, name):
self.urls,
"CiefpSatelliteAnalizer",
"ciefp_satan.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpSatelliteAnalyzer/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpSatelliteAnalyzer/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2016,7 +2016,7 @@ def __init__(self, session, name):
self.urls,
"CiefpSatelliteXmlEditor",
"ciefp_xed.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpSatelliteXmlEditor/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpSatelliteXmlEditor/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2024,7 +2024,7 @@ def __init__(self, session, name):
self.urls,
"CiefpSelectSatellite",
"ciefp_ss.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpSelectSatellite/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpSelectSatellite/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2032,7 +2032,7 @@ def __init__(self, session, name):
self.urls,
"CiefpSettingsDownloader",
"ciefp_sd.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpSettingsDownloader/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpSettingsDownloader/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2040,7 +2040,7 @@ def __init__(self, session, name):
self.urls,
"CiefpSettingsStreamrelay PY2",
"ciefp_sr2.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpSettingsStreamrelayPY2/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpSettingsStreamrelayPY2/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2048,7 +2048,7 @@ def __init__(self, session, name):
self.urls,
"CiefpSettingsStreamrelay PY3",
"ciefp_sr3.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpSettingsStreamrelay/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpSettingsStreamrelay/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2056,7 +2056,7 @@ def __init__(self, session, name):
self.urls,
"CiefpSettingsT2miAbertis PLi",
"ciefp_t2mpli.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpSettingsT2miAbertisOpenPLi/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpSettingsT2miAbertisOpenPLi/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2064,7 +2064,7 @@ def __init__(self, session, name):
self.urls,
"CiefpSettingsT2miAbertis",
"ciefp_t2m.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpSettingsT2miAbertis/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpSettingsT2miAbertis/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2072,7 +2072,7 @@ def __init__(self, session, name):
self.urls,
"CiefTitloviBrowser",
"titlovibrowser.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/TitloviBrowser/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/TitloviBrowser/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2080,7 +2080,7 @@ def __init__(self, session, name):
self.urls,
"CiefpTMDBSearch",
"ciefp_tmdb.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpTMDBSearch/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpTMDBSearch/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2088,7 +2088,7 @@ def __init__(self, session, name):
self.urls,
"CiefpVibes",
"ciefp_vibes.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpVibes/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpVibes/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2096,7 +2096,7 @@ def __init__(self, session, name):
self.urls,
"CiefpWhitelistStreamrelay",
"ciefp_wls.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpWhitelistStreamrelay/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpWhitelistStreamrelay/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2104,7 +2104,7 @@ def __init__(self, session, name):
self.urls,
"CiefpsettingsMotor",
"ciefp_sm.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpsettingsMotor/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpsettingsMotor/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2112,7 +2112,7 @@ def __init__(self, session, name):
self.urls,
"CiefpsettingsPanel",
"ciefp_sp.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/CiefpsettingsPanel/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/CiefpsettingsPanel/main/installer.sh -O - | /bin/sh")
add_menu_item(
menu_list,
self.titles,
@@ -2120,7 +2120,7 @@ def __init__(self, session, name):
self.urls,
"WebCamE2PrenjSF",
"ciefp_webcam.png",
- "wget -q --no-check-certificate https://raw.githubusercontent.com/ciefp/WebCamE2PrenjSF/main/installer.sh -O - | /bin/sh")
+ "wget -q https://raw.githubusercontent.com/ciefp/WebCamE2PrenjSF/main/installer.sh -O - | /bin/sh")
self.initGrid(menu_list)
@@ -2203,7 +2203,7 @@ def __init__(self, session, name):
self.urls,
"Add Libssl Libcrypto",
"AddLibssl.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Add_Libssl1_Libcrypto1.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Add_Libssl1_Libcrypto1.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2211,7 +2211,7 @@ def __init__(self, session, name):
self.urls,
"Add Symlink Libssl",
"AddSymlink.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Symlink_Creator.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Symlink_Creator.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2219,7 +2219,7 @@ def __init__(self, session, name):
self.urls,
"Ajpanel AMAJamry",
"Ajpanel.png",
- 'wget --no-check-certificate "https://raw.githubusercontent.com/biko-73/AjPanel/main/installer.sh?inline=false" -O - | /bin/sh')
+ 'wget "https://raw.githubusercontent.com/biko-73/AjPanel/main/installer.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2227,7 +2227,7 @@ def __init__(self, session, name):
self.urls,
"Arabic Savior",
"arabicsav.png",
- 'wget --no-check-certificate "https://raw.githubusercontent.com/fairbird/ArabicSavior/main/installer.sh?inline=false" -O - | /bin/sh')
+ 'wget "https://raw.githubusercontent.com/fairbird/ArabicSavior/main/installer.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
@@ -2236,7 +2236,7 @@ def __init__(self, session, name):
self.urls,
"Biss Feed Autokey",
"BissFeedAutokey.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Bissfeedautokey.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Bissfeedautokey.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2244,7 +2244,7 @@ def __init__(self, session, name):
self.urls,
"Chocholousek Picons",
"ChocholousekPicons.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Chocholousek_picons.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Chocholousek_picons.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
@@ -2253,7 +2253,7 @@ def __init__(self, session, name):
self.urls,
"Dns Cloudfaire",
"DnsCloudfaire.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/DnsCloudflare.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/DnsCloudflare.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2261,7 +2261,7 @@ def __init__(self, session, name):
self.urls,
"Dns Google",
"DnsGoogle.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/DnsGoogle.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/DnsGoogle.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2269,7 +2269,7 @@ def __init__(self, session, name):
self.urls,
"Dns Quad9",
"DnsQuad9.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/DnsQuad9.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/DnsQuad9.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
@@ -2278,7 +2278,7 @@ def __init__(self, session, name):
self.urls,
"E2player E2-MIRROR",
"E2iPlayer.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/oe-mirrors/e2iplayer/refs/heads/python3/e2iplayer_install.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/oe-mirrors/e2iplayer/refs/heads/python3/e2iplayer_install.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2286,7 +2286,7 @@ def __init__(self, session, name):
self.urls,
"E2player BYKO-73",
"E2playerBiko-73.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/biko-73/E2IPlayer/main/installer-tar.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/biko-73/E2IPlayer/main/installer-tar.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2294,7 +2294,7 @@ def __init__(self, session, name):
self.urls,
"E2player MAXBAMBY",
"E2playerMAXBAMBY.png",
- 'wget -q --no-check-certificate "https://gitlab.com/maxbambi/e2iplayer/-/raw/master/install-e2iplayer.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://gitlab.com/maxbambi/e2iplayer/-/raw/master/install-e2iplayer.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2302,8 +2302,8 @@ def __init__(self, session, name):
self.urls,
"E2player ZADMARIO",
"E2playerZADMARIO.png",
- 'wget -q --no-check-certificate "https://gitlab.com/zadmario/e2iplayer/-/raw/master/install-e2iplayer.sh?inline=false" -O - | /bin/sh')
- # add_menu_item(menu_list, self.titles, self.pics, self.urls, "E2player XXX", "E2playerXXX.png", 'wget -q --no-check-certificate "https://gitlab.com/iptv-host-xxx/iptv-host-xxx/-/raw/master/IPTVPlayer/iptvupdate/custom/xxx.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://gitlab.com/zadmario/e2iplayer/-/raw/master/install-e2iplayer.sh?inline=false" -O - | /bin/sh')
+ # add_menu_item(menu_list, self.titles, self.pics, self.urls, "E2player XXX", "E2playerXXX.png", 'wget -q "https://gitlab.com/iptv-host-xxx/iptv-host-xxx/-/raw/master/IPTVPlayer/iptvupdate/custom/xxx.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
@@ -2312,7 +2312,7 @@ def __init__(self, session, name):
self.urls,
"EPGImport - source",
"epgsource.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/EPGImport-99/main/installer_source.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/EPGImport-99/main/installer_source.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
@@ -2321,7 +2321,7 @@ def __init__(self, session, name):
self.urls,
"History Zap Selector",
"HistoryZapSelector.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Historyzapselector_dorik.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Historyzapselector_dorik.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2329,7 +2329,7 @@ def __init__(self, session, name):
self.urls,
"Ipaudio Pro",
"ipaudio.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Ipaudiopro_1.4.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Ipaudiopro_1.4.sh?inline=false" -O - | /bin/sh')
# add_menu_item(menu_list, self.titles, self.pics, self.urls, "Ipaudio Pro", "ipaudio.png", 'wget https://raw.githubusercontent.com/biko-73/ipaudio/main/ipaudiopro.sh?inline=false" -O - | /bin/sh')
add_menu_item(
@@ -2339,7 +2339,7 @@ def __init__(self, session, name):
self.urls,
"Keys Adder",
"keysadd.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/fairbird/KeyAdder/main/installer.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/fairbird/KeyAdder/main/installer.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2347,7 +2347,7 @@ def __init__(self, session, name):
self.urls,
"Keys Update",
"keys.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Keys_Updater.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Keys_Updater.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2355,7 +2355,7 @@ def __init__(self, session, name):
self.urls,
"Levi45 Manager",
"Levi45Manager.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/levi-45/Manager/main/installer.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/levi-45/Manager/main/installer.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2363,7 +2363,7 @@ def __init__(self, session, name):
self.urls,
"Linuxsat Addons Panel",
"Linuxsat.png",
- 'wget -q --no-check-certificate https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/installer.sh -O - | /bin/sh')
+ 'wget -q https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/installer.sh -O - | /bin/sh')
add_menu_item(
menu_list,
@@ -2372,9 +2372,9 @@ def __init__(self, session, name):
self.urls,
"Mountpoints",
"Mountpoints.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Mountpoints.sh?inline=false" -O - | /bin/sh')
- # add_menu_item(menu_list, self.titles, self.pics, self.urls, "Multistalker Pro Ziko Biko", "Multistalker.png", 'wget -q --no-check-certificate "https://raw.githubusercontent.com/biko-73/Multi-Stalker/main/pro/installer.sh -O - | /bin/sh?inline=false" -O - | /bin/sh; wget -q --no-check-certificate "https://gitlab.com/hmeng80/extensions/-/raw/main/multistalker/portal/Portal_multistalker.sh?inline=false" -O - | /bin/sh')
- # add_menu_item(menu_list, self.titles, self.pics, self.urls, "Multistalker Pro Ziko", "MultistalkerPro.png", 'wget -q --no-check-certificate "https://raw.githubusercontent.com/emilnabil/multi-stalkerpro/refs/heads/main/installer.sh?inline=false" -O - | /bin/sh; wget -q --no-check-certificate "https://gitlab.com/hmeng80/extensions/-/raw/main/multistalker/portal/Portal_multistalker.sh?inline=false" | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Mountpoints.sh?inline=false" -O - | /bin/sh')
+ # add_menu_item(menu_list, self.titles, self.pics, self.urls, "Multistalker Pro Ziko Biko", "Multistalker.png", 'wget -q "https://raw.githubusercontent.com/biko-73/Multi-Stalker/main/pro/installer.sh -O - | /bin/sh?inline=false" -O - | /bin/sh; wget -q "https://gitlab.com/hmeng80/extensions/-/raw/main/multistalker/portal/Portal_multistalker.sh?inline=false" -O - | /bin/sh')
+ # add_menu_item(menu_list, self.titles, self.pics, self.urls, "Multistalker Pro Ziko", "MultistalkerPro.png", 'wget -q "https://raw.githubusercontent.com/emilnabil/multi-stalkerpro/refs/heads/main/installer.sh?inline=false" -O - | /bin/sh; wget -q "https://gitlab.com/hmeng80/extensions/-/raw/main/multistalker/portal/Portal_multistalker.sh?inline=false" | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2382,7 +2382,7 @@ def __init__(self, session, name):
self.urls,
"Multistalker Pro Ziko",
"MultistalkerPro.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/refs/heads/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/multisalker_pro12_eliesat.sh?inline=false" -O - | /bin/sh;wget -q --no-check-certificate "https://gitlab.com/hmeng80/extensions/-/raw/main/multistalker/portal/Portal_multistalker.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/refs/heads/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/multisalker_pro12_eliesat.sh?inline=false" -O - | /bin/sh;wget -q "https://gitlab.com/hmeng80/extensions/-/raw/main/multistalker/portal/Portal_multistalker.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2390,7 +2390,7 @@ def __init__(self, session, name):
self.urls,
"New VirtualKeyboard",
"NewVirtualKeyboard.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/fairbird/NewVirtualKeyBoard/main/installer.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/fairbird/NewVirtualKeyBoard/main/installer.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
@@ -2399,7 +2399,7 @@ def __init__(self, session, name):
self.urls,
"Oscam Generator LINGSAT",
"lingsat.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Oscam_srvid_generator_lyngsat.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Oscam_srvid_generator_lyngsat.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2407,7 +2407,7 @@ def __init__(self, session, name):
self.urls,
"Oscam Generator KINGOFSAT",
"kingofsat.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Oscam_srvid_generator_kingofsat.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Oscam_srvid_generator_kingofsat.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2415,7 +2415,7 @@ def __init__(self, session, name):
self.urls,
"Oscam Generator SATELINATV",
"satelinatv.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Oscam_srvid_generator_satelitnatv.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Oscam_srvid_generator_satelitnatv.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2423,7 +2423,7 @@ def __init__(self, session, name):
self.urls,
"Oscam Generator TWOJEIP",
"twojeip.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Oscam_srvid_generator_twojeip.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Oscam_srvid_generator_twojeip.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
@@ -2432,7 +2432,7 @@ def __init__(self, session, name):
self.urls,
"Quicksignal Raed",
"Quicksignal.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/fairbird/RaedQuickSignal/main/installer.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/fairbird/RaedQuickSignal/main/installer.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2440,7 +2440,7 @@ def __init__(self, session, name):
self.urls,
"WireGuard Vpn",
"WireGuard.png",
- 'wget -qO- --no-check-certificate "https://raw.githubusercontent.com/m4dhouse/Wireguard-Vpn/python-3.12/WireGuard.sh" -O - | /bin/sh')
+ 'wget -qO- "https://raw.githubusercontent.com/m4dhouse/Wireguard-Vpn/python-3.12/WireGuard.sh" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2448,7 +2448,7 @@ def __init__(self, session, name):
self.urls,
"XC Forever",
"xc.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/xc_plugin_forever/main/installer.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/xc_plugin_forever/main/installer.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2456,7 +2456,7 @@ def __init__(self, session, name):
self.urls,
"Xstreamity",
"xstreamity.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/biko-73/xstreamity/main/installer.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/biko-73/xstreamity/main/installer.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2464,9 +2464,9 @@ def __init__(self, session, name):
self.urls,
"Xtraevent",
"xtraevent.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Xtraevent.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Xtraevent.sh?inline=false" -O - | /bin/sh')
- # add_menu_item(menu_list, self.titles, self.pics, self.urls, "X-Klass", "xklass.png", 'wget -qO- --no-check-certificate "https://gitlab.com/MOHAMED_OS/dz_store/-/raw/main/XKlass/online-setup" | -O - | /bin/sh')
+ # add_menu_item(menu_list, self.titles, self.pics, self.urls, "X-Klass", "xklass.png", 'wget -qO- "https://gitlab.com/MOHAMED_OS/dz_store/-/raw/main/XKlass/online-setup" | -O - | /bin/sh')
# Adding more options without URLs
if not has_dpkg:
@@ -2497,7 +2497,7 @@ def __init__(self, session, name):
self.urls,
"Send Emm",
"SendEmm.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Emm_Sender.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Emm_Sender.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2505,7 +2505,7 @@ def __init__(self, session, name):
self.urls,
"Subsupport addon",
"SubSupportAddon.png",
- 'wget -q --no-check-certificate "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Subsupport_addon.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://raw.githubusercontent.com/Belfagor2005/LinuxsatPanel/main/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Subsupport_addon.sh?inline=false" -O - | /bin/sh')
add_menu_item(
menu_list,
self.titles,
@@ -2513,7 +2513,7 @@ def __init__(self, session, name):
self.urls,
"Transmission addon",
"transmission.png",
- 'wget -q --no-check-certificate "https://dreambox4u.com/dreamarabia/Transmission_e2/Transmission_e2.sh?inline=false" -O - | /bin/sh')
+ 'wget -q "https://dreambox4u.com/dreamarabia/Transmission_e2/Transmission_e2.sh?inline=false" -O - | /bin/sh')
if not has_dpkg:
add_menu_item(
menu_list,
@@ -2563,13 +2563,8 @@ def LcnXX(self, answer=None):
print("Starting LCN scan...")
try:
lcn_scanner_instance = LCNScanner()
- LCN = lcn_scanner_instance.lcnScan()
- print("LCN Scanner returned:", LCN)
-
- if LCN:
- self.session.open(LCN)
- else:
- print("Error: LCN scan did not return a valid screen.")
+ lcn_scanner_instance.lcnScan()
+ print("LCN scan completed.")
except Exception as e:
print("Exception during LCN scan:", e)
@@ -3371,13 +3366,8 @@ def LcnXX(self, answer=None):
print("Starting LCN scan...")
try:
lcn_scanner_instance = LCNScanner()
- LCN = lcn_scanner_instance.lcnScan()
- print("LCN Scanner returned:", LCN)
-
- if LCN:
- self.session.open(LCN)
- else:
- print("Error: LCN scan did not return a valid screen.")
+ lcn_scanner_instance.lcnScan()
+ print("LCN scan completed.")
except Exception as e:
print("Exception during LCN scan:", e)
@@ -3813,7 +3803,7 @@ def install_update(self, answer=False):
lsConsole,
"Upgrading...",
cmdlist=[
- "wget -q --no-check-certificate " +
+ "wget -q " +
b64decoder(installer_url) +
" -O - | /bin/sh"],
finishedCallback=self.myCallback,
@@ -3994,7 +3984,7 @@ def _save_commits_to_cache(self, commits):
cache_path = self._get_cache_path()
try:
with open(cache_path, "w") as f:
- f.write(str(commits))
+ f.write(dumps(commits))
return True
except BaseException:
return False
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Multistalker_pro.sh b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Multistalker_pro.sh
index 8c8afc4f..6239620b 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Multistalker_pro.sh
+++ b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/Multistalker_pro.sh
@@ -85,7 +85,7 @@ sleep 1;
if grep -qs -i 'mips' cat $CHECK ; then
echo "[ Your device is MIPS ]"
if [ "$PYTHON" = "PY2" ]; then
-wget -q "--no-check-certificate "https://raw.githubusercontent.com/emilnabil/multi-stalkerpro/main/multi-stalkerpro-py2.7_mips32el.tar.gz" -O /tmp/multi-stalkerpro-py2.7_mips32el.tar.gz
+wget -q ""https://raw.githubusercontent.com/emilnabil/multi-stalkerpro/main/multi-stalkerpro-py2.7_mips32el.tar.gz" -O /tmp/multi-stalkerpro-py2.7_mips32el.tar.gz
tar -xzf /tmp/multi-stalkerpro-py2.7_mips32el.tar.gz -C /
sleep 2;
rm -f /tmp/multi-stalkerpro-py2.7_mips32el.tar.gz
@@ -194,7 +194,7 @@ fi
elif grep -qs -i 'armv7l' cat $CHECK ; then
echo "[ Your device is armv7l ]"
if [ "$PYTHONLASTV" = "PY3" ]; then
-wget -q --no-check-certificate "https://raw.githubusercontent.com/emilnabil/multi-stalkerpro/main/multi-stalkerpro-py3.11_arm.tar.gz" -O /tmp/multi-stalkerpro-py3.11_arm.tar.gz
+wget -q "https://raw.githubusercontent.com/emilnabil/multi-stalkerpro/main/multi-stalkerpro-py3.11_arm.tar.gz" -O /tmp/multi-stalkerpro-py3.11_arm.tar.gz
tar -xzf /tmp/multi-stalkerpro-py3.11_arm.tar.gz -C /
sleep 2;
rm -f /tmp/multi-stalkerpro-py3.11_arm.tar.gz
@@ -299,7 +299,7 @@ echo ""
fi
fi
if [ "$PYTHON" = "PY2" ]; then
-wget -q --no-check-certificate "https://raw.githubusercontent.com/emilnabil/multi-stalkerpro/main/multi-stalkerpro-py2.7_arm.tar.gz" -O /tmp/multi-stalkerpro-py2.7_arm.tar.gz
+wget -q "https://raw.githubusercontent.com/emilnabil/multi-stalkerpro/main/multi-stalkerpro-py2.7_arm.tar.gz" -O /tmp/multi-stalkerpro-py2.7_arm.tar.gz
sleep 1;
tar -xzf /tmp/multi-stalkerpro-py2.7_arm.tar.gz -C /
sleep 2;
@@ -374,7 +374,7 @@ echo ""
sleep 2;
fi
echo ""
-wget -q --no-check-certificate "https://github.com/emilnabil/multi-stalkerpro/raw/refs/heads/main/icon.png" -O /$PLUGINPATH/icon.png
+wget -q "https://github.com/emilnabil/multi-stalkerpro/raw/refs/heads/main/icon.png" -O /$PLUGINPATH/icon.png
echo "#########################################################"
echo "** *"
echo "** multi-stalkerpro *"
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/multisalker_pro12_eliesat.sh b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/multisalker_pro12_eliesat.sh
index 1a18ed0d..1cca8596 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/multisalker_pro12_eliesat.sh
+++ b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/multisalker_pro12_eliesat.sh
@@ -203,7 +203,7 @@ else
#Download & install package
echo "> Downloading $plugin-$version package please wait ..."
sleep 3
- wget --show-progress -qO $temp_dir/$targz_file --no-check-certificate $url
+ wget --show-progress -qO $temp_dir/$targz_file $url
set -e
if [ -e /etc/enigma2/MultiStalkerPro.json ]; then
mv -f /etc/enigma2/MultiStalkerPro.json /tmp
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/multisalker_pro1_eliesat.sh b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/multisalker_pro1_eliesat.sh
index 008efac4..17748be4 100644
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/multisalker_pro1_eliesat.sh
+++ b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/sh/multisalker_pro1_eliesat.sh
@@ -107,7 +107,7 @@ else
echo "> Downloading $plugin-$version package please wait ..."
sleep 3s
- wget -O $package --no-check-certificate $url
+ wget -O $package $url
tar -xzf $package -C /
extract=$?
rm -rf $package > /dev/null 2>&1
diff --git a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/translate_utils.py b/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/translate_utils.py
deleted file mode 100644
index e88fd0f3..00000000
--- a/usr/lib/enigma2/python/Plugins/Extensions/LinuxsatPanel/translate_utils.py
+++ /dev/null
@@ -1,621 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: UTF-8 -*-
-# Copyright (c) @Lululla 2026
-# Google Translate API for Foreca One Weather Plugin
-
-import hashlib
-import json
-import socket
-import time
-from json import JSONDecodeError, loads
-from os import makedirs, remove
-from os.path import dirname, exists, join
-
-from urllib.error import HTTPError, URLError
-from urllib.parse import urlencode
-from urllib.request import Request, urlopen
-
-from Components.config import config
-
-from . import DEBUG, HEADERS, SYSTEM_DIR
-
-# ============================================================
-# CUSTOM CONFIGURATION
-# ============================================================
-
-# Translation API URL (can be changed if needed)
-TRANSLATE_API_URL = "https://translate.googleapis.com/translate_a/single"
-
-# Timeout for HTTP requests (in seconds)
-REQUEST_TIMEOUT = 8
-
-# Character limit for batch translation (to avoid errors)
-MAX_CHARS_PER_REQUEST = 2000
-
-# Local cache to avoid repetitive requests
-CACHE_FILE = join(SYSTEM_DIR, "translation_cache.json")
-_translation_cache = {}
-_cache_hits = 0
-_cache_misses = 0
-_cache_dirty = False # flag to know if there are changes to save
-
-# Enable logging
-ENABLE_LOGGING = True
-
-
-# ============================================================
-# CACHE PERSISTENCE
-# ============================================================
-
-
-def _ensure_cache_dir():
- """Create the directory for the cache file if it does not exist."""
- cache_dir = dirname(CACHE_FILE)
- if not exists(cache_dir):
- try:
- makedirs(cache_dir)
- except Exception as e:
- _log(f"Error creating cache directory: {e}")
-
-
-def load_cache_from_disk():
- """Load the cache from the JSON file at startup."""
- global _translation_cache
- _ensure_cache_dir()
- if exists(CACHE_FILE):
- try:
- with open(CACHE_FILE, 'r', encoding='utf-8') as f:
- _translation_cache = json.load(f)
- _log(f"Cache loaded from disk ({len(_translation_cache)} entries)")
- except Exception as e:
- _log(f"Error loading cache: {e}")
- _translation_cache = {}
- else:
- _translation_cache = {}
-
-
-def save_cache_to_disk():
- """Save the cache to disk if there are changes."""
- global _cache_dirty
- if not _cache_dirty:
- return
- _ensure_cache_dir()
- try:
- with open(CACHE_FILE, 'w', encoding='utf-8') as f:
- json.dump(_translation_cache, f, ensure_ascii=False, indent=2)
- _log(f"Cache saved to disk ({len(_translation_cache)} entries)")
- _cache_dirty = False
- except Exception as e:
- _log(f"Error saving cache: {e}")
-
-
-# ============================================================
-# UTILITY FUNCTIONS
-# ============================================================
-
-
-def _log(message):
- """Custom logging"""
- if ENABLE_LOGGING and DEBUG:
- timestamp = time.time()
- print(f"[Foreca-1-Translate][{timestamp:.2f}] {message}")
-
-
-def _get_system_language():
- """Get system language in short format"""
- try:
- lang = config.misc.language.value
- return lang.split('_')[0].lower()
- except Exception:
- lang = config.osd.language.value
- return lang.split('_')[0].lower()
-
-# print("System Language:", _get_system_language())
-
-
-def _to_unicode(text):
- """Convert any input into a Unicode string."""
- if text is None:
- return ""
-
- if isinstance(text, str):
- return text
-
- if isinstance(text, bytes):
- try:
- return text.decode("utf-8", errors="ignore")
- except Exception:
- return str(text, errors="ignore")
-
- try:
- return str(text)
- except Exception:
- return ""
-
-
-def _clean_whitespace(text):
- text_unicode = _to_unicode(text)
- while " " in text_unicode:
- text_unicode = text_unicode.replace(" ", " ")
- return text_unicode.strip()
-
-
-# ============================================================
-# ARABIC LANGUAGE DETECTION
-# ============================================================
-
-
-def _is_arabic_char(char):
- """Check if a character is Arabic"""
- try:
- code = ord(char)
- # Unicode ranges for Arabic characters
- return (
- 0x0600 <= code <= 0x06FF or
- 0x0750 <= code <= 0x077F or
- 0x08A0 <= code <= 0x08FF or
- 0xFB50 <= code <= 0xFDFF or
- 0xFE70 <= code <= 0xFEFF
- )
- except Exception:
- return False
-
-
-def _is_text_arabic(text):
- """
- Determines whether a text is predominantly Arabic.
- Returns True if more than 60% of alphabetic characters are Arabic.
- """
- text_unicode = _to_unicode(text)
- if not text_unicode:
- return False
-
- total_letters = 0
- arabic_letters = 0
-
- for char in text_unicode:
- # Consider only alphabetic characters (exclude spaces, numbers,
- # punctuation)
- if char.isalpha():
- total_letters += 1
- if _is_arabic_char(char):
- arabic_letters += 1
-
- # If there are no letters, it's not Arabic
- if total_letters == 0:
- return False
-
- # Calculate percentage
- arabic_ratio = float(arabic_letters) / float(total_letters)
-
- # Threshold to consider the text Arabic (60%)
- return arabic_ratio >= 0.6
-
-
-# ============================================================
-# CACHE AND PERFORMANCE
-# ============================================================
-
-
-def _get_cache_key(text, target_lang):
- """Generate a unique cache key using MD5 (stable across runs)"""
- # Use MD5 because it is fast and deterministic
- key_string = f"{target_lang}:{text}".encode('utf-8')
- return hashlib.md5(key_string).hexdigest()
-
-
-def _cache_translation(text, target_lang, translated):
- """Store a translation in the cache and save immediately to disk."""
- global _cache_dirty
- cache_key = _get_cache_key(text, target_lang)
- _translation_cache[cache_key] = translated
- _cache_dirty = True
- save_cache_to_disk()
- return translated
-
-
-def _get_cached_translation(text, target_lang):
- """Retrieve a translation from the cache"""
- global _cache_hits, _cache_misses
- cache_key = _get_cache_key(text, target_lang)
-
- if cache_key in _translation_cache:
- _cache_hits += 1
- return _translation_cache[cache_key]
-
- _cache_misses += 1
- return None
-
-
-def get_cache_stats():
- """Return cache statistics"""
- return {
- 'hits': _cache_hits,
- 'misses': _cache_misses,
- 'size': len(_translation_cache),
- 'hit_rate': _cache_hits / max(1, _cache_hits + _cache_misses)
- }
-
-
-def clear_cache():
- """Clear the translation cache and delete the file"""
- global _cache_hits, _cache_misses, _cache_dirty
- _translation_cache.clear()
- _cache_hits = 0
- _cache_misses = 0
- _cache_dirty = False
- if exists(CACHE_FILE):
- try:
- remove(CACHE_FILE)
- except Exception as e:
- _log(f"Error deleting cache file: {e}")
- _log("Cache cleared")
-
-
-# ============================================================
-# MAIN TRANSLATION FUNCTION
-# ============================================================
-
-def translate_text(text, target_lang=None, use_cache=True):
- """
- Translates text using the Google Translate API.
-
- Args:
- text (str): Text to translate
- target_lang (str): Target language (e.g. 'it', 'en', 'de')
- If None, uses the system language
- use_cache (bool): Whether to use the local cache
-
- Returns:
- str: Translated text or original text in case of error
- """
- start_time = time.time()
- _log(f"Target language: '{target_lang}'")
- # Input validation
- if not text:
- return ""
-
- # Convert to Unicode
- text_unicode = _to_unicode(text)
-
- # Use system language if not specified
- if target_lang is None:
- target_lang = _get_system_language()
-
- # Normalize language (ensure lowercase)
- target_lang = target_lang.lower()
-
- # If the text is already Arabic, do not translate it
- if _is_text_arabic(text_unicode):
- _log(f"Arabic text detected, not translated: '{text_unicode[:50]}...'")
- return text_unicode
-
- # Check cache if enabled
- if use_cache:
- cached = _get_cached_translation(text_unicode, target_lang)
- if cached is not None:
- _log(f"Cache HIT: '{text_unicode[:30]}...' -> '{cached[:30]}...'")
- return cached
-
- # Error handling for overly long texts
- if len(text_unicode) > MAX_CHARS_PER_REQUEST:
- _log("Text too long (" +
- str(len(text_unicode)) +
- " chars), truncated to " +
- str(MAX_CHARS_PER_REQUEST))
- text_unicode = text_unicode[:MAX_CHARS_PER_REQUEST]
-
- # Prepare the request
- params = {
- "client": "gtx", # Fake client to bypass restrictions
- "sl": "auto", # Automatic source language
- "tl": target_lang, # Target language
- "dt": "t", # Response type: translation only
- "q": text_unicode, # Text to translate
- }
-
- try:
- # Build the URL
- query_string = urlencode(params)
- url = f"{TRANSLATE_API_URL}?{query_string}"
-
- _log(f"Translating: '{text_unicode[:40]}...' -> {target_lang}")
-
- # Set timeout to avoid blocking
- socket.setdefaulttimeout(REQUEST_TIMEOUT)
-
- # Perform the request
- req = Request(url)
- for key, value in HEADERS.items():
- req.add_header(key, value)
- response = urlopen(req, timeout=REQUEST_TIMEOUT)
- raw_data = response.read()
-
- # Decode the response
- if isinstance(raw_data, bytes):
- raw_data = raw_data.decode('utf-8')
-
- # Parse JSON response
- data = loads(raw_data)
-
- # Extract the translation from the JSON structure
- translated_text = ""
- if isinstance(data, list) and data:
- # Typical structure: [[[translation, original], ...], ...]
- for item in data[0]:
- if item and isinstance(item, list) and item[0]:
- translated_text += item[0]
-
- # Clean the result
- if translated_text:
- translated_text = _clean_whitespace(translated_text)
-
- # Save to cache
- if use_cache:
- _cache_translation(text_unicode, target_lang, translated_text)
-
- elapsed = time.time() - start_time
- _log((
- f"Translation completed in {elapsed:.2f}s: '{text_unicode[:30]}...' -> "
- f"'{translated_text[:30]}...'"
- ))
-
- return translated_text
- else:
- _log(f"Empty API response for: '{text_unicode[:30]}...'")
- return text_unicode
-
- except socket.timeout:
- _log(f"TIMEOUT during translation: '{text_unicode[:30]}...'")
- return text_unicode
-
- except (URLError, HTTPError) as e:
- _log(f"HTTP error {getattr(e, 'code', 'N/A')}: {str(e)}")
- return text_unicode
-
- except JSONDecodeError as e:
- _log(f"JSON error: {str(e)}")
- return text_unicode
-
- except Exception as e:
- error_type = type(e).__name__
- _log(f"Error {error_type}: {str(e)}")
- return text_unicode
-
- finally:
- # Restore default timeout
- socket.setdefaulttimeout(None)
-
-
-# ============================================================
-# AUXILIARY FUNCTIONS FOR SPECIAL CASES
-# ============================================================
-
-
-def translate_batch(texts, target_lang=None, use_cache=True):
- """
- Translates a list of texts in batch.
- Optimized to reduce the number of HTTP requests.
-
- Args:
- texts (list): List of texts to translate
- target_lang (str): Target language
- use_cache (bool): Use cache
-
- Returns:
- list: List of translated texts
- """
- if not texts:
- return []
-
- # Use system language if not specified
- if target_lang is None:
- target_lang = _get_system_language()
- results = []
- batch_text = []
- batch_indices = []
-
- for i, text in enumerate(texts):
- text_unicode = _to_unicode(text)
-
- # Check cache
- if use_cache:
- cached = _get_cached_translation(text_unicode, target_lang)
- if cached is not None:
- results.append(cached)
- continue
-
- # If the text is Arabic, do not translate it
- if _is_text_arabic(text_unicode):
- results.append(text_unicode)
- continue
-
- # Add to batch
- batch_text.append(text_unicode)
- batch_indices.append(i)
- results.append(None) # Placeholder
-
- # If there are texts to translate in batch
- if batch_text:
- try:
- # Join texts with a special separator
- separator = u" ||| "
- combined_text = separator.join(batch_text)
-
- # Translate the batch
- combined_translated = translate_text(
- combined_text,
- target_lang,
- use_cache=False # Do not use cache for batch
- )
-
- # Split results
- if separator in combined_translated:
- translated_parts = combined_translated.split(separator)
- else:
- # Fallback: split by approximate number
- translated_parts = [combined_translated] * len(batch_text)
-
- # Update results
- for idx, translated in zip(batch_indices, translated_parts):
- results[idx] = translated
-
- # Save to cache
- if use_cache and idx < len(texts):
- text_unicode = _to_unicode(texts[idx])
- _cache_translation(text_unicode, target_lang, translated)
-
- except Exception as e:
- _log(f"Batch translation error: {str(e)}")
- # Fallback: translate individually
- for idx in batch_indices:
- if results[idx] is None and idx < len(texts):
- results[idx] = translate_text(
- texts[idx], target_lang, use_cache)
-
- # Replace None with original text
- for i in range(len(results)):
- if results[i] is None:
- results[i] = _to_unicode(texts[i])
-
- return results
-
-
-def safe_translate(text, fallback=None, **kwargs):
- """
- Safe version of translate_text that always returns a valid string.
- Args:
- text (str): Text to translate
- fallback (str): Fallback text if translation fails
- **kwargs: Additional arguments for translate_text
- Returns:
- str: Translated text, fallback or original
- """
- try:
- translated = translate_text(text, **kwargs)
- if translated and translated.strip():
- return translated
-
- # If translation is empty, use fallback
- if fallback is not None:
- return _to_unicode(fallback)
-
- return _to_unicode(text)
-
- except Exception as e:
- _log(f"Error in safe_translate: {str(e)}")
- if fallback is not None:
- return _to_unicode(fallback)
- return _to_unicode(text)
-
-
-def trans(text, target_lang=None):
- """
- Simplified translation function for single strings.
- Uses cache and translate_text.
- """
- if target_lang is None:
- target_lang = _get_system_language()
- target_lang = target_lang.lower()
-
- if not text or not isinstance(text, str):
- return text or ""
-
- text = text.strip()
- if not text:
- return ""
-
- # Do not translate Arabic text
- if _is_text_arabic(text):
- return text
-
- # Check cache using full key (language + hash)
- cached = _get_cached_translation(text, target_lang)
- if cached is not None:
- return cached
-
- # Translate (translate_text already handles internal caching if
- # use_cache=True)
- translated = translate_text(text, target_lang, use_cache=True)
- if translated and translated != text:
- return translated
- return text
-
-
-def translate_batch_strings(texts, target_lang=None):
- """
- High-level batch translation for a list of strings.
- """
- if not texts:
- return []
- valid_texts = [str(t).strip() for t in texts if t and str(t).strip()]
- if not valid_texts:
- return []
-
- # Use the existing cache via translate_batch
- return translate_batch(valid_texts, target_lang, use_cache=True)
-
-
-# ============================================================
-# TEST FUNCTION (for debugging)
-# ============================================================
-
-
-def test_translation():
- """Test function to verify functionality"""
- test_cases = [
- ("Hello world", "it", "Ciao mondo"),
- ("Weather forecast", "es", "Pronóstico del tiempo"),
- ("Temperature", "fr", "Température"),
- ]
- if DEBUG:
- print("=" * 60)
- print("Foreca One TRANSLATION TEST")
- print("=" * 60)
-
- all_passed = True
-
- for original, lang, expected in test_cases:
- result = translate_text(original, lang)
-
- if result and result.lower() == expected.lower():
- status = "✓ PASS"
- else:
- status = "✗ FAIL"
- all_passed = False
- if DEBUG:
- print(
- f"{status}: '{original}' -> '{result}' (expected: '{expected}')")
- if DEBUG:
- print("=" * 60)
- stats = get_cache_stats()
- print((
- f"Cache statistics: {stats['hits']} hits, {stats['misses']} misses, "
- f"rate: {stats['hit_rate']:.1%}"
- ))
- print("=" * 60)
-
- return all_passed
-
-
-# ============================================================
-# INITIALIZATION
-# ============================================================
-
-# Load cache at module startup
-load_cache_from_disk()
-
-if __name__ == "__main__":
- # Test mode when run directly
- if DEBUG:
- print("Google Translate API for Foreca")
- print("Enhanced custom version")
-
- if test_translation():
- print("✓ All tests passed!")
- else:
- print("✗ Some tests failed")
-else:
- # Imported as a module
- _log("Foreca One translation module loaded")
- _log(f"System language: {_get_system_language()}")