dm920 - Python3 - openPLi (homebuild)

pfdfak.kfnsif

Registered
Messages
59
- blindscan
to prevent a blind search from crashing, replace this file when compiling the image, and everything will work.. Many thanks to Dorik1972 for the hint.



class List(Source):
from Components.Sources.Source import Source
from Components.Element import cached

"""The datasource of a listbox. Currently, the format depends on the used converter. So
if you put a simple string list in here, you need to use a StringList converter, if you are
using a "multi content list styled"-list, you need to use the StaticMultiList converter, and
setup the "fonts".

This has been done so another converter could convert the list to a different format, for example
to generate HTML."""

def __init__(self, list=[], enableWrapAround=False, item_height=25, fonts=[]):
Source.__init__(self)
self.__list = list
self.onSelectionChanged = []
self.onListUpdated = []
self.item_height = item_height
self.fonts = fonts
self.disable_callbacks = False
self.enableWrapAround = enableWrapAround
self.__current = None
self.__index = None
self.connectedGuiElement = None
self.__style = "default" # Style might be an optional string which can be used to define different visualisations in the skin.

def setList(self, list):
self.__list = list
self.changed((self.CHANGED_ALL,))
self.listUpdated()

list = property(lambda self: self.__list, setList)

def entry_changed(self, index):
if not self.disable_callbacks:
self.downstream_elements.entry_changed(index)

def modifyEntry(self, index, data):
self.__list[index] = data
self.entry_changed(index)

def count(self):
return len(self.__list)

def setConnectedGuiElement(self, guiElement):
self.connectedGuiElement = guiElement
index = guiElement.instance.getCurrentIndex()
self.__current = self.list[index]
self.__index = index
self.changed((self.CHANGED_ALL,))

def selectionChanged(self, index):
if self.disable_callbacks:
return

# update all non-master targets
for x in self.downstream_elements:
if x is not self.master:
x.index = index

for x in self.onSelectionChanged:
x()

@cached
def getCurrent(self):
if self.master:
if hasattr(self.master, "current"):
return self.master.current
return self.__current

current = property(getCurrent)

def setIndex(self, index):
if self.master is not None:
if hasattr(self.master, "index"):
self.master.index = index
else:
self.__index = index
self.selectionChanged(index)
if self.connectedGuiElement is not None:
self.connectedGuiElement.moveSelection(index)


@cached
def getIndex(self):
return self.master.index if self.master is not None and hasattr(self.master, "index") else self.__index

setCurrentIndex = setIndex

index = property(getIndex, setIndex)

def selectNext(self):
if self.getIndex() + 1 >= self.count():
if self.enableWrapAround:
self.index = 0
else:
self.index += 1
self.setIndex(self.index)

def selectPrevious(self):
if self.getIndex() - 1 < 0:
if self.enableWrapAround:
self.index = self.count() - 1
else:
self.index -= 1
self.setIndex(self.index)

@cached
def getStyle(self):
return self.__style

def setStyle(self, style):
if self.__style != style:
self.__style = style
self.changed((self.CHANGED_SPECIFIC, "style"))

style = property(getStyle, setStyle)

def listUpdated(self):
for x in self.onListUpdated:
x()

def updateList(self, list):
"""Changes the list without changing the selection or emitting changed Events"""
try:
assert len(list) == len(self.__list)
except Exception as err:
print("[Components/Sources/List.updateList] Error: '%s: '%s'" % (type(err).__name__, err))
import traceback
traceback.print_exc()
old_index = self.index
self.disable_callbacks = True
self.list = list
self.index = old_index
self.disable_callbacks = False

def pageUp(self):
try:
instance = self.master.master.instance
instance.moveSelection(instance.pageUp)
except AttributeError:
return

def pageDown(self):
try:
instance = self.master.master.instance
instance.moveSelection(instance.pageDown)
except AttributeError:
return

def up(self):
self.selectPrevious()

def down(self):
self.selectNext()

def getSelectedIndex(self):
return self.getIndex()
 
Last edited:

satpong

Registered
Messages
241
to prevent a blind search from crashing, replace this file when compiling the image, and everything will work.. Many thanks to Dorik1972 for the hint.
Thanks, lines added and included in online image upgrade

upgrade from menu =
Menu - Setup - Software update
or
Menu - Plugins - Software management - Software update

telnet command =
opkg update && opkg upgrade
 
Last edited:

satpong

Registered
Messages
241
20240720.gif



dm920 - Python 3.12.4 - openpli-develop - homebuild ! 20240720


- Python 3.12.4, GCC 14.1, OpenSSL 3.3.1
- ServiceApp, FFmpeg 7.0.1, GStreamer 1.24.5
- Ciplus, OScamstatus, OScam 11809
- OpenWebif, EPG-Import, File Commander, YouTube 1220
- blindscan, cablescan, fastscan, terrestrialscan
- feed dm920/drivers/settings/picons/skins/plugins

download: https://www.mediafire.com/file/tlveh5fv4v02ktm/openPLi-Py3-dm920-20240720.tar.gz/file
 

satpong

Registered
Messages
241
but to have streams in setting how do you have to do?
- add streams to bouquets with dreamset, dreamboxedit or other settings editor
- install a channel list with streams (ciefp, hans, ...)
- open a bouquet on your box and add your stream from menu 'Insert Entry' (remote controller/virtual keyboard)
- export streams to bouquets from plugins like Vavoo, Pluto, Rakuten, Samsung TV, ...
- use a plugin like AJpanel to add playlists, stalker, ... to bouquets
- plugin Jedi Maker Xtream (Enigma2 IPTV Bouquet Creator) Bouquet Maker Xtream, ...
- ...

Your question is a general question, it is better to create a new topic.
 
Last edited:

satpong

Registered
Messages
241
20240727.gif


dm920 - Python 3.12.4 - openpli-develop - homebuild ! 20240727

- Python 3.12.4, GCC 14.1, OpenSSL 3.3.1
- ServiceApp, FFmpeg 7.0.1, GStreamer 1.24.5
- Ciplus, OScamstatus, OScam 11814
- OpenWebif, EPG-Import, File Commander, YouTube 1221
- blindscan, cablescan, fastscan, terrestrialscan
- feed dm920/drivers/settings/picons/skins/plugins

update:
- enigma2
- ca-certificates 20211016 -> 20240203
- Glibc 2.39 -> Glibc 2.40
...

download:

openPLi-Py3-dm920-20240727.tar.gz
 

pfdfak.kfnsif

Registered
Messages
59
dm920 - Python 3.12.4 - openpli-develop - homebuild ! 20240727
Check for yourself, please install the plugin from the e2m3u2bouquet 1.7.7 ribbon, the plugin is installed but it is not in the plugins menu,the reason is that files from the package for python3.12 are not being installed,I had to download the version from the author by the way, the current one is already e2m3u2bouquet 1.7.8.,and add the contents of folder 312 along the path /usr/lib/enigma2/python/Plugins/Extensions/E2m3u2bouquet .After the enigma restart, everything is fine.
 

satpong

Registered
Messages
241
20240731075614.jpg


dm920 - Python 3.12.4 - openpli-develop - homebuild ! 20240731

- Python 3.12.4, Glibc 2.40, GCC 14.1, OpenSSL 3.3.1
- ServiceApp, FFmpeg 7.0.1, GStreamer 1.24.6
- Ciplus, OScamstatus, OScam 11814
- OpenWebif, EPG-Import, File Commander, YouTube 1221
- blindscan, cablescan, fastscan, terrestrialscan
- feed dm920/drivers/settings/picons/skins/plugins

update
- ln -sf "python3" "/usr/bin/python" (symlink was missing in previous image)
- GStreamer 1.24.6
...

 

Bigsat

Registered
Messages
22
Dear Satpong, The settings of Network Search have disappeared from the main menu of the past time from your DM920 images, I miss this because I can no longer view the recordings of my other satellite receivers and nas. Why is this omitted?
Greetings Bigsat
 

satpong

Registered
Messages
241
0001.jpg


dm920 - Python 3.12.4 - openpli-develop - homebuild ! 20240804

- Python 3.12.4, Glibc 2.40, GCC 14.1, OpenSSL 3.3.1
- ServiceApp, FFmpeg 7.0.2, GStreamer 1.24.6
- Ciplus, OScamstatus, OScam 11814
- OpenWebif, EPG-Import, File Commander, YouTube 1222
- blindscan, cablescan, fastscan, terrestrialscan
- feed dm920/drivers/settings/picons/skins/plugins

download
 

rafamaja

Registered
Messages
7
Hi.Is it possible to upload "wireguard vpn" from plugins because I can't do it on dm920?
I played it again and it's ok..everything works fine
 
Last edited:

satpong

Registered
Messages
241
Hi.Is it possible to upload "wireguard vpn" from plugins because I can't do it on dm920?
Install the latest Wireguard-Vpn (10.7) plugin from the feed
All necessary dependencies are installed automatically
(wireguard-module, wireguard-tools, wireguard-tools-bash-completion, openresolv, python3-requests, iptables)
 
Last edited:

satpong

Registered
Messages
241
Online upgrade

dm920 - Python 3.12.4 - openpli-develop - homebuild ! 20240808

- Python 3.12.4, Glibc 2.40, GCC 14.2, OpenSSL 3.3.1
- ServiceApp, FFmpeg 7.0.2, GStreamer 1.24.6
- Ciplus, OScamstatus, OScam 11814
- OpenWebif, EPG-Import, File Commander, YouTube 1225
- blindscan, cablescan, fastscan, terrestrialscan
- feed dm920/drivers/settings/picons/skins/plugins

update;
- gcc: Upgrade to GCC 14.2
- binutils: Upgrade to 2.43 release
...
 

sedutor

Member
Messages
87
Online upgrade

dm920 - Python 3.12.4 - openpli-develop - homebuild ! 20240808

- Python 3.12.4, Glibc 2.40, GCC 14.2, OpenSSL 3.3.1
- ServiceApp, FFmpeg 7.0.2, GStreamer 1.24.6
- Ciplus, OScamstatus, OScam 11814
- OpenWebif, EPG-Import, File Commander, YouTube 1225
- blindscan, cablescan, fastscan, terrestrialscan
- feed dm920/drivers/settings/picons/skins/plugins

update;
- gcc: Upgrade to GCC 14.2
- binutils: Upgrade to 2.43 release
...
Good morning satpong, when installing plugins, I get an error regardless of the plugin and even installing with a USB does not install either. Please can you correct the firmware or new software, thank you.
 
Top