AutoTimer und doppelte Einträge

    • AutoTimer und doppelte Einträge

      Hallo,

      ich hatte ein Problem mit doppelten Timer-Einträgen die das Autotimer Plugin erzeugt hat.
      Obwohl ich die Option "Beschreibung muss Eindeutig sein" aktiviert hab, hat er immer wieder doppelte Einträge erzeugt X(
      Nachdem ich die EPG Daten der aufzunehmenden Sendungen genau unter die Lupe genommen habe, hat sich herausgestellt dass bei einigen Wiederholungen die Detailbeschreibung leer war (Planet HD). Also hab ich weiter unten unter "Überprüfung auf Eindeutigkeit In" nur "Titel und Kurzbeschreibung" ausgewählt. Das hat allerdings keinerlei Änderung bewirkt. Dabei hätte ich gehofft, dass eben die Detailbeschreibung nicht mehr überprüft wird 8o
      Im Source des Plugins (AutoTimer.py) hab ich allerdings auch keinerlei Unterscheidung zwischen den zwei letzten Einstellungen ("Titel und Kurzbeschreibung", "Titel und alle Beschreibungen") gefunden. Beide werden gleich behandelt.
      Ich hab die entsprechende Funktion mal lokal so angepasst wie es mir richtig erscheint und nun tut's auch so wie ich erwartet hätte.
      Vielleicht hab ich aber auch ein Feature nicht verstanden :rolleyes:

      Falls jemand das gleiche Problem hat, oder ggf. weiß wer der Maintainer des Plugins ist kann ich die Änderung hoch laden / weiterleiten...

      Gruß
      Tom

      Box: DM7020HD
      Image: 4.0.9
    • Der Ersteller des Plugins steht in der maintainer.info - Datei, aber ob er es noch aktiv "maintained" weiß ich nicht :) Es ist moritz.venn@freaque.net, der gleiche Ersteller wie vom EPGRefresh. Damals als ich meine Änderungen im epgrefresh veröffentlichen wollte, hat er mir leider nicht geantwortet. Aber ab dem Zeitpunkt als ich es im git eingechekct habe, hat er sich mit dem commit-Kommentar
      no reason to receive more bug reports for code i neither wrote nor
      tested :P
      ausgetragen :)

      Mir ist auch schon aufgefallen, dass die Einstellungen nicht wirklich funktionieren, habe aber den Fehler nie gesucht. Also ja, ich hätte interesse am Fix (eingecheckt oder weitergeleitet, wie du willst).

      lg
    • Hi,

      der Patch ist eigentlich recht einfach. Ich habe die Funktion checkSimilarity in der AutoTimer.py modifiziert (siehe unten). Die entscheidende Stelle ist in Zeile 10 "searchForDuplicateDescription > 1", den Vergleich gab es vorher nicht, so dass er immer dort durchgelaufen ist.

      Wo liegt den das Repository das gegen das man einchecken könnte? Hab verschiedene gefunden (z.B. github.com/oe-alliance/enigma2…utotimer/src/AutoTimer.py), daher schick ich's lieber erstmal direkt ;)

      Gruß
      Tom

      Quellcode

      1. def checkSimilarity(self, timer, name1, name2, shortdesc1, shortdesc2, extdesc1, extdesc2, force=False):
      2. foundTitle = False
      3. foundShort = False
      4. foundExt = False
      5. if name1 and name2:
      6. foundTitle = ( 0.8 < SequenceMatcher(lambda x: x == " ",name1, name2).ratio() )
      7. # NOTE: only check extended & short if tile is a partial match
      8. if foundTitle:
      9. if timer.searchForDuplicateDescription > 0 or force:
      10. if extdesc1 and extdesc2 and timer.searchForDuplicateDescription > 1:
      11. # Some channels indicate replays in the extended descriptions
      12. # If the similarity percent is higher then 0.7 it is a very close match
      13. foundExt = ( 0.7 < SequenceMatcher(lambda x: x == " ",extdesc1, extdesc2).ratio() )
      14. if not foundExt and shortdesc1 and shortdesc2:
      15. # some channels do not use extended description, so try to find a close match to short description.
      16. # If the similarity percent is higher then 0.7 it is a very close match
      17. foundShort = ( 0.7 < SequenceMatcher(lambda x: x == " ",shortdesc1, shortdesc2).ratio() )
      18. return foundShort or foundExt
      Alles anzeigen
    • Die Sourcen auf dem oe-alliance - github und jene auf Schwerkraft sind nicht die gleichen. Jetzt wäre es wirklich interessant, wann bzw. warum sie auseinander gelaufen sind.

      Hier der aktuelle Source von Schwerkraft:

      Quellcode

      1. def checkSimilarity(self, timer, name1, name2, shortdesc1, shortdesc2, extdesc1, extdesc2, force=False):
      2. 639 foundTitle = name1 == name2
      3. 640 foundShort = shortdesc1 == shortdesc2 if (timer.searchForDuplicateDescription > 0 or force) else True
      4. 641 foundExt = True
      5. 642 # NOTE: only check extended if short description already is a match because otherwise
      6. 643 # it won't evaluate to True anyway
      7. 644 if (timer.searchForDuplicateDescription > 0 or force) and foundShort and extdesc1 != extdesc2:
      8. 645 # Some channels indicate replays in the extended descriptions
      9. 646 # If the similarity percent is higher then 0.8 it is a very close match
      10. 647 foundExt = ( 0.8 < SequenceMatcher(lambda x: x == " ",extdesc1, extdesc2).ratio() )
      11. 648
      12. 649 return foundTitle and foundShort and foundExt
      Alles anzeigen


      Kurz überflogen finde ich jene von oe-aliance ausgereifter (wegen dem prozent-matching), aber dazu müsste man die einzelnen Beweggründe für den source genauer kennen. Aber wenn ich es richtig interpretiere würde die oe-aliance-version kein reines matching auf den titel zulassen (timer.searchForDuplicateDescription == 0).

      Ich glaube am Besten fragst du noch im irc-chat (ircs://freenode/enigma2) nach, bevor du die sourcen auf schwerkraft veränderst.
    • Eigentlich fände ich es gut, wenn die Repositories identisch wären, aber das wäre wohl etwas viel für den Anfang :rolleyes:

      Gibt es irgendwo eine mini Anleitung wie man mit dem Schwerkraft tree umgeht (bauen, guidelines, etc.)? Hab das Buildkonzept von newnigma noch nicht so recht verstanden.
      Um ehrlich zu sein, hat es mich bis jetzt auch nicht interessiert :D
    • guidelines für dreambox-plugins gibt es glaube ich irgendwo, aber die sind nicht sehr restriktiv. So wie ich das verstanden habe, ist schwerkraft das offizielle git.
      Ich hoffe wir stechen hier nicht in ein Wespennest, da ja newenigma von der "offiziellen" community nicht so angesehen ist (warum auch immer). Möglicherweise hat sich aus dieser Situation ein eigenes git entwickelt. Vielleicht wissen ja die admins mehr über dieses oe-alliance - git, bzw. wann, wie oder überhaupt ob es angeglichen wird.