Repository URL to install this package:
# -*- coding: utf-8 -*-
#
# Extended EventName Converter for Enigma2 Dreamboxes (extEventName.py)
# Coded by Sven H - based on DreamOS EventName.py from Dream Property
#
# Version: 0.1 (05.08.2022)
#
# This converter is open source but it is NOT free software.
#
# This converter may only be distributed to and executed on hardware which
# is licensed by Dream Property GmbH.
# In other words:
# It's NOT allowed to distribute any parts of this converter or its source code in ANY way
# to hardware which is NOT licensed by Dream Property GmbH.
# It's NOT allowed to execute this converter and its source code or even parts of it in ANY way
# on hardware which is NOT licensed by Dream Property GmbH.
from Components.Converter.Converter import Converter
from Components.Element import cached
from Components.Language import language
import re
class ExtEventName(Converter, object):
#types
NAME = 0
SHORT_DESCRIPTION = 1
EXTENDED_DESCRIPTION = 2
FULL_DESCRIPTION = 3
ID = 4
NAME_SHORT_DESCRIPTION = 5
SHORT_EXTENDED_DESCRIPTION = 6
ALL = 7
def __init__(self, type):
Converter.__init__(self, type)
args = type.split(',')
type = args.pop(0)
#set params
self.noShortDescEnter = False
if "noShortDescEnter" in args:
self.noShortDescEnter = True
self.removeTitle = True
if "noRemoveTitle" in args:
self.removeTitle = False
self.only1ShortDescValues = False
if "only1ShortDescValues" in args:
self.only1ShortDescValues = True
self.noExtDescDoubleEnter = False
if "noExtDescDoubleEnter" in args:
self.noExtDescDoubleEnter = True
self.noRepeatText = False
if "noRepeatText" in args:
self.noRepeatText = True
#set type
if type == "Description":
self.type = self.SHORT_DESCRIPTION
elif type == "ExtendedDescription":
self.type = self.EXTENDED_DESCRIPTION
elif type == "FullDescription":
self.type = self.FULL_DESCRIPTION
elif type == "ID":
self.type = self.ID
elif type == "NameShortDescription":
self.type = self.NAME_SHORT_DESCRIPTION
elif type == "ShortExtendedDescription":
self.type = self.SHORT_EXTENDED_DESCRIPTION
elif type == "All":
self.type = self.ALL
else:
self.type = self.NAME
@cached
def getText(self):
event = self.source.event
if event is None:
return ""
if self.type == self.NAME:
return event.getEventName()
elif self.type == self.SHORT_DESCRIPTION:
desc = self.getShortDescription(event)
return desc
elif self.type == self.EXTENDED_DESCRIPTION:
desc = self.getExtendedDescription(event)
if desc:
if self.noExtDescDoubleEnter:
desc = desc.replace("\n\n","\n").replace("\xc2\x8a\xc2\x8a","\n")
return desc
else:
lang = language.getLanguage()
if lang == "de_DE":
return "keine erweiterte Sendungsinfo"
else:
return "no extendet event info"
elif self.type == self.FULL_DESCRIPTION:
desc = self.getShortDescription(event)
if desc:
desc = "%s\n\n" %(desc,)
desc = "%s%s" %(desc, self.getExtendedDescription(event))
return desc
elif self.type == self.ID:
return str(event.getEventId())
elif self.type == self.NAME_SHORT_DESCRIPTION:
name = event.getEventName()
desc = self.getShortDescription(event)
if desc and desc != name:
return "%s - %s" % (name, desc)
else:
return name
elif self.type == self.SHORT_EXTENDED_DESCRIPTION:
desc = self.getShortDescription(event)
ext = self.getExtendedDescription(event)
if desc:
desc = "%s\n" % (desc,)
return "%s%s" % (desc, ext)
elif self.type == self.ALL :
name = event.getEventName().strip(" ").strip("\n").strip("\xc2\x8a")
desc = self.getShortDescription(event)
if desc:
desc = "%s\n\n" % (desc,)
ext = self.getExtendedDescription(event)
desc = "%s%s" % (desc, ext)
return "%s\n\n%s" % (name, desc)
text = property(getText)
def getExtendedDescription(self, event):
ext = event.getExtendedDescription().lstrip(" ").lstrip("\n").lstrip("\xc2\x8a").replace("\\n","\n")
return ext
def getShortDescription(self, event):
name = event.getEventName().strip(" ").strip("\n").strip("\xc2\x8a")
desc = event.getShortDescription().strip(" ").strip("\n").strip("\xc2\x8a").replace("\\n","\n")
desc_list = desc.split("\n")
#return only 1 values/lines from ShortDesc
if self.only1ShortDescValues and len(desc_list)>1:
desc_list = desc_list[:1]
#remove eventname if first entry in ShortDesc
if self.removeTitle and desc_list[0] == name:
desc_list.pop(0)
if self.noShortDescEnter:
#replace Enter from ShortDesc with ', '
desc = ", ".join(desc_list).strip()
if self.noRepeatText:
desc = re.sub('\, \(WH vom .*\)', '', desc)
else:
desc = "\n".join(desc_list).strip()
if self.noRepeatText:
desc = re.sub('\\n\(WH vom .*\)', '', desc)
return desc