Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

dream-alpha / enigma2-plugin-skincomponents-exteventname   deb

Repository URL to install this package:

Version: 2.0-r0 

/ usr / lib / enigma2 / python / Components / Converter / ExtEventName.py

# -*- 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