Menü-Optionen des Plugins 'MovieSelection'

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

    • Einen Versuch war's wert...
      Problem ist die Syntax - ich weiss aber auch nicht, was hier richtig wäre.

      Eine Idee hätte ich noch:
      Die Prozedur in ein Plugin auslagern und dort UTF-Coding definieren und im applet die Funktion aufrufen
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von WeFraJo ()

    • Lucille_twd schrieb:

      umlaute bei mir nicht berücksichtigt.

      beispiel zurück.

      lasse ich die letzten 3 Buchstaben weg wird es angenommen.
      Bei mir funktionieren die die Umlaute - getestet mit der MovieList und mit MyEPG.
      In MyEPG ist das Coding im Programm definiert, in der MovieList kann ich das nicht feststellen, wird aber wahrscheinlich ebenso sein.

      Wenn es nicht funktioniert ist das vermutlich ein Programm, welches kein Coding definiert hat und wo die Umlaute erst in der Übersetzung entstehen (sonst würde das Programm gar nicht compiliert werden).

      Mit welchem Programm hast du 'Zurück' getestet und welcher Screen-Name?
      Und der verwendete Skin könnte auch noch von Bedeutung sein.


      Lucille_twd schrieb:

      besser wäre wenn es unter groß und kleinschreibung unterscheidet.
      weil habe einige menü einträge sind sonst doppelt
      Du brauchst nur .lower() weglassen.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von WeFraJo ()

    • WeFraJo schrieb:

      Die Prozedur in ein Plugin auslagern und dort UTF-Coding definieren und im applet die Funktion aufrufen
      Es gäbe evtl. noch die Möglichkeit, diese 3 Zeilen am Anfang des Codes einzufügen.

      import sys
      reload(sys)
      sys.setdefaultencoding('utf8')


      EDIT: Noch ein Ansatz

      Quellcode

      1. def sortFunc(item):
      2. NACHVORNE = ['hinzufügen', 'löschen']
      3. name= str(item[0]).lower().encode('ascii','ignore')
      4. for idx, V in enumerate(NACHVORNE):
      5. if name.find(V.encode('ascii','ignore'))>=0: return idx
      6. return 999
      Dadurch werden Umlaute beim Vergleich weggefiltert.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Oberhesse ()

    • Oder mit Umlauten:

      Python-Quellcode

      1. try:
      2. def sortFunc(item):
      3. NACHVORNE = ["hinzufügen", "Verknüpfung"]
      4. name= str(str(item[0]).encode("utf-8"))
      5. for idx, V in enumerate(NACHVORNE):
      6. if name.find(str(V.encode("utf-8")))>=0: return idx
      7. return 999
      8. list = sorted( self["menu"].list, key=sortFunc, reverse=False )
      9. self["menu"].setList(list)
      10. except: pass
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • alles mit umlauten wie äöü wird immer noch nicht in der Reihenfolge berücksichtigt.
      entferne ich alle ab den umlaut, wird es eingereiht.
      getestet mit der Kanalliste.

      EDIT
      einträge Verstecken wäre auch noch nice wenn das irgendwie machbar wäre.
      wie zb Sender löschen... damit zb die kinder nicht einfach Sender löschen können

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Lucille_twd ()

    • So sollte das im Menü der ChannelList funktionieren:

      Python-Quellcode

      1. <applet type="onLayoutFinish">
      2. try:
      3. toFind = ["+Zurück", "-Eintrag entfernen", "+Zu Bouquet hinzufügen", "+Splitscreen", ]
      4. list = self["menu"].list
      5. cnt = 0
      6. for name in toFind:
      7. offset = 0
      8. for idx in range (0, len(list)):
      9. if (str([name,""])[3:-6]) in str(list[idx + offset]):
      10. if name[:1] == "-":
      11. list.pop(idx + offset)
      12. offset -= 1
      13. else:
      14. list.insert(cnt, list.pop(idx + offset))
      15. cnt += 1
      16. except:
      17. pass
      18. </applet>
      Alles anzeigen
      EInträge, die nach oben verschoben werden sollen, müssen mit '+' beginnen, auszublendende mit '-'.

      Das Problem ist:
      Gibt man die Liste aus ToFind aus, ist diese Unicode.
      Gibt man ein einzelnes Element daraus aus, ist das mit Umlauten, auch wenn man es utf-8 codiert.
      Ich nutze das jetzt aus, indem ich aus einem einzelnen Element durch hinzufügen eines leeren Elements ein tuple mache, das in einen String konvertiere und daraus die unnnötigen führenden und endenden Zeichen entferne.

      Im MovieList Menü funktioniert das nicht, ich kann dort keine deutschen Sonderzeichen eingeben. Dabei hat das heute Morgen (glaube ich zumindest) noch funktioniert. So ginge es allerdings:

      Edit: ich habe jetzt noch die sys-encoding-Definition von @Oberhesse hinzugefügt, dann funktioniert die gleiche Routine auch in der Movielist.
      Edit 2: Die Routine nicht anwenden, sonst verschwinden die log-Ausgaben im Nirvana.

      Python-Quellcode

      1. <applet type="onLayoutFinish">
      2. import sys
      3. reload(sys)
      4. sys.setdefaultencoding('utf-8')
      5. try:
      6. toFind = ["-Alles abspielen", "+alphabetisch", "+AutoTimer hinzufügen", "-MovieCut", "Nichts tun"]
      7. list = self["menu"].list
      8. cnt = 0
      9. for name in toFind:
      10. offset = 0
      11. for idx in range (0, len(list)):
      12. if (str([name,""])[3:-6]) in str(list[idx + offset]):
      13. if name[:1] == "-":
      14. list.pop(idx + offset)
      15. offset -= 1
      16. else:
      17. list.insert(cnt, list.pop(idx + offset))
      18. cnt += 1
      19. except:
      20. pass
      21. </applet>
      Alles anzeigen
      Das Coding berücksichtigt jetzt, dass Sucheinträge in mehreren Menüeinträgen vorhanden sein können und bearbeitet auch den nächstfolgenden Eintrag, wenn ein Eintrag aus dem Menü ausgeblendet wird.

      Edit 25.12. 09:36 Code nochmals geändert
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von WeFraJo ()

    • @Lucille_twd
      Ich habe die Routine jetzt noch erweitert.
      Funktionieren sollte diese in allen Menüs, sofern deren Liste an erster Stelle das im Menü angezeigte hat. Die Anzahl der Verschachtelungseben ist egal.

      Zeile nach oben verschieben: Sucheintrag beginnt mit +
      Zeile entfernen: Sucheintrag beginnt mit -

      2. Stelle im Sucheintrag:
      ( ... Menüeintrag beginnt mit Sucheintrag
      ) ... Menüeintrag endet mit Sucheintrag
      * ... Sucheintrag an beliebiger Stelle im Menüeintrag
      = (oder jedes andere Zeichen) ... Sucheintrag ist genau wie Menüeintrag

      Wenn man den Rest der Liste (also alles was nicht verschoben werden soll) alphabetisch sortiert haben möchte: Die # aus #list.sort() entfernen.

      Python-Quellcode

      1. <applet type="onLayoutFinish">
      2. try:
      3. toFind = ["-=Alles abspielen", "+*alphabetisch", "+)hinzufügen", "+)hinzufügen", "+*alphabetisch", "+)Zurück", "-=Eintrag entfernen", "+(Zu Bouquet hin", "+*Splitscreen"]
      4. list = self["menu"].list
      5. #list.sort()
      6. cnt = 0
      7. for name in toFind:
      8. offset = 0
      9. delete = False
      10. uname = (str([name,''])[4:-6])
      11. if name[:1]=="-":
      12. delete = True
      13. if name[1:2] == "(":
      14. check = "(str(list[idx + offset]).split(chr(39))[1]).startswith(uname)"
      15. elif name[1:2] == ")":
      16. check = "(str(list[idx + offset]).split(chr(39))[1]).endswith(uname)"
      17. elif name[1:2] == "*":
      18. check = "uname in (str(list[idx + offset])).split(chr(39))[1]"
      19. else:
      20. check = "uname == (str(list[idx + offset])).split(chr(39))[1]"
      21. for idx in range (0, len(list)):
      22. if eval(check) and (idx + offset) >= cnt:
      23. if delete:
      24. list.pop(idx + offset)
      25. offset -= 1
      26. else:
      27. list.insert(cnt, list.pop(idx + offset))
      28. cnt += 1
      29. except:
      30. pass
      31. </applet>
      Alles anzeigen
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter