Textkonverter Bettertext

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Textkonverter Bettertext

      Für die kompaktere Darstellung von Text-Widgets habe ich einen Konverter erstellt.
      Dieser ist noch im Beta-Stadium, über Rückmeldungen zu Fehlern wäre ich dankbar.

      BetterText.py muss abgelegt werden unter /usr/lib/enigma2/python/Components/Converter.
      Danach lässt sich der Konverter in Widgets einbinden, die ihren Text per source beziehen und direkt rendern (eLabel, VRunningtext).
      Dazu zählen v.a. EPG-Ausgaben (Description) und Title-Widgets (z.B in Channelselection).

      Hier die Konverterdatei: bettertext.zip

      Folgende (optionale) Funktionen sind enthalten:
      1. Textpassagen ersetzen/löschen
      2. Texte abschneiden (bis/ab Suchposition, Positionsversatz +/-)
      3. Konvertierung Groß-/Kleinschrift
      4. Bedingungen (Bereich von/bis, x-te Position, x-Ersetzungen, Abfragetypen, Bedingungstext [vorhanden/nicht vorhanden])
      5. Unterstützung von ConditionalShowHide
      6. Entfernen von Leerzeilen (EPG)
      7. Entfernen von Umbrüchen (EPG)
      8. Entfernen führender <x>...</x> Bereiche (EPG)

      Wird der Converter ohne Parameter eingebunden, werden die Optionen 6 und 8 voreingestellt.
      Das Ersetzen von Texten kann entweder direkt per Skin-Parameter geregelt werden oder über Definitionen in der Datei /etc/enigma2/bettertext.cfg, die automatisch erzeugt wird und eine Syntaxbeschreibung enthält.

      Textersetzungen werden nacheinander abgearbeitet (und sind somit kombinierbar)

      Parameter (Bezeichner, altern. Kürzel ---> Funktion):
      NoCfg ---> Konfigurationsdatei nicht einlesen
      NoXTag, X ---> <x>...</x>-Abschnitt entfernen
      NoEmptyLine, E ---> Leerzeilen entfernen
      NoNewLine, N ---> Zeilenumbrüche entfernen
      Indent=, I= ---> Einzugstext nach Umbrüchen (z.B. Leerzeichen)
      Indent2=, I2= ---> Einzugstext nach Leerzeilen (z.B. Leerzeichen)
      Type=, T= ---> Typenfestlegung zur bedingten Ersetzung
      Replace=, R= ---> Textersetzung

      Syntax für Replace:
      Replace=[Searchstring];[Replacestring];[Options];[Conditions]

      Options: to*[%] | from*[%] | delFrom[dif] | delTo[dif] | Upper | Lower | IgnoreCase | SearchFirst* | ReplaceCount*
      (defaults: ignorecase=empty[==False], searchfirst=1, replacecount=9999)

      Conditions: hasText=*| hasNotText=* | type=* | notType=* | longerThan=* | shorterThan=*

      Bei der Erkennung von Parametern und Optionen wird nicht zwischen Groß- und Kleinschreibung unterschieden ("nonewline == NONEWLINE")
      Wenn mehrere Optionen definiert werden, müssen diese durch Leerzeichen getrennt sein (z.B. to80% replaceCount1 IgnoreCase)
      Wenn mehrere Conditions definiert werden, müssen sie durch "_|_" getrennt weden (z.B. has=.mp4_|_hasnot=Serien)

      Wennn in der Datei bettertext.cfg eine Typenfestlegung erfolgt, z.B.
      SchleFaZ;Schlechteste Filme aller Zeiten;;type=D
      startet die Textersetzung nur dann, wenn dieser Typ auch im Skinaufruf besteht, z.B.
      <convert type="BetterText">X,E,Type=D</convert>
      So kann geregelt werden, dass Ersetzungen auf eine Widgetart begrenzt sind (z.B. Title, Description, Extendeddescription)

      Beispiele:

      Einbindung in Channelselection:
      <widget position="x,y" render="Label" size="w,h" source="Title">
      <convert type="BetterText">Replace=Kanalliste (TV) User - bouquets/;Senderliste: ;;
      </convert> </widget>

      -> Hierdurch wird aus Kanalliste (TV) User - bouquets/Dritte der Text Senderliste: Dritte


      Alternative (Text kürzen bis zum Zeichen "/"):
      <widget position="x,y" render="Label" size="w,h" source="Title">
      <convert type="BetterText">Replace=/;;delTo</convert> </widget>

      -> Hierdurch wird aus Kanalliste (TV) User - bouquets/Dritte der Text Dritte


      Beispiel der EMC-Descripion für mp4-Dateien:
      <convert type="BetterText">Replace=/media/hdd/movie;Home;;</convert>

      -> Aus /media/hdd/movie/meinfilm.mp4 wird Home/meinfilm.mp4

      Beispiel der EMC-Descripion für mp4-Dateien:
      <convert type="BetterText">Replace=/;/\n;;has=.mp4</convert>

      -> Hierdurch werden (nur) für mp4-Dateien die Pfade zeilenweise dargestellt

      Der Converter ConditionalShowHide kann kombiniert werden, um Icons textabhängig einzublenden.
      Der Zustand "show" wird auf die gesetzten Bedingungen angewandt (z.B. hasText= oder hasNotText=).
      Werden diese nicht definiert, gilt die Bedingung, dass die Widgetdefinitionen zu Textänderungen führen.

      Im Skinparameter kann für den Aufruf von ConditionalShowHide der Text "Replace=*;;;" ersetzt werden durch "Condition:"

      Beispiel, um für die Favoritenliste "Dritte" ein Icon einzublenden:
      <widget source="Title" alphatest="blend" pixmap="skin_default/icons/input_info.png" scale="1" position="50,30" render="Pixmap" size="20,20">
      <convert type="BetterText">Condition:has=Dritte</convert>
      <convert type="ConditionalShowHide"></convert>
      </widget>

      Grüße aus Oberhessen von Selbigem