Jump to content

Commandline-Interface (Windows,Linux/Wine) für den RS


HacMat

Recommended Posts

Hallo HacMat,

​heute bin ich auf ein interessantes Problem ( in 1.0.6.1 ) gestoßen.

Der Titel Insomnia -Schlaflos löst einen "unbekannter Parameter: -xxx" aus.

Screenshot im Anhang.

 

Umgehen lässt sich das Problem,
im dem man in der Konfig von TVB in der Aufnahme-Steuerung folgende kleine Änderung vornimmt:

 

Problem: -title {title}

Lösung: -title "{title}"

 

Ich habe es in der Sektion: Parameter für Aufnahmen und in der Sektion: Parameter für Löschen entsprechend abgeändert. In beiden Richtungen funktioniert es damit.

 

vg

Sir Drake

post-89984-0-71206500-1460436675_thumb.png

Link to comment

Danke für den Hinweis, Drake.

Eigentlich ist das kein Fehler. '-Schlaflos' ist schließlich auch kein gültiger Parameter.
Mit dem Minus-Zeichen ohne nachfolgende Leerzeichen wird beim Requester immer ein Parameter gekennzeichnet, es sei denn der String steht innerhalb von Anführungszeichen.
So wie Du das Problem löst, ist es also durchaus beabsichtigt.
Mann könnte natürlich, bei einem ungültigen Parameter, ihn als Teil des Arguments des vorherigen Parameter vom RSR versuchen interpretieren zu lassen, was in Deinem Beispiel ja auch
zum gewünschten Ergebnis führen würde. Und erst wenn das nicht geht, folgt eine Fehlermeldung.
Das Problem ist nur, dass ein nachfolgend falsch geschriebener Parameter, dann unter Umständen auch nicht als Fehler erkannt würde.
Ich denke, die Anführungszeichen sind hier die beste Lösung. Zumal der Titel auch in einer selten unglücklichen Formatierung vorliegt.
Eigentlich sollte der Titel so lauten: 'Insomnia-Schlaflos' oder 'Insomnia - Schlaflos'. So geschrieben hätte es auch ohne Anführungszeichen problemlos funktioniert.

Viele Grüße,

HacMat

Link to comment

Neue Version: RS Requester 1.0.8.1

Lauffähig bis 31.10.16

 

Verbesserungen:

Erhöhte Kompatibilität mir älteren Prozessoren:
Es ist jetzt kein Prozessor mit SSE2-Befehlssatzerweiterung mehr notwendig.

Behobene Fehler:

Der Parameter/Schlüssel 'timeout' funktionierte nicht.

Neue Funktionen:

Ausschlussliste:

Es ist jetzt möglich für den Requester eine Ausschlussliste bereitzustellen, die die Titel der Sendungen enthält, die vom Requester zurückgewiesen werden sollen.

Dazu wurden folgende Parameter/Schlüssel neu eingeführt (Vorgaben sind unterstrichen):

(-)searchExcludingList (=) {off|disabled|0|...|on|enabled| |70|...|100}

Das Argument ist die Mindestähnlichkeit, den der Text einer Zeile der Ausschlussliste mit dem Sendungstitel haben muss, damit die Sendung als in der Ausschlussliste enthalten gilt.
Da die Zeilen für die Ähnlichkeitsberechnung normalisiert werden, hat die Formatierung der Ausschlussliste keinen Einfluss auf das Suchergebnis. Auch die Groß- und Kleinschreibung bleibt unberücksichtigt.
Dadurch lässt sich die Ausschlussliste völlig frei gestalten.
Zeilen mit einem Semikolon am Anfang gelten als auskommentiert, werden also nicht berücksichtigt

(-)searchExcludingListReadFile (=) Dateiname

Mit 'searchExcludingListReadFile' kann man eine Text-Datei angeben, die die Ausschlussliste enthält.
Die Datei muss UTF8-kodiert sein.
Wird 'searchExcludingListReadFile' nicht verwendet, wird im Requester-Verzeichnis nach der Datei 'exclude.txt' gesucht.
Ist diese nicht vorhanden, wird eine Fehlermeldung ausgegeben.

(-) searchExcludingListButtonIgnore (=) {0|off|disabled|1| |on|enabled}

Schaltet den Ignorieren-Button ein oder aus, mit dem man bei einem Such-Treffer den Timer dennoch setzen kann.

Die Ausschlussliste ist sehr einfach gehalten. Ich kann noch nicht beurteilen, wie Praxis-tauglich sie ist. Ich stehe deshalb Erweiterungsvorschlägen offen gegenüber.

 

Auch wenn diese Version kaum Neuerungen bietet, wäre es hilfreich, wenn möglich viele auf die neue Version umstiegen. Ich habe viele kleinere Bugs beseitigt, die bisher nicht protokolliert waren.
Bei der Beseitigung dieser Fehler, können sich aber auch neue Fehler eingeschlichen haben. Deswegen bitte ich Euch, möglichst immer die aktuellste Version einzusetzen und wenn etwas nicht funktioniert oder unverständlich erscheint, es sofort zu melden - das hilft mir bei der Entwicklung sehr. Läuft bei jemanden die neueste Version so instabil, sodass er sie nicht einsetzen möchte, werde ich die ältere Version solange in der Laufzeit verlängern, bis ich die Ursache für die Instabilität beseitigt habe.

 

Noch ein Hinweis zum Problem mit dem sich nicht aktualisierenden Fensters des TV-Browsers, wenn sich der RSR im Ignorieren-Abbrechen-Dialog befindet und das Fenster des RSR verschoben oder in seiner Größe geändert wird:

Ich habe festgestellt, dass das Problem bei mir nur bei den Designs 'Windows 7-Basis' und 'Windows klassisch ' auftritt. Bei den anderen Designs wird das Fenster des TV-Browser ordnungsgemäß neu gezeichnet.
Möglicherweise verhält es sich mit anderen Grafikkarten/Grafiktreibern wieder anders. Wen dieses rein ästhetische Problem stört, kann es also mal mit einem anderen Windows-Design probieren.
Es handelt sich hierbei, nicht um einen Bug des TV-Browsers oder RS-Requesters, sondern möglicherweise nur um ein Feature, welche bei den betreffenden Designs aus Performance-gründen deaktiviert ist.

Kritik und Verbesserungsvorschläge sind wie immer willkommen.

Viele Grüße,

HacMat

 

Download: RS Requester 1.0.8.1.zip

Edited by HacMat
Link to comment

Hallo HacMat,

 

leider habe ich ein Problem mit der Exclude-Liste. Sie liegt bei mir auf einem NAS-Laufwerk und der Pfad ist richtig in der cfg eingetragen. Ich bekomme aber die Fehlermeldung "Das System kann die angegebene Datei nicht finden (Systemfehler 2)".

Wenn ich die exclude.txt in das RSRequester-Verzeichnis kopiere und die entsprechende Pfadangabe in der cfg auskommentiere, erhalte ich die gleiche Fehlermeldung.

Link to comment

Hi Semko,

 

Ich habe das mal auf meinem NAS ausprobiert.

Bei mir sieht die betreffende Zeile in der cfg so aus:

searchExcludingListReadFile = \\MYBOOKLIVEDUO\Public\RS Requester\exclude.txt

Und es funktioniert.

Deine Pfad muss falsch sein.

Probier es bitte nochmal!

 

Gruß,

 

HacMat

Link to comment
Wenn ich die exclude.txt in das RSRequester-Verzeichnis kopiere und die entsprechende Pfadangabe in der cfg auskommentiere, erhalte ich die gleiche Fehlermeldung.

 

Ich habe gerade gesehen, dass ich den zweiten Satz nicht richtig gelesen habe.

Wenn Du eine excude.txt in Deinem Requester-Verzeichnis, also dem Verzeichnis in der sich auch die auszuführende rsreq,exe befindet, liegen hast, sollte diese exclude.txt auch gelesen werden, wenn Du mit 'searchExcludingList' das Durchsuchen der Auscchlussliste aktiviert hast und mit 'searchExcludingListReadFile' keinen anderen Pfad angegeben hast.

Wenn das nicht so, läuft es anders als beabsichtigt.

Abgesehen davon, sollte es, sofern der Pfad gültig ist, mit einer expliziten Pfadangabe durch Verwendung des Parameters 'searchExcludingListReadFile' aber immer funktionieren.

Link to comment

Hi HacMat,

 

die Pfadangabe habe ich natürlich mehrfach kontrolliert, die stimmt. Wie gesagt, ich erhalte die Fehlermeldung auch, wenn ich die exclude.txt in das Verzeichnis des RSRequesters lege und die Zeile searchExcludingListReadFile auskommentiere. Da muss also etwas anderes faul sein. Hast du noch eine Idee?

Link to comment

Ich habe den Quellcode gecheckt:

Die Fehlermeldung, die Du erhälst ist möglicherweise falsch.

Unternimm erstmal keine weiteren Versuche. Sieht nach einem Bug aus.

Ich arbeite dran und melde mich sobald, ich die Ursache gefunden habe.

 

Viele Grüße,

 

HacMat

Link to comment

Hallo Semko,

 

Die Fehlermeldung "Das System kann die angegebene Datei nicht finden. (Systemfehler: 2)" wird fälschlicherweise ausgegeben, wenn eine Zeile der Ausschlusliste mehr als 1024 Zeichen hat.

Ist das bei Dir der Fall ? Hast Du vielleicht irgendwo einen Zeilenumbruch vergessen ?

Ich habe mir gedacht 1024 Zeichen pro Zeile sind mehr als ausreichend. Mein Programm soll möglichst sparsam mit den vorhandenen Resourcen umgehen. Und der Puffer zum Einlesen einer Zeile ist entsprechend knapp dimensioniert. Wenn Du mehr Zeichen pro Zeile brauchst, sag mir bitte, was Du genau vorhast.

Hast Du auch daran gedacht die Ausschlussliste UTF8-kodiert abzuspeichern. Funktioniert, die unveränderte Demo 'exclude.txt' auch nicht?

Link to comment

Ich habe jetzt noch einen Fehler im betreffenden Code-Abschnitt gefunden:

Zum Lesen der Datei mit der Ausschlussliste erzeuge ich versehentlich ein 'ifstream-Objekt', statt eines 'wifstream-Objektes'.

Es fehlt also nur ein 'w'. Das fehlende 'w' führt unter Umständen aber zu Problemen mit Sonderzeichen.

Ich lade spätestens Morgen eine korrigierte Version hoch. Diesmal halte ich den angekündigten Termin ein.

Sollte aber die beigelegte 'exclude.txt' bei Dir auch nicht funktionieren, hat der Fehler bei eine andere Ursache.

 

VG,

 

HacMat

Link to comment

Ich habe es gerade noch mal probiert. Mit der originalen exclude.txt funktioniert es. Sobald ich dort auch nur eine Zeile hinzufüge, tritt der Fehler auf. Ich habe natürlich einen UTF-8 Editor verwendet, dabei macht es keinen Unterschied, ob ich als Ausgabeformat mit oder ohne BOM verwende.

Dazu möchte ich anmerken, dass ich es nicht für eine gute Idee halte, UTF-8 zwingend vorzuschreiben. Wenn ich z.B. die exclude.txt in einem Batch erweitern will, habe ich echte Schwierigkeiten, weil Windows das nicht mit Bordmitteln aus cmd kann.

Link to comment

Um noch etwas mehr zur Verwirrung beizutragen:

Ich habe jetzt die originale exclude.txt mal mit notepad (also ASCII) um eine Zeile erweitert. Jetzt tritt der Fehler "Datei nicht gefunden" nicht mehr auf, allerdings führt die zugefügte Zeile nicht zu einem Ausschluss.

Link to comment

Dazu möchte ich anmerken, dass ich es nicht für eine gute Idee halte, UTF-8 zwingend vorzuschreiben. Wenn ich z.B. die exclude.txt in einem Batch erweitern will, habe ich echte Schwierigkeiten, weil Windows das nicht mit Bordmitteln aus cmd kann.

 

Damit hast Du Recht. Ich werde noch eine Unterstützung für andere Zeichen-Kodierungen implementieren.

 

Hier jetzt die nachgebesserte Version: (Link entfernt, s. folgende Beiträge)

 

Bitte wundere dich nicht, wenn manchmal eine geringere Ähnlichkeit neben dem in der Ausschlussliste gefundenem Titel angegeben wird als erwartet.

Das liegt daran, dass Zusatz-Informationen aus dem EPG, wenn verfügbar, mit berücksichtigt werden.

Bei den Tagesthemen ist es z.B. der Name des Moderators, der in diesen Zusatz-Informationen enthalten ist. Mit der Angabe des Moderators in der Ausschlussliste lässt sich so erreichen, dass die Sendung Tagesthemen nur dann zurückgewiesen wird, wenn ein bestimmter Moderator sie moderiert.

Ich denke, ich muss noch einen Hinweis mit ausgeben, wenn Zusatz-Informationen berücksichtigt wurden, sonst ist die Ähnlichkeits-Angabe zu verwirrend.

Edited by HacMat
Link to comment

Hallo HacMat,

 

zuerst vielen Dank für deine schnelle Reaktion mit der neuen Version.

 

 

Bitte wundere dich nicht, wenn manchmal eine geringere Ähnlichkeit neben dem in der Ausschlussliste gefundenem Titel angegeben wird als erwartet.
Das liegt daran, dass Zusatz-Informationen aus dem EPG, wenn verfügbar, mit berücksichtigt werden.

 

Verstehe ich dich jetzt richtig? Ich müsste dann beim Anlegen der Ausschlüsse wissen, welche Zusatzinformationen außer dem Titel verwendet werden? Sorry, aber das halte ich für keine gute Idee. Wenn ich eine Ausschlussliste für bereits vorhandene Aufnahmen anlegen will, habe ich keine Ahnung, welche Zusatzinformationen bei späteren Wiederholungen im EPG enthalten sein könnten. Ich finde, der Titel muss genügen.

 

Ich habe versucht, die neue Version zu testen, leider mit wenig Erfolg. Die besprochene Fehlermeldung ist bisher nicht mehr aufgetreten aber die der Ausschlussliste hinzugefügten Einträge brachten keinen Erfolg.

Ich habe folgende 2 Zeilen hinzugefügt:

SOKO Wismar

Der Blaulicht Report

Dann habe ich diese beiden Sendungen aus dem TV Browser zur Aufnahme programmiert und in beiden Fällen sind die Timer angelegt worden, die Ausschlüsse haben also nicht gegriffen.

Die versuchte Aufnahme der Tagesschau (Ausschluss in der originalen exclude.txt vorhanden) wurde abgewiesen mit einer Ähnlichkeit von 80%.

Link to comment
Verstehe ich dich jetzt richtig? Ich müsste dann beim Anlegen der Ausschlüsse wissen, welche Zusatzinformationen außer dem Titel verwendet werden? Sorry, aber das halte ich für keine gute Idee. Wenn ich eine Ausschlussliste für bereits vorhandene Aufnahmen anlegen will, habe ich keine Ahnung, welche Zusatzinformationen bei späteren Wiederholungen im EPG enthalten sein könnten. Ich finde, der Titel muss genügen.

 

Du musst die Zusatzinformationen nicht kennen, es erhöht aber die Präzision, wenn Du diese Zusatzinformationen kennst und der Ausschlussliste hinzufügst.

Diese Zuatzinformation aus dem EPG enthält beispielsweise bei Serien sehr oft den Episoden-Titel. Wenn die Zusatz-Informationen nicht berücksichtigt würden, ließe sich die Zurückweisung einer konkreten Folge einer Serien oft nicht realiseren, es sei denn der Episodenname würde noch im EPG-Titel mit aufgeführt.

Du könntest dann nur pauschal alle Folgen einer Serie zurückweisen lassen.

 

Für die Serie 'SOKO Wismar' könntest Du z.B. folgende Zeilen in die Ausschlussliste schreiben:

 

SOKO Wismar

SOKO Wismar Mord im Schrebergarten

SOKO Wismar Der Bankraub

 

Wenn jetzt als Titel vom TV-Browser 'SOKO Wismar' übergeben wird und Du mit '(-)searchExcludingList (=) 80' eine Mindestähnlichkeit von 80% angeben hast würde beispielsweise folgendes passieren:

 

Annahme: Im EPG werden keine Zusatz-Informationen gefunden:

Es besteht eine 100-prozentige Übereinstimmung mit 'SOKO Wismar' 100 > 80 => Zurückweisung erfolgt. Der Episodentitel wurde nicht berücksichtigt.

 

Annahme: Im EPG steht als Zusatzinformation der Episoden-Titel 'Mord im Schrebergarten'

Die Zeile mit 'SOKO Wismar' alleine greift nicht mehr, da der Titel vom TV-Browser mit dem Episoden-Titel ergänzt wurde, und die Ähnlichleit von 'SOKO Wismar Mord im Schrebergarten' zu 'SOKO Wismar' zu gering ist.

Die Ähnlichkeit von 'SOKO Wismar Mord im Schrebergarten' zu 'SOKO Wismar Mord im Schrebergarten' ist aber 100% => die Sendung wird zurückgewiesen.

 

 

Ich habe versucht, die neue Version zu testen, leider mit wenig Erfolg. Die besprochene Fehlermeldung ist bisher nicht mehr aufgetreten aber die der Ausschlussliste hinzugefügten Einträge brachten keinen Erfolg.

Ich habe folgende 2 Zeilen hinzugefügt:

SOKO Wismar

Der Blaulicht Report

Dann habe ich diese beiden Sendungen aus dem TV Browser zur Aufnahme programmiert und in beiden Fällen sind die Timer angelegt worden, die Ausschlüsse haben also nicht gegriffen.

Die versuchte Aufnahme der Tagesschau (Ausschluss in der originalen exclude.txt vorhanden) wurde abgewiesen mit einer Ähnlichkeit von 80%.

 

Setz mal testweise die Mindestähnlichkeit auf einen ganz niedrigen Wert, z.b. 10% und prüfe, ob dann die Zurückweisung funktioniert.

 

Die Ähnlichkeit bei der Tagesschau von nur 80% ist seltsam.

An welchem Sendetermin und bei welchem Sender werden für die Tagesschau die 80% Ähnlichkeit angezeigt.

Bei mir steht hinter Tagesschau immer 100%, egal welchen Sender ich nehme.

Bitte lade mir doch mal Deine Auschlussliste hoch. Danke!

Link to comment

Hi HacMat,

 

meine exclude.txt habe ich dir als PM zugeschickt.

 

Bei einem neuen Test mit Mindestähnlichkeit = 10% hat der Ausschluss bei SOKO Wismar mit einem Ergebnis von 47% funktioniert, bei Blaulicht Report wude der Timer wieder angelegt.

 

Dabei ist mir aufgefallen, dass bei der Anzeige des Suchergebnisses von SOKO Wismar vor dem Titel noch ein G steht (siehe Screenshot).

Tagesschau (heute 20:15) wurde wieder mit 80% Ähnlichkeit abgewiesen, auch da steht vor dem Titel ein Zeichen, das da nicht hingehört.

 

 

post-2997-0-06085900-1461221169_thumb.jpg

Link to comment

Danke Sem, Deine Fehlerbechreibung war sehr hilfreich.

Deine 'exclude.txt' führte auch bei mir zu dem von Dir beschriebenenem Verhalten.

Hier jetzt noch eine korregierte Version: (Link entfernt, s. folgende Beiträge)

 

VG,

 

HacMat

 

 

Edited by HacMat
Link to comment

Hi HacMat,

 

danke für die neue Version. Habe sie gleich mal getestet mit folgendem Ergebnis:

1. Tagesschau (ARD 20:00), abgewiesen mit 100%

2. SOKO Wismar (ZDF 11:15), abgewiesen mit 50%

3. Der Blaulicht Report (RTL 14:00), siehe Screenshot

 

Da ist noch etwas faul. Beim Blaulicht Report wird als Vergleich Die Küchenschlacht angezeigt, die zeitgleich im ZDF läuft. Ich glaube, da musst du noch mal nachschauen.

post-2997-0-21205900-1461306357_thumb.jpg

Link to comment

Hallo HacMat,

 

mit meiner Test-exclude.txt funktioniert jetzt alles. Allerdings kann ich den Vergleichsprozentsatz nur auf max. 50% setzen, sonst gibt es zu wenig Treffer. Anscheinend liegt das an der Einbezieheung der Zusatzinformationen. Ich werde jetzt meine richtige exclude.txt mal aktivieren und weiter beobachten.

 

Danke für deine Mühe.

Link to comment

Hallo HacMat,

 

Leider gibt es doch noch ein Problem. Ich habe jetzt meine kleine Test-exclude.txt durch meine richtige Ausschlussliste ersetzt. Da diese anscheinend keine Ausschlüsse erzeugt hat, habe ich als erste Zeile "Tagesschau" eingefügt und versucht, für die Tagesschau einen Timer zu erzeugen. Dieser wurde angelegt, der Ausschluss hat also nicht funktioniert. Ersetze ich die Arbeits-exclude wieder durch das kurze Testfile, klappt der Ausschluss.

 

Ich schicke dir meine exclude.txt noch mal per PM und ich wäre dir dankbar, wenn du mal nachsehen könntest, wo das Problem liegt.

Link to comment

Hallo Semko,

Deine Ausschlussliste liegt in der falschen Kodierung vor. Du verwendest UTF-16LE mit BOM (Byte Order Mark).
Die Ausschlussliste muss aber UTF-8 kodiert sein und eine BOM darf auch nicht am Anfang stehen.
Mit der nächsten Version unterstützt der Requester unter anderem auch die Kodierungen UTF-16LE und UTF-16BE und eine eventuell vorhandene BOM wird auch korrekt ausgewertet.
Verwende am besten Notepad++. Notepad++ zeigt unten rechts immer die Kodierung an. Außerdem ist es mit diesem Programm ganz einfach Text in andere Kodierungen zu konvertieren.
Ich hab das mal für Dich gemacht und Dir Deine Ausschlussliste UTF-8 kodiert per PM zurückgeschickt.

Viele Grüße,

HacMat

Link to comment

Hallo HacMat,

 

danke für die konvertierte Ausschlussliste. Nach ersten Tests klappt es damit tatsächlich.

Wie gesagt, erzeuge und ergänze ich meine exclude.txt über Batch Dateien. Damit gibt es keine Windows-interne Möglichkeit, UTF-8 Files zu erzeugen und ich muss wilde Tricks anwenden, um ein anderes Ausgabeformat zu erhalten. Wie man sieht, klappt das auch nicht richtig, das einzige was ich erreichen konnte, war die Ausgabe im unicode (LE). Es wäre natürlich ganz ideal, wenn der RSR den ganz normalen Zeichensatz aus CP850 für die exclude.txt verwenden könnte.

Ich habe mir inzwischen mal den notepad++ besorgt. Leider kann der keine Konvertierungen über die Kommandozeile machen, daher muss ich das manuell erledigen und wie ich mich kenne, werde ich das ständig vergessen.

Link to comment
  • 1 month later...

Geht es nur mir so, oder funktioniert der RSR nicht mehr mit der neuen RS-Version 1.33? Ich erhalte als Fehlermeldung bei jedem Versuch einen neuen Timer anzulegen "Der Timer wurde nicht gefunden".

Link to comment

Hallo Hacmat,

ich war länger unterwegs und komme erst jetzt dazu die version 1.0.8.5 beta zu testen.

soweit funktioniert alles was ich vorher ( 1.0.6.1 ) hatte.

sehr interessiert bin ich an der excluding.txt.

durch semko inspiriert ( thanks :beer: ) , habe ich ein Verzeichnis per dos-command in eine datei ( dir *.mkv>z:\test.txt ) übertragen

und dann in die vorbereitete exclude.txt kopiert.

es handelt sich hierbei um eine serie.

eine aufnahme, die ich heute hierzu über die excluding-funktion haben wollte,

hat nicht funktioniert.

 

es sollte aufgenommen: Adam geht durch die Hölle

verweigert wurde aufgrund von : Durch die Wüste

mit einer Ähnlichkeit von 26%

 

Du erwähnst in deinem help-File eine "Mindestähnlichkeit".

minTitleSim zu verändern ( auf 100 setzen ) funktioniert hier nicht.

Gibt es eine Möglichkeit, für die exluding-einträge einen solchen Wert zu setzen ?

26% sind nicht wirklich viel für einen treffer

 

viele Grüße & Dank
Drake

 

 

Hallo Semko,

danke für den Tipp mit der RS 1.33

ich warte ab bis es bei dir funktioniert.

1.32 funktioniert.

vg Drake

Link to comment

@Semko

Kann ich bestätigen. Alle derzeit veröffentlichten Versionen des RSR sind inkompatibel mit RS 1.33.
Vermutlich ist esnur wenig Aufwand die Kompatibilität wieder herzustellen.
Ich muss das aber erst mal genauer untersuchen.
Ich versuche bis spätestens Ende nächste Woche eine kompatible RSR-Version fertigzustellen.

Bis Du einigermaßen zufrieden mit der Excluding-Funktion ?
Die nächste Version unterstützt auch noch andere Kodierungen als UTF-8.


&Drake

Mit 'searchExcluding' kannst Du auch die Mindestähnlichkeit ab der ein Treffer erzielt wird angeben.

Beispielsweise so:

searchExcluding 40

oder (in der Konfigurationsdatei) so:

searchExcluding = 40

Die Ähnlichkeitsangabe bei Treffern kann manchmal ungenau wirken.
Das liegt daran, dass der RSR dem Titel mitunter einen Untertitel hinzufügt, sofern er diesen im EPG findet und erst dann dieses Titel-Untertitel-Konstrukt in der Ausschlussliste sucht.
Das soll auch so sein, ist aber etwas verwirrend. In der nächsten Version kann man sich die Strings die zum Ausschluss geführt haben, anzeigen lassen. Dadurch ist es dann sehr viel leichter nachzuvollziehen, warum eine Sendung zurückgewiesen wurde.
Achte bitte darauf, dass Du die Auscchlussliste UTF-8-kodierst. Erst mit der nächsten Version wirst Du auch andere Zeichen-Kodierungen verwenden können.

Link to comment

@HacMat

Danke für die Info, ich warte dann die nächste Version ab.

Die exclude Funktion klappt ganz gut. Ich habe searchExcluding auf nur 45% gesetzt, das eliminiert in den meisten Fällen das Problem mit den Untertiteln. Es wäre natürlich super, wenn man in der nächsten Version eine Möglichkeit zur Konfiguration hätte, mit der man wahlweise den Vergleichstext auf den Titel beschränken könnte.

 

Da du gerade an der neuen Version arbeitest, hätte ich da noch eine Kleinigkeit, die sich wahrscheinlich in der letzten Version eingeschlichen hat. Ich wecke zum Erstellen eines Timers den Server aus dem Hibernate mit einem externen WoL Befehl. Da das etwas länger dauert, habe ich den WoL Timeout auf 90 Sekunden gesetzt. Der RSR zählt den Timeout aber immer nur bis 52 runter, dann kommt die Fehlermeldung, dass der Server nicht erreichbar ist. Das hat in früheren Versionen besser funktioniert.

Edited by semko
Link to comment

@Hacmat

 

Hallo Hacmat,

du hast eine doppel-funktion in den schalter implementiert.

war mir so nicht sofort klar. ich dachte 0= off 1 = on.

man muss es nur wissen :D

ja, UTF-8 Kodierung. NP++ zeigt es an.

jetzt funktioniert es !

 

 

ich teste eben eine weitere aufnahme.

mit dem wert 50 bekomme ich den effekt der exclude-liste.

ab 60 nicht mehr.

 

von daher warte auch ich gerne auf die nächste version und bin gespannt,

welche tvb-elemente der rsr vergleicht.

 

bei dem wert 100 hätte ich erwartet, das mein eintrag in der exclude.txt zu 100% identisch in den tvb-daten enthalten sein muss.

Was dann aber keine "Ähnlichkeit" mehr wäre, sondern eine Übereinstimmung ( String.IndexOf Method )

 

benutzt du zur Berechnung der Ähnlichkeit eine win-api-routine ?

wenn ja, welche ?

 

vg

Drake

 

 

@Semko

Wenn du möchtest, kannst du dir folgenden WIN-Befehl ansehen: chcp

 

Den folgenden befehl in einer bat-datei ausgeführt, erstellt ein Abbild des genannten Verzeichnisses in UTF-8 ( 65001 = UTF8 )

 

chcp 65001 && cmd /C dir "W:\Bonanza\*.mkv">"z:\tst3.txt" && chcp 850

 

-dazu wird die codepage auf 65001 (Unicode (UTF-8)) umgestellt

-das Verzeichnis erstellt mit ausgabe in eine datei

-dann die codepage wieder zurück auf 850 ( OEM Multilingual Latin 1; Western European (DOS) )

 

die eingabe von chcp in einer dos-box zeigt dir welche Ausgangs-CodePage dein System verwendet.

ggfs anpassen im script bitte

 

Alle Codepages-Codes findest du unter:

https://msdn.microsoft.com/de-de/library/windows/desktop/dd317756(v=vs.85).aspx

 

Das ganze funktioniert bei mir unter WIN10-Home 64bit

 

vielleicht kannst du es ja gebrauchen.

ich habe den tipp auf einer stackoverflow seite gefunden.

 

vg

Drake

Link to comment

@Semko

 

Es wäre natürlich super, wenn man in der nächsten Version eine Möglichkeit zur Konfiguration hätte, mit der man wahlweise den Vergleichstext auf den Titel beschränken könnte.

 

Daran habe ich auch schon gedacht. Man sollte das dann aber auch für jeden Eintrag der Ausschlussliste getrennt festlegen können.
Ich will die nächste Version jetzt zügig fertigstellen. Die Beseitigung der Inkompatibilität zur Version 1.33 des RS hat jetzt erstmal Priorität.
Sobald das erledigt ist, werde ich mich wieder der Implementierung neuer Funktionen widmen.
Ich muss Erweiterungen ja auch immer Dokumentieren, und das macht oft mehr Arbeit als die Programmierung und ist dazu noch extrem langweilig.

Wenn ich jetzt noch anfange, was neues einzubauen, wird das nichts mehr Richtiges.

 

 

Ich wecke zum Erstellen eines Timers den Server aus dem Hibernate mit einem externen WoL Befehl. Da das etwas länger dauert, habe ich den WoL Timeout auf 90 Sekunden gesetzt. Der RSR zählt den Timeout aber immer nur bis 52 runter, dann kommt die Fehlermeldung, dass der Server nicht erreichbar ist. Das hat in früheren Versionen besser funktioniert.

 

Ich kümmere mich darum. Das muss in der nächsten Version korrekt funktionieren.

 

 

 

@Drake

 

 

... bei dem wert 100 hätte ich erwartet, das mein eintrag in der exclude.txt zu 100% identisch in den tvb-daten enthalten sein muss.

Was dann aber keine "Ähnlichkeit" mehr wäre, sondern eine Übereinstimmung ( String.IndexOf Method )

 

benutzt du zur Berechnung der Ähnlichkeit eine win-api-routine ?

wenn ja, welche ?

 

Nein, in der win-api habe ich danach erst gar nicht gesucht.
Da mir immer noch vorschwebt, Linux irgendwann nativ zu unterstützen, also ohne den Umweg über WINE, versuche ich Win-Api-Calls zu vermeiden. Das erschwert nur die Portierung.
So eine Funktion würde ich also eher in den Standard-Bibliotheken von C++ suchen.
Ich habe mir dann aber doch etwas eigenes gebastelt.
Weil es ganz hilfreich sein kann, eine grobe Vorstellung von der Berechnung von String-Ähnlichkeiten im RSR zu haben, will ich bei dieser Gelegenheit den zugrunde liegenden Algorithmus kurz erwähnen:
Für die Ähnlichkeitsberechnung normalisiere ich erstmal die zu vergleichenden Strings, d. h. ich ich reduziere beispielsweise eine Folge von mehreren Leerzeichen auf ein einzelnes Leerzeichen, ersetze alle Großbuchstaben durch entsprechende Kleinbuchstaben ... usw.
Dannach erfolgt die Berechnung des sogennanten Dice-Koeffizienten. Den habe ich bei Wikipedia entdeckt: https://de.wikipedia.org/wiki/N-Gramm#Dice-Koeffizient
Der Dice-Koeffizient eignet sich als ein mehr oder weniger genaues Maß für die Ähnlichkeit von Strings.
In dem von mir verlinkten Wikipedia-Artikel wird als Beispiel für die Strings "work" und "wirk" der Dice-Koeffizient berechnet.
Jetzt erwartet man natürlich erstmal eine Ähnlichlichkeit von 75%, da nur einer von 4 Buchstaben anders ist.
Der Dice-Koeffizient dieser Strings ist aber 0.5; das entspricht 50% (Ein Dice-Koeefizient von 1 entspricht einer 100-prozentigen Übereinstimmung).
Mit zunehmender Länge der zu vergleichenden Strings erhöht sich aber die Aussagekraft des Dice-Koeffizienten als Ähnlichkeitsmaß deutlich.
Bisher hat sich dieses Verfahren beim RSR bewährt. Ich will aber nicht ausschließen, dass es da noch bessere Algorithmen gibt.

 

Link to comment

@Drake

 

Danke für den Tipp mit chcp aber ich arbeite mit Take Command als command interpreter und damit funktioniert dieser Trick leider nicht. Ich habe schon mit dem Hersteller über das Zeichensatzproblem beim Piping diskutiert aber der sperrt sich leider.

Link to comment

@Semko

 

Hallo Semko,

schade darum.

Unicode ist perse ein Thema, dem man sich heutzutage nicht verschließen kann / sollte.

da ich selbst auch ein großes interesse daran habe, diese excluding funktion zu nutzen,

werde ich sehen, wo die grenzen im MS-DOS-Batch-verfahren liegen und werde mir ggf

selbst ein programm schreiben, das mir möglichst komfortable die Einträge im RSR-Format erstellt.

 

wir können ja zum thema der excluding-listen-erstellung in kontakt bleiben.

 

vg

Drake

 

 

 

 

 

@Hacmat

 

Hallo HacMat,

ja super. das wird sich die linux-gemeinde freuen, wenn dein stück software dort auch laufen wird.

 

von daher verstehe ich dich voll uns ganz, wenn du eigene wege suchst.

habe mir eben den wiki dazu angesehen. kannte ich so noch nicht.

ich hatte mich in der vergangenheit ebenfalls an das thema herangewagt,

habe aber aufgrund schlechter erkennung auch einen eigenen weg gesucht und gefunden.

gehe hierbei aber einen völlig anderen weg, der am ende vorschläge unterbreitet,

die ich hinterher manuell bestätige. passt in keinster weise in dein konzept.

 

ich habe nach meinem vorhergehenden post festgestellt, das ich timer gesetzt bekomme,

obwohl die titel einwandfrei in der exclude-liste waren. kurze Einträge werden eher geblockt wie lange.

 

ich habe mich bei den einträgen in der exclude-liste auf den "EpisodenTitel" einer serie beschränkt, den ich aus meinen Dateinamen extrahiert habe.

 

Du siehst an meinem Beispiel, das ich mit serien beginne und nicht mit Filmen.

Filme werde ich später sicher auch angehen, wenn ich, wie im post an semko geschrieben, eine komfort-lösung für mich erstellt habe,

alle meine laufwerke ( filme, serien,etc... ) so aufzuarbeiten, das dies auf knopfdruck passiert.

 

Wir hatten ja schon mal darüber gesprochen, auto erkennung von pfaden, etc...

 

fürs erste warte ich auf die nächste version um zu sehen, was genau der Dice-Koffi vorgesetzt bekommt, um meine Listen entsprechend anzupassen.

 

ich ahne, das die excluding liste bei mir sehr lange werden wird.

von daher bin ich auf das laufzeit-verhalten deiner routine gespannt, wenn sie mit richtig vielen einträgen klar kommen muss.

Immerhin wird jeder Timer mit allen Einträgen verglichen.

 

bei Serien wäre das noch nicht mal nötig.

Hier würde ja schon der SerienName reichen, um in einer speziellen sektion nach dem passenden episoden-titeln zu suchen usw...

Du merkst sicher schon, wohin meine Gedanken hingehen, was das thema angeht. :D

 

Fürs erste vielen Dank für deine Infos und gutes gelingen für die aktuellen erweiterungen :radscorpion: zur nächsten version.

 

vg

Drake

Link to comment

Kann ich bestätigen. Alle derzeit veröffentlichten Versionen des RSR sind inkompatibel mit RS 1.33.

 

Falls für eine Anpassung Hilfe oder Informationen erforderlich sind, kannst du dich an mich wenden (eventuell per PM, da ich das Projekt nicht so im Auge habe). Auch Tjod kommt als Ansprechpartner in Betracht.

Link to comment

Danke für das Angebot Griga,

ich habe die Ursache für die Inkompatibilität bereits gefunden gefunden.
Es hat sich bei einem der wenigen Nicht-API-Requests die der RSR noch nutzt, ein Parametername geändert.
Auf so etwas war ich aber vorbereitet, ich kann ja nicht erwarten, dass bei diesen inoffiziellen Requests alles so bleibt wie es ist.
Die wenigen noch verbliebenen Nicht-API-Requests fliegen alle nach und nach raus, sodass Inkompatibilitäten mit zukünftigen RS-Versionen bald nicht mehr auftreten sollten.
Kann sein, dass die API für den RSR immer noch zu eingeschränkt ist. So war es zumindest noch vor 2 Jahren. Aber seitdem hat sich ja einiges getan. Das Problem mit der API ist auch, dass die Doku so zerstückelt ist. Viele Erweiterungen sind nur in den Release-Notes beschrieben und nicht auf der API-Doku-Seite. Dadurch unterschätzt man leicht die Mächtigkeit der API. Bei Gelegenheit solltet ihr die Seite mal vervollständigen.

Viele Grüße,

HacMat

Edited by HacMat
Link to comment

@Semko

 

Ich wecke zum Erstellen eines Timers den Server aus dem Hibernate mit einem externen WoL ...


Gibt es ein bestimmten Grund, weshalb, Du Deinen Server mit Hilfe eines externen Tool aufweckst ?

Sollte es nur darum gehen ein Magic Packet zu verschicken, sollte das mit dem RSR, ohne Einschränkung möglich sein.
Wenn Du etwas bei der internen WoL-Funktion vermisst, muss ich das wissen!

Viele Grüße,

HacMat

Link to comment

@Drake

 

ich habe nach meinem vorhergehenden post festgestellt, das ich timer gesetzt bekomme,

obwohl die titel einwandfrei in der exclude-liste waren. kurze Einträge werden eher geblockt wie lange.

 

Die Titel in der Ausschlussliste sollten immer geblockt werden, wenn die gesetzte Mindestähnlichkeit überschritten wird. Wenn bestimmte Titel nicht geblockt werden, bei denen Du es eigentlich erwartest, solltest Du die Mindestähnlichkeit heruntersetzen.
Du kannst bei geblockten Titeln immer noch auf 'ignorieren' klicken, sodass der Timer dennoch gesetzt wird.
Wenn Dir etwas seltsam vorkommt kannst Du mir auch gerne Deine Ausschlussliste per PM zu schicken. Es muss nicht die ganze Liste sein.
Es reicht eigentlich schon die Zeile, bei der die Zurückweisung deiner Meinung nach nicht richtig funktioniert.
Warte aber erstmal die nächste Version ab.

Grüße,

HacMat

Edited by HacMat
Link to comment

@HacMat

@Semko

 


Gibt es ein bestimmten Grund, weshalb, Du Deinen Server mit Hilfe eines externen Tool aufweckst ?

Ja, einen ganz einfachen. Ich arbeite mit einer FritzBox als Router und die sperrt Broadcasts. Deshalb ist es mit diesem Router ohne Bastelei (modifizierte Firmware) fast unmöglich, darüber Magic Packets an die angeschlossenen PCs zu schicken.

Link to comment

Das Problem mit der API ist auch, dass die Doku so zerstückelt ist. Viele Erweiterungen sind nur in den Release-Notes beschrieben und nicht auf der API-Doku-Seite. Dadurch unterschätzt man leicht die Mächtigkeit der API. Bei Gelegenheit solltet ihr die Seite mal vervollständigen.

 

Das ist richtig, aber wer soll "ihr" sein? Würde ich mir das Wiki vornehmen und alles einsammeln/ergänzen/korrigieren, was dort fehlt/veraltet ist, brächte dies voraussichtlich die Entwicklung des DVBViewers und RS über Monate zum Erliegen. Sinn des Wikis ist, das auch andere Interessierte etwas beitragen können, also zum Beispiel du :), wenn du feststellst, dass dort ein Stück Doku fehlt, das du im ChangeLog vorfindest. Dafür brauchst du nicht gleich einen ganzen Artikel schreiben. Schon etwas Copy & Paste in Verbindung mit dem bei dir zweifellos vorhandenen Sachverstand hilft.

Link to comment

Sorry Griga,

 

mir war gar nicht bewusst, dass es sich dabei um ein Wiki handelt und ich Ergänzungen vornehmen kann.

Natürlich kann ich dabei helfen die API-Dokumentation zu vervollständigen.

Ich wollte sowieso die Ergänzungen aus den Release-Notes mal für mich zusammenfassen und kann ich sie dann auch gleich ins Wiki schreiben.

Mach ich aber jetzt nicht sofort, sondern sobald ich mal Zeit habe.

Link to comment

Hallo Tjod,

vielen Dank, dass Du die API-Dokumentation bereits vervollständigt hast.
Wenn ich feststelle, das noch etwas fehlt, werde ich ab jetzt das Wiki immer entsprechend ergänzen.

Ich verwende nur noch '/timer_add.html?..' als einzigen Nicht-API-Request.
Ich glaube der Haupt-Grund, weshalb ich mich für diesen Request entschieden habe, war, dass sich mit '/api/timeradd.html' erstellte Timer nachträglich im Web-Interface nicht so umfangreich editieren ließen, wie die über das Web-Interface generierten. Das hat sich möglicherweise aber geändert.
Außerdem wurde keine Textdatei mit einer Inhaltsangabe erstellt. Das hatte zur Folge, dass man im Web-Interface im Aufnahme-Reiter auch keine Inhaltsangabe angzeigt bekam, wenn der Mauszeiger über einem Aufnahme-Eintrag schwebte. Mir ist es sehr wichtig, dass man keine Nachteile gegenüber der Timer-Erstellung über das Web-Interface hat, wenn man Timer über den RSR setzt. Deswegen kam '/api/timeradd.html' nicht in Frage.
Ich werde in einer der nächsten Versionen ganz auf API-Requests umstellen. Gibt es dabei Einschränkungen werde ich, diese dokumentieren, und als Option die Verwendung von /timer_add.html' weiterhin anbieten. Dann wisst ihr auch, was ich an der API noch vermisse oder einfach nur übersehen habe.

Ich muss noch eine Kleinigkeit betreffend des Requests '/api/getchannelsxml?tuner=1...' loswerden:
Bei dem vom RS 1.33 zurückgegebenen XML-Dokument hat sich die Schreibweise von '<tuner ... />' in '<Tuner ... />' unnötigerweise geändert.
Alle anderen Tags werden weiterhin kleingeschrieben, weswegen ich vermute, dass diese Änderung eigentlich nicht beabsichtigt war.
Diese Änderung hat zusätzlich mit zur der Inkompatibilität des RSR mit der neuen RS-Version beigetragen.
In der XML wird bei den Tags zwischen Groß- und Kleinschreibung unterschieden, weshalb mein Programm auch zwischen Tags unterscheidet, die nur in der Groß/Kleinschreibung voneinander abweichen.
Die Inkompatibilität ließ sich zwar sehr einfach beheben. Da aber auch andere Anwendungen betroffen sein könnten, und es möglicherweise erstmal gar nicht auffällt, wollte ich das hier nur mal kurz erwähnen.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...