Jump to content

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


HacMat

Recommended Posts

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 habe alles was ich gefunden habe zusammengesucht aber noch nicht durchgerostet. :innocent:

Und der gesamte streaming Teil fehlt noch.

Und das Layout vereinheitliche ist auch bei weitem noch nicht fertig ;)

 

 

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.

Da sollte es keinen unterschied geben wenn pdc= gesetzt wird. Ohne das gehen die EPG Überwachungsgeschichten nicht. Sonst sollte es keinerlei unterscheide geben.

 

 

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.

Ob die EPG-Informationsdatei erstellt wird ist eine generelle Einstellung im RS, unabhängig vom Timer.

 

Aber das EPG sollte immer in der Datenbank landen und im Webinterface angezeigt werden. Egal wie der Timer erstellt wurde. Wenn ich richtig liege müsste das EPG aus der Mitte der Aufnahme genommen werden.

Link to comment

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.

 

Bestätigt. Ist wahrscheinlich beim Versuch passiert, die chaotische Groß/Kleinschreibung im RS Code zu glätten. Ich werde es wieder zurück ändern. Für eine gewisse Zeit musst du dann allerdings beide Schreibweisen in Betracht ziehen ;)

 

Alle anderen Tags werden weiterhin kleingeschrieben, weswegen ich vermute, dass diese Änderung eigentlich nicht beabsichtigt war.

 

Die Behauptung ist falsch, die Vermutung ist richtig. Da gibt es auch noch EPGID und ID als Tag, und das war schon immer so.

Link to comment

Die Behauptung ist falsch, die Vermutung ist richtig. Da gibt es auch noch EPGID und ID als Tag, und das war schon immer so.

 

Falsch! Die Behauptung, dass meine Behauptung falsch sei, ist falsch, d.h. meine Behauptung ist richtig. :)

Bei den von Dir aufgeführten Tags handelt es sich nämlich nicht um Tags, sondern nur um Attribute zum Tag 'channel'.

In dem mit '/api/getchannelsxml?tuner=1' zurückgegebenen XML-Dokument finden sich nur die Tags 'channels', 'root', 'group','channel' und eben 'Tuner', wobei das 't' in Tuner seit der Version 1.33 großgeschrieben wird.

Link to comment
Falsch! Die Behauptung, dass meine Behauptung falsch sei, ist falsch, d.h. meine Behauptung ist richtig.

 

Tatsächlich? Das ist ja kein Zustand! Wer soll da noch durchblicken? Dann korrigiere ich das mal besser so, dass die falschen Behauptungen richtig werden... :) Der Delphi Code, der die XML zusammenbaut, glänzt nicht gerade durch Übersichtlichkeit, und die ganz große Ahnung von XML habe ich auch nicht.

Link to comment

Neue Version RS Requester 1.0.8.6

Behobene Fehler*:

Kompatibilität zu RS 1.33.0.0 hergestellt.

WoL: Vorzeitiger Abbruch des Wartens auf Erreichbarkeit des RS beseitigt.

*) Korrekturen von Fehlern die bisher nicht thematisiert wurden, sind nicht aufgeführt.

Neue Funktionen:

Neuer Schlüssel/Parameter: 'searchExcludingListEncoding'

Als Kodierung der Ausschlussliste wird als Vorgabe UTF-8 angenommen.
Möchte man eine andere Kodierung verwenden, lässt sich das mit 'searchExcludingListEncoding' erreichen.

Auswählbare Optionen:

{0|UTF-8} → UTF-8-Kodierung* (überwiegend 1 Byte pro Zeichen, maximal 3 Byte proZeichen)
{1|UTF-16|UTF-16LE} → UTF-16 Little Endian* (2 Byte pro Zeichen, niederwertiges Byte als erstes)
{2|UTF-16BE} → UTF-16 Big Endian* (2 Byte pro Zeichen, höherwertiges Byte als erstes)
{3|UTF-BOM|read BOM} → UTF-8, UTF-16LE oder UTF-16BE: Zur Bestimmung der Kodierung wird die BOM (Byte order Mark) ausgewertet.

Fehlt am Anfang der Ausschlussliste die BOM, wird UTF-8 verwendet.
Wenn man einen Texteditor nutzt der Byte-Order-Marks unterstützt, kann man das Unicode-Format der Ausschlussliste

beliebig zwischen UTF-16LE, UTF-16BE und UTF-8 konvertieren. Der RSR erkennt anhand der BOM automatisch das richtige Format.

Diese Option ist die Vorgabe.

{4|ANSI} → ANSI-Kodierung (1 Byte pro Zeichen). Zur Dekodierung wird die aktuell gewählte ANSI-Codepage verwendet.

{5|OEM|DOS} → Die derzeitig aktive System-OEM-Codepage wird zur Dekodierung der Ausschlussliste verwendet,

z.B. Codepage 850 (1 Byte pro Zeichen).

Die OEM-Codepage, lässt sich mit dem Befehl 'CHCP' in der Eingabeaufforderung oder innerhalb eines Scriptes ändern.

*) Bei allen UTF-Kodierungen wird zur Zeit nur die BMP (Basic Multilingual Plane) unterstützt. Die BMP enthält die Schriftzeichen, fast aller noch gesprochenen Sprachen.

Wenn die Konfigurationshilfe mit '(-)configSupport (=) enabled' (Vorgabe) aktiviert ist, werden bei Treffern in der Ausschlussliste die normalisierten Strings angezeigt, bei der die Ähnlichkeitsbestimmung zum Greifen der Ausschlussfunktion geführt haben.
Zum Testen der eigenen Ausschlussliste empfiehlt es sich die Mindestähnlichkeit (Argument von 'searchExcludingList') erstmal auf einen sehr niedrigen Wert zu setzen, und nach und nach zu Erhöhen, bis sich die Fehltreffer-Häufigkeit, auf ein akzeptables Maß reduziert hat.

 

Download RS Requester: RS Requester 1.0.8.6.zip

 

Wer den RS Requester zusammen mit dem TV-Movie Clickfinder verwenden möchte braucht noch das RSR Clickfinder-Add-On. Beim Clickfinder-Add-On hat sich nicht geändert.

 

Download RSR Clickfinder-Add-On (keine Änderung): http://www.DVBViewer.tv/forum/topic/55874-commandline-interface-windowslinuxwine-fur-den-rs/?p=441643

Link to comment

Hallo HacMat,

vielen dank für dein update.

Noch bin ich auf dem RS 1.32.0.0 unterwegs und soweit funktioniert bei mir auch alles.

Ich möchte noch einmal auf die Ähnlichkeit-Funktion zurückkommen.

Neben Einträgen, die die Funktion auslösen und tun was Sie sollen,

habe ich hier ein negativ beispiel.

 

 

TVB:

heute · Mo, 13. Jun · 23:55-00:50 · Sat.1
Navy CIS
Tot im Eis

 

exclude.ini

Navy CIS Tot im Eis

 

rsreq.ini

searchExcludingList = 40
searchExcludingListReadFile = "D:\DVBViewer_TVBrowser_Requestor\exclude.txt"
searchExcludingListEncoding = UTF-8

 

Ergebniss:

Die Aufnahme wird gesetzt.

Die Exclude-Funktion erkennt den Eintrag nicht.

 

Frage:

Sollte ich den Eintrag in meiner exclude abändern ?

Sind 40 zu tief oder zu hoch ?

 

viele Grüße

Drake

Link to comment

Hallo Drake,

Ich habe es nicht geschafft den Fehler zu reproduzieren.
Bei mir funktioniert es:

 

 

...
Der Titel wurde in der Ausschlussliste gefunden:
Navy CIS Tot im Eis (60%)
Berücksichtigte Zusatzinformationen aus dem EPG:
Tot im Eis, Crime-Serie, USA 2006

Normalisierte Vergleichsstrings:
navy cis tot im eis (AL)
navy cis tot im eis,crime-serie,usa 2006

Zum Fortfahren den Button 'Ignorieren' betätigen.
Mit 'Abbrechen' wird kein Timer erzeugt.
...

 

Kann es sein, dass Du mehrere Ausschlusslisten erstellt hast und nur die falsche versehentlich editiert hast ?

 

 

TVB:

heute · Mo, 13. Jun · 23:55-00:50 · Sat.1
Navy CIS
Tot im Eis

 

exclude.ini

Navy CIS Tot im Eis

 

rsreq.ini

searchExcludingList = 40
searchExcludingListReadFile = "D:\DVBViewer_TVBrowser_Requestor\exclude.txt"
searchExcludingListEncoding = UTF-8

 

Du führst einmal die Datei 'exclude.ini' in Deinem Beispiel auf, legst dann aber einen Pfad auf "D:\DVBViewer_TVBrowser_Requestor\exclude.txt"
Möglicherweise hast Du versehentlich eine zweite Ausschlussliste 'exclude.ini' mit der Zeile 'Navy CIS Tot im Eis' erstellt, die vom RSR gar nicht gelesen wird ?

Überprüf das bitte nochmal.
Davon abgesehen würde ich die Datei mit der Ausschlussliste nicht mit der Dateinamenserweiterung 'ini' versehen, falls Du das überhaupt getan hast.
Ist ja schließlich keine Initialisierungsdatei oder Konfigurationsdatei.

Dem RSR ist das natürlich egal, mich würde das aber verwirren und Dich vermutlich irgendwann auch.

Viele Grüße,

HacMat

Link to comment

Guten Morgen HacMat,

wenn die finger schneller sind, wie der kopf :D passiert sowas.

nein, ich habe keine 2 exclude-dateien.

nur eine und sie heiß .txt am ende.

das mit der .ini war ein versehen. sry, für die falsche spur.

( Frage: Wie kann ich meine eigenen Beiträge korrigieren ? )

 

ich hänge meine exclude.txt an den post an.

sie hat 2 einträge

 

Navy CIS Verraten

Navy CIS Kollateralschaden

 

der erste eintrag wird nicht erkannt

der zweite eintrag wird erkannt

 

ich habe die exclude.txt komplett neu in n++ erstellt und den eintrag manuell hinzugefügt.

ähnlichkeit auf 60%

 

vielleicht siehst du etwas, das ich hier übersehe.

n++ zeigt mir utf-8 an

 

hier nochmal meine config dazu:

searchExcludingList = 60
searchExcludingListReadFile = "D:\DVBViewer_TVBrowser_Requestor\exclude.txt"
searchExcludingListEncoding = UTF-8
viele grüße
Drake
Link to comment

Bei mir funktioniert der Ausschluss auch mit Deiner Beispiel-Datei fehlerfrei:

Der Titel wurde in der Ausschlussliste gefunden:
Navy CIS Verraten (57%)
Berücksichtigte Zusatzinformationen aus dem EPG:
Verraten, Crime-Serie, USA 2008

Normalisierte Vergleichsstrings:
navy cis verraten (AL)
navy cis verraten,crime-serie,usa 2008

Welches Kabel Eins nutzt Du denn ?
Ich habe es mit Kabel Eins Schweiz getestet.
Was passiert, wenn Du testweise die Mindestähnlichkeit auf 1 setzt.
Funktioniert dann die Zurückweisung ? Und wenn ja, was wird vom RSR ausgegeben ?
Denkst Du auch daran jedesmal, nach dem Du in N++ Deine Ausschlussliste bearbeitet hast, diese zu speichern bevor Du mit ihr experimentierst ?
Das vergisst man leicht.
Falls Du mir noch eine Datei hoch lädst, nimm bitte Beispiele mit späteren Sendetermin, sonst ist das Zeitfenster zum Testen zu knapp bemessen.

Viele Grüße,

HacMat

Link to comment

Mir ist gerade aufgefallen, dass Du die Mindest-Ähnlichkeit auf 60% gesetzt hast.

Bei mir wird 'Navy CIS Verraten' mit einer Ähnlichkeit von 57% geblockt.

Du hast die Mindest-Ähnlichkeit auf 60% gesetzt. Es ist also kein Fehler, wenn bei Dir die Aufnahme zugelassen wird.

Ich würde einfach an Deiner Stelle Deinen Eintrag mit 'crime-serie, USA' ergänzen, dann musst Du die Mindest-Ähnlichkeit nicht heruntersetzen.

Du kannst auch für ein und die selbe Sendung mehrfach Einträge in Deiner Ausschlussliste haben, um verschiedene Zusatz-Infos aus dem EPG zu berücksichtigen.

Es kann ja sein das in den EPG-Zusatz-Infos eines anderen Sender auf dem CIS gesendet wird, das 'Crime-Serie, USA' nicht enthalten ist.

Link to comment

Hallo HacMat,

du kannst ausschließen, das ich die exclude.txt nicht gespeichert habe.

ich passe künftig auf, das die aufnahmen weit genug in der zukunft liegen.

ich habe jetzt das gleiche problem, das ich es nicht gegen-testen kann.

in der vergangenheit geht das nicht mehr.

 

kabel1 nehme ich die ID 2359890960395027550|kabel eins

dürfte die deutsche version sein.

 

 

ich bin noch am überlegen,

ob und wie ich deinen vorschlag, meine exclude-einträge um den EPG Zusatz zu erweitern,

der zwangsläufig nicht zu meinen dateinamen gehört, dennoch aufnehmen kann.

ich sehe weiterhin, das fast jeder sender diese form von "verschmutzung" :laughing: vornimmt.

 

so langsam verstehe ich auch den zusammenhang zwischen kurzen und längeren episoden-titeln und

der Ähnlichkeitsberechnung bzw. der treffer-genauigkeit.

 

je nach "verschmutzung" ( in meinem hier gewähltem Beispiel ist es ",crime-serie, usa 2012" aus den epg-daten, verändert sich der gesamt-eintrag bei eher kurzen episoden-titel derart, das ein treffer kaum möglich ist.

 

hingegen bei längeren episoden-titel der treffer doch statt findet.

Bei längeren Einträgen ist die Ähnlichkeit, viel höher wie bei kurzen.

 

beispiel:

60%

normalisierter EPG eintrag: navy cis l.a. jada, crime-serie, usa 2012

 

exclude-eintrag: KEIN TREFFER navy cis l.a jada

KEIN TREFFER navy cis l.a. jada

TREFFER navy cis l.a. jada, crime-serie

TREFFER navy cis l.a jada, crime-serie

 

Von daher baue ich das jetzt jetzt erst einmal selektiv bei den serien ein, wo ich den epg-zusatz eindeutig identifizieren kann ( laut rs-internetseite ).

 

danke für deinen tipp

Drake

Link to comment

ich bin noch am überlegen,

ob und wie ich deinen vorschlag, meine exclude-einträge um den EPG Zusatz zu erweitern,

der zwangsläufig nicht zu meinen dateinamen gehört, dennoch aufnehmen kann.

ich sehe weiterhin, das fast jeder sender diese form von "verschmutzung" :laughing: vornimmt.

 

Es wäre natürlich schön, wenn der reine Episoden-Titel in dieser EPG-Zusatz-Info stehen würde. Das ist aber, wie Du selbst schon bemerkt hast, eher selten so.

Deshalb bleibt Dir wohl vorerst nichts anderes übrig, als die "Verschmutzung" in Deine Ausschlussliste zu übernehmen oder die Mindest-Ähnlichkeit entsprechend herabzusetzen.

Vielleicht sollte ich einen konfigurierbaren Filter implementieren, mit der sich die Zusatz-Info säubern lässt, sodass beispielsweise 'crime-serie' entfernt wird bevor die Ähnlichkeitsberechnung stattfindet.

Link to comment
  • 2 weeks later...
  • Hi HacMat,

habe nun die 1.0.8.6 mit RS 1.33. zum laufen gebracht. Scheint soweit OK.

Aber in Clickfinder 5.3 geht "RS: Sendung löschen" nicht mehr.

Meldet eine fehlende Datei obwohl alles an seinem gewohnten Platz ist.

"RS: Sendung aufnehmen" geht weiterhin einwandfrei.

 

Dann habe ich den Menuepunkt in Clickfinder gelöscht und wollte ihn laut Anleitung wieder mit setaddon wieder hinzufügen.

Der Befehl wird auch ohne Fehler ausgeführt aber der Menüepunkt erscheint nicht.

 

Wäre schön wenn du das mal testen könntest.

Bei mir läuft win10 Enterprise 2015 LTSB x64

 

Grüße

 

Klaus

Link to comment

Guten Abend Klaus,

mit der fehlenden Datei ist die 'rsreq.exe' oder die Konfigurationsdatei 'cfaddon.cfg' gemeint. Der Pfad zu einer dieser Dateien muss bei Dir ungültig sein.
Ich habe den RSR 1.0.8.6 zusammen mit der Testversion des Clickfinders 5.3 ausprobiert. Sowohl das Setzen, als auch das Löschen funktioniert bei mir unter Windows 7 einwandfrei.
Bitte überprüfe noch mal die Dateipfade. Den Pfad zur 'rsreq.exe' findest Du hinter 'Requester=', den zur 'cfaddon.cfg' hinter 'Konfiguration='.

Es ist wichtig, dass Du alle Anführungszeichen setzt und die Leerzeichen auch außerhalb von Anführungszeichen nicht entfernst. Also auch die Leerzeichen hinter den Kommas dürfen nicht weggelassen werden.
Das Programm setaddon.exe ist leider sehr penibel, was die Syntax des Parameter-Strings betrifft. Ich glaube es gibt auch keine Fehlermeldung aus, wenn man etwas falsch gemacht hat. Es funktioniert nur einfach nicht.
Denke auch daran, den Clickfinder neu zu starten, nachdem Du mit setaddon.exe einen Menü-Eintrag erzeugt oder entfernst hast. Erst dann sind die Änderungen wirksam.
Vielleicht ist es auch erforderlich, dass der Clickfinder nicht läuft (auch nicht im Hintergrund) wenn Du die setaddon.exe ausführst. Das musst Du ausprobieren.
Falls Du nicht weiter kommst, poste bitte mal den vollständigen setaddon.exe-Aufruf den Du, zum Erzeugen des Löschen-Menü-Eintrages, in der Eingabeaufforderung verwendest.

Viele Grüße,

HacMat

Link to comment

Vielleicht sehe ich den Wald vor lauter Bäumen nicht.

 

Kannst DU es mal bitte für mich testen?

 

"C:\ Program Files (x86)\RS Requester\setaddon.exe" "RSR-Delete", "RS: Aufnahmeauftrag löschen", "C:\ Program Files (x86)\RS Requester\cfaddon.exe", 2, "Requester="C:\ Program Files (x86)\RS Requester\rsreq.exe" Konfiguration="C:\ Program Files (x86)\RS Requester\cfaddon.cfg" Parameter="-request delete -readfile "C:\ Program Files (x86)\RS Requester\Requester.cfg""", 2, "Hier klicken, um dem Recording den Aufnahmeauftrag zu entziehen."

 

 

Danke Klaus

Link to comment

So wie Du es machst funktioniert es auch bei mir nicht.

Du hast vor 'Program Files (x86)' immer ein Leerzeichen stehen.

 

Damit sollte es bei Dir gehen:

 

"C:\Program Files (x86)\RS Requester\setaddon.exe" "RSR-Delete", "RS: Aufnahmeauftrag löschen", "C:\Program Files (x86)\RS Requester\cfaddon.exe", 2, "Requester="C:\Program Files (x86)\RS Requester\rsreq.exe" Konfiguration="C:\Program Files (x86)\RS Requester\cfaddon.cfg" Parameter="-request delete -readfile "C:\Program Files (x86)\RS Requester\Requester.cfg""", 2, "Hier klicken, um dem Recording den Aufnahmeauftrag zu entziehen."

 

Viele Grüße,

 

HacMat

Link to comment

sorry tut's weiterhin nicht. Die Leerzeichen sind erst beim letzten Versuch mit "reingerutscht"

Vielleicht ein Berechtigungsproblem, hatte das schon mehrfach mit Win10.

Link to comment

Seit wann funktioniert denn das Löschen nicht mehr? Seitdem Du die alte rsreq.exe durch die neue ausgetauscht hast oder etwa seitdem Du ein älteres Windows auf Windows 10 upgegraded hast.
Mich wundert es sehr, dass das Setzen im Clickfinder normal funktioniert, beim Versuch einen Timer zu löschen aber gemeldet wird, dass eine Datei nicht gefunden wurde.
Ich gehe zur Zeit davon aus, dass die Fehlermeldung über die nicht gefundenen Datei von der cfaddon.exe ausgeben wird. Sollte die Fehlermeldung eine anderen Ursprung haben, z.B. den RS Requester oder den Clickfinder, korregiere mich bitte.
Leider habe ich keinen Windows 10 Rechner. Der Server auf dem der RS installiert ist, läuft bei mir unter Windows 8.1. Dort werde ich morgen mal die Clickfinder-Demo installieren.
Du hast sicherlich schon versucht die setaddon.exe als Administrator auszuführen. Wenn nicht versuch das mal.

Link to comment

seit ich die rsreq.exe getauscht habe!

was macht setaddon.exe eignentlich? Schreibt es in die registry oder in eine ini oä?

Wenn ini oä wo ist die zufinden?

 

Grüße

Klaus

Link to comment

was macht setaddon.exe eignentlich? Schreibt es in die registry oder in eine ini oä?

 

Da bin ich überfragt. Die 'setaddon.exe' wurde nicht von mir entwickelt, sondern ist ein Tool des Clickfinders um Plug-Ins in den CF einzubinden.

Mir ist aufgefallen, dass das 'setaddon.exe' auch im Clickfinder Verzeichnis zu finden ist und dass das Kompilierungs-Datum (2012) neuer ist als das der 'setaddon.exe' die ich mit dem Clickfinder-Addon ausgeliefert habe (Compilation Timestamp: 2006). Die Versionsnummer 1.0.0.0 ist bei beiden identisch. Es handelt sich aber definitiv um unterschiedliche Dateien. Vielleicht solltest Du es nochmal mit der im Clickfinder-Verzeichnis enthaltenen 'setaddon.exe' versuchen, da diese aktueller ist.

Auf meinem Server mit Windows 8.1 funktioniert der Clickfinder zusammen mit dem RSR 1.0.8.6 ebenfalls anstandslos. Vielleicht ist es ein Kompatibilitäts-Problem der setaddon.exe mit Windows 10. Hast Du mal versucht die settaddon.exe oder den ganzem Clickfinder in einem der Windows- Kompatibilitäts-Modi auszuführen ?

 

Ich habe in einem Forum gelesen, dass bei dem Verzeichnis 'C:\Program Files (x86)' unter Windows 10 das Verstecken-Attribut gesetzt sein soll. Möglicherweise hat die setaddon.exe oder der CF damit ein Problem. Der CF muss ja die cfaddon.exe unter 'C:\Program Files (x86)\RS Requester' aufrufen, die wiederum die rsreq.exe ausführt.

Ich werde das Windows 8.1 demnächst auf Windows 10 upgraden und die Zusammenarbeit von Clickfinder und RSR nochmals testen.

Ich glaube nicht, dass das Problem seine Ursache im RSR 1.0.8.6 hat oder in der 'cfaddon.exe'. Aber um das auzuschließen kannst Du ja mal die 'rsreq.exe' der Version 1.0.8.6 durch die, die Du als letztes verwendet hast, austauschen.

 

Jetzt noch etwas anderes: Ist bei dir das Schriftbild des RSR unter Windows 10 auch so matschig?

Bei mir ist es unter Windows 7 gestochen scharf, unter Windows 8.1. scheint dagegen hinter den Buchstaben ein Schatten zu sein, der das Schriftbild verschwommen erscheinen lässt. Das gleiche gilt auch für den Clickfinder.

 

VG,

 

HacMat

Link to comment

Hi HacMat,

 

habe auch die "neue" setaddon" getestet, gleiches Ergebnis!

 

die Werte für die Addons werden mit setaddon in die Registry geschrieben.

Wenn ich den Reg. Branch von Delete in der Registry lösche und dann setaddon ausführe um es wieder zu installieren dann erscheint der Branch nicht wieder, es scheint so zu sein das setaddon aus welchen Gründen auch immer nicht mehr die Registry ändern kann.

 

Könntest Du mir den unter 8.1 funktionierenden kompletten Branch "EWE" mal zukommen lassen (einfach nach "rsreq" suchen).

 

Das mit dem unscharfen Zeichen schau ich mir heute Abend mal an.

 

Grüße

Klaus

Link to comment
die Werte für die Addons werden mit setaddon in die Registry geschrieben.

 

Das ist auch das Einzige was die setaddon.exe zu tun scheint.

Wenn das unter Windows 10 bei Dir nicht funktioniert, könntest Du die erforderlichen Schlüssel auch manuell erstellen. Das ist vermutlich auch das was Du jetzt vorhast.

Ich habe auf meinem Windows-8.1-Rechner die relevanten Einträge der Registry exportiert. Am besten bearbeitest Du sie mit Notepad++, da das Reg-Dateien unterstützt und die Syntax hevorhebt. Bevor Du die angepasste 'RSR-Delete.reg' importierst solltest Du noch eine Sicherheits-Copy Deiner Registry anlegen.

 

Was Du auf jeden Fall anpassen musst ist [HKEY_USERS\S-..._Classes]. Alles andere kannst Du so lassen. Die Pfade sind bei Dir ja die selben wie bei mir.

 

Den Wert für [HKEY_USERS\S-..._Classes] entnimmst Du AddOnRSR-Record

 

Download: Reg.zip

 

Was Du auch noch versuchen kannst, ist das 'ö' des setaddon-Aufrufs in 'löschen' in 'oe' abzuändern. '"C:\Program Files (x86)\RS Requester\setaddon.exe" "RSR-Record",...' hat ja funktioniert. Und dort wurden nur ASCII-Zeichen verwendet. Einen anderen entscheidenen Unterschied zu '"C:\Program Files (x86)\RS Requester\setaddon.exe" "RSR-Delete",...' sehe ich nicht.

 

vG,

 

HacMat

Link to comment
  • 1 month later...

Hallo Klaus,

ist nun schon etwas länger her, trotzdem will ich das Thema nochmal aufgreifen:

ich konnte jetzt, den Clickfinder zusammen mit dem RS Requester unter Windows 10 testen.
Die Integration des RSR Clickfinder-Addons mit Hilfe der setaddon.exe aus dem Clickfinder-Verzeichnis, verlief ohne Probleme, wenn ich die setaddon.exe über die Administrator-Eingabeaufforderung aufgerufen habe.
Die Menüpunkte zum Erstellen und zum Löschen eines Timers wurden im Kontext-Menü des CF korrekt angelegt, und funktionierten danach auch einwandfrei.
Unter Verwendung der gewöhnlichen Eingabeaufforderung funktionerte es dagegen nicht, obwohl der Clickfinder mir mitteilte, dass das Addon installiert wurde.

Was mir noch negativ auffiel, ist dass der CF jetzt nur noch mit Administrator-Rechten funktioniert. Ich habe den Standard-Benutzern vollen Zugriff auf die Verzeichnisse des Clickfinders gewährt, trotzdem beschwert sich der CF, dass er den Arbeitsordner nicht setzen kann. Ich habe auch mit den Kompatibilitätsmodi für ältere Windows-Versionen experimentiert - ohne Erfolg.

Das Problem mit dem verwaschenem Schriftbild in Clickfinder und Requester tritt erfreulicherweise nach dem Update von Windows8.1 auf Windows 10 nicht mehr auf. Womöglich hatte ich nur etwas verstellt.

Funktioniert bei Dir jetzt der CF unter Windows 10 zufriedenstellend, oder hast Du mittlerweile aufgegeben ?

Viele Grüße,

HacMat

Link to comment

Hi HacMat,

 

bin da eher wie Du aufgestellt, gebe nicht so schnell auf.

Wenn ich einen Timer löschen muß dann mache ich das nun über das WebInterface.

 

Komisch bei mir geht CF ohne Admin Rechte.

 

Ich habe immer mit Admin Rechten installiert.

 

Aber ich glaube das hat mit Rechten zu tun auf Reg-Zweige oder Verzeichnisebenen kA. Habe schon viele Phänomen in der Richtung gehabt speziell bei älteren Programmen von Corel aber auch andere.

 

Was mir aufgefallen ist das je nach dem wie die "Wetterlage" ist mal der Löscheintrag und mal der Aufnahmeeintrag vorhanden ist und, jetzt kommt's, sporadisch ohne irgend ein zutun schon mal beide Einträge wieder sichtbar sind.

Habe Herrn E. deswegen mal angeschrieben aber mit wenig Gegenliebe, alles schon "zu lange her".

 

Trotzdem ist und bleib das für mich die perfekte Lösung! RS-Requester - Recording Service - Click Finder. Sehr komfortabel trotz fehlendem Löscheintrag.

 

Beste Grüße

 

Klaus

Link to comment
Komisch bei mir geht CF ohne Admin Rechte.

 

Ich habe immer mit Admin Rechten installiert.

 

Aber ich glaube das hat mit Rechten zu tun auf Reg-Zweige oder Verzeichnisebenen kA. Habe schon viele Phänomen in der Richtung gehabt speziell bei älteren Programmen von Corel aber auch andere.

 

Ich habe den CF direkt im Administrator-Konto installiert. Hat nichts gebracht. Bei eingeschränkten Benutzer-Konten wird immer nach dem Administrator-Passwort gefragt und das eben auch, wenn ich den Standard-Benutzern maximale Rechte für die CF-Ordner einräume. Möglicherweise hängt es tatsächlich damit zusammen, dass der CF bei jedem Start in die Registry schreiben will, und nicht die dafür notwendigen Berechtigungen hat. Ist aber auch egal. Ich selbst nutze ja den TV-Browser und bei Dir und anderen (?) tritt das Problem schließlich nicht auf.

 

 

Was mir aufgefallen ist das je nach dem wie die "Wetterlage" ist mal der Löscheintrag und mal der Aufnahmeeintrag vorhanden ist und, jetzt kommt's, sporadisch ohne irgend ein zutun schon mal beide Einträge wieder sichtbar sind.

 

Das kann nur ein Bug direkt im Clickfinder oder in der von ihm verwendeten Laufzeitungebung sein. Möglicherweise wird eine Variable nicht sauber initialisiert. Manchmal hast Du Glück und die Variable enthält zufällig einen unproblematischen Wert, sodass der Menü-Punkt angezeigt wird. Ist aber nur Spekulation. Sicher ist, dass es nichts mit dem RS Requester oder mit dem Clickfinder-Plugin zu tun hat. Wenn dem nicht so wäre, würde ich keine Ruhe geben bis ich den Fehler gefunden hätte. Du kennst mich ja: Das würde sehr viel Arbeit für uns beide bedeuten ;-).

Defekter Arbeitsspeicher kann auch so ein unstetiges Verhalten von Programmen hervorrufen. Ist aber eher unwahrscheinlich. Ich denke, das hättest Du schon gemerkt, weil dann auch andere Programme nicht sauber arbeiten würden.

 

Viele Grüße,

 

HacMat

Link to comment
  • 1 month later...

Hallo HacMat,
Der Lebenszyklus des rsr 1.0.8.6 beta neigt sich dem Ende entgegen.
Ich hoffe sehr auf eine Fortführung deiner Arbeit und wollte Anfragen, ob es
eventuell eine nächste Version gibt, die du getestet haben möchtest ?

vg Drake

Link to comment

Hallo Drake,

schön, dass dein Interesse an einer Weiterentwicklung des RS Requesters noch da ist.
Ich werde natürlich noch rechtzeitig vorm Ableben der Version 1.0.8.6 eine neue Version releasen.
Da du perfektionistisch sehr begabt bist und deshalb auch hohe Ansprüche stellst, kann ich dich als Tester sehr gut gebrauchen. In der nächsten Version werden sich mit Hilfe von regulären Ausdrücken die Sender-spezifischen Verunreinigungen der Titel filtern lassen, so dass die Ausschlussliste noch präziser funktioniert. Falls dir reguläre Ausdrücke nichts sagen, empfehle ich dir, dich schon einmal damit zu beschäftigen. Üben kannst Du mit allen Editoren und Textverarbeitungen, die reguläre Ausdrücke unterstützten. Wenn Du dazu aber keine Lust oder Zeit hast, ist das auch nicht weiter tragisch. Ich werde einige sinnvolle reguläre Ausdrücke gleich mitliefern und wenn dir dann noch ein sinnvoller Filter einfällt, kann ich den passenden Ausdruck dazu noch nachschieben.
Ich werde jetzt erstmal eine neue Version für alle veröffentlichen. Falls dann noch etwas verbessert oder erweitert werden muss, werde ich dir auf Grundlage der nächsten offiziellen Version weitere Zwischen-Versionen zum Testen zukommen lassen. Wenn ich dich jetzt schon testen ließe, würdest Du mich vielleicht mit zu vielen neuen Ideen überhäufen, die ich eh nicht mehr zum nächsten Release-Termin implementieren kann. Danach freue ich mich aber sehr auf deine Erweiterungs- und Verbesserungsvorschläge. Deshalb vielen Dank für Dein Angebot!

Viele Grüße!

HacMat

Link to comment
  • 2 weeks later...

Neue Version: RS Requester 1.0.9.0

Die Lauffähigkeit ist zum 1.1.2018 zeitlich begrenzt.
Der RS Requester bleibt immer kostenlos. Ich werde rechtzeitig vor Ablauf dieser Version eine Version mit längerer oder unbeschränkter Laufzeit veröffentlichen.

Änderungen:

Bei der Version RS 1.33.1.0 erfolgt jetzt keine Warnung mehr auf mögliche Inkompatibilität zum RS Requester.

Umstellung auf API-Requests:

Der RS Requester verwendete bereits fast ausnahmslos HTTP-Requests der API des Recording Services.
In einigen wenigen Fällen wurden aber HTTP-Requests des Web-Interfaces gesendet. Die Requests, die vom Web-Interface generiert werden, sind eigentlich nicht dazu gedacht, dass Anwendungen sie nutzen, um mit dem RS zu kommunizieren. Deshalb sind sie auch nirgendwo dokumentiert und die Wahrscheinlichkeit ist relativ hoch, dass sie sich mit neuen Versionen des RS ändern. Dies hätte zur Folge, dass Programme, die diese Requests nutzen nicht mehr richtig funktionieren.
Mit der Version 1.0.9.0 wurde komplett auf API-Requests umgestellt. Diese Requests sind dokumentiert und die Wahrscheinlichkeit, dass Inkompatibilitäten mit zukünftigen Versionen des RS auftreten ist bei ausschließlicher Nutzung der API Requests eher gering.

Bei Timern für die zum Erstellungszeitpunkt kein EPG-Eintrag zur Sendung vorlag, werden aufgrund einer Einschränkung der API die Vorlauf- und Nachlaufzeiten im Web-Interface des RS, nicht mehr explizit aufgeführt, sondern in die Startzeit- bzw. Endzeit eingerechnet. Die Vorlaufzeit und die Nachlaufzeit werden aber trotzdem korrekt vom RS eingehalten.
Sollte es einem wichtig sein, dass die Vorlauf- und Nachlaufzeiten in allen Fällen gesondert im Web-Interface aufgeführt werden, lässt sich vorerst noch mit '(-)useAPIonly (=) disabled' die Nutzung, der in der Version 1.0.8.6 des RSR verwendeten Web-Interface-Requests, erzwingen.

Neue Funktionen:

Erweiterungen der Ausschlussliste

Reguläre Ausdrücke:

Die Ausschlussliste unterstützt jetzt reguläre Ausdrücke, kurz Regex für 'regular Expression'.
Als Vorgabe wird die Regex-Grammatik von JavaScript verwendet. Es können aber auch andere Grammatiken, wie z.B die von 'Egrep' ausgewählt werden.

Mit regulären Ausdrücken lassen sich Suchmuster definieren, deren auf sie passende Zeichenfolgen entfernt oder durch eine andere beliebige Zeichenfolge ersetzt werden.

Die regulären Ausdrücke sind nützlich wenn man Sender-spezifische Titelzusätze wie z.B "Sommerkino im Ersten" automatisiert entfernen lassen will, bevor der Titel in der Auschlussliste gesucht wird.
Mit ihnen lässt sich die Zuverlässigkeit der Erkennung auszuschließender Titel erheblich erhöhen.

 

Neuer Parameter/Schlüsse 'searchExcludingRegexGrammar':

 

Obwohl der Aufbau regulärer Ausdrücke weitgehend genormt ist, gibt es "Dialekte" die sich im Funktionsumfang und in der Grammatik geringfügig unterscheiden.
Mit 'searchExcludingRegexGrammar' lässt sich die Grammatik, die für die regulären Ausdrücke der Ausschlussliste gilt, auswählen.

Neuer Parameter/Schlüssel 'searchExcludingListDelimiter':

Der Titel mit dem die Titel der Ausschlussliste verglichen werden enthält, falls vorhanden, das EPG-Event, als Anhängsel.
Im EPG-Event werden sehr oft die Episoden-Titel geführt. Wenn man bestimmte Folgen von Serien in der Ausschlussliste hat, ist es deshalb wichtig, dass diese Zusatz-Informationen aus dem EPG berücksichtigt werden.
Anders verhält es sich bei Spielfilmen. Das EPG-Event enthält dann meistens nur Informationen, die irrelevant sind (z.B 'Spielfilm, Frankreich 2001').
Der RS Requester fügt jetzt zwischen dem eigentlichen Titel und dem EPG-Event einen senkrechten Strich (|) ein.
Dieses Trennzeichen macht es sehr einfach das EPG-Event mit Hilfe eines regulären Ausdruckes wieder zu entfernen, bevor der Vergleich mit den Titeln der Ausschlussliste erfolgt.
Mit 'searchExcludingListDelimiter' lässt sich dieses Trennzeichen ändern. Dabei kann es sich bei dem Trennzeichen auch um eine Folge mehrerer Zeichen handeln.

Sender-abhängige Auswertung:

In der Ausschlussliste lässt sich jetzt festlegen, dass ein Abschnitt nur bei einem bestimmten Aufnahme-Sender berücksichtigt wird. Durch Verwendung regulärer Ausdrücke lässt sich das auch für eine spezielle Untermenge aller Sender, beispielsweise den öffentlich-rechtlichen Sendern erreichen.

Präfixe:

Präfixe helfen dabei die Ausschlussliste übersichtlicher zu gestalten und den Aufwand der Pflege der Ausschlussliste zu reduzieren.
Schreibt man in eine Zeile eine in eckige Klammern ('[' und ']') eingeschlossene Zeichenfolge, so wird diese Zeichenfolge nachfolgenden Titeln vorangestellt.

Dynamische Anpassung der zum Ausschluss führenden Mindest-Ähnlichkeit:

Die mit dem Parameter/Schlüssel 'searchExcludingList' festlegbare Ähnlichkeit des Titels der aufzunehmenden Sendung mit einem Titel der Ausschlussliste, die mindestens erforderlich ist, damit ein Ausschluss stattfindet, lässt sich nun innerhalb der Ausschlussliste ändern.

Erweiterung des Parameters/Schlüssels 'setReturnCode':

Mit 'setReturnCode' lässt sich jetzt auch der Rückgabecode für das Ereignis 'Titel in der Ausschlussliste gefunden' anpassen.

Für eine genaue Erklärung der Erweiterungen bitte in das Manual und die Beispiel-Ausschlussliste (exclude.txt) schauen.
Dort ist alles genau erklärt. Fragen beantworte ich gern.
Bitte alle Fehler melden. Auch die, die vielleicht keine sind.

Danke und viel Spaß mit der neuen Version,

HacMat

 

Download: RSR 1.0.9.0.zip

Es steht eine aktuellere Version zum Download: http://www.DVBViewer.tv/forum/topic/55874-commandline-interface-windowslinuxwine-fur-den-rs/?p=454001

 

Für Clickfinder-Nutzer gibt es noch das Clickfinder-Add-On.

Download RSR Clickfinder-Add-On (keine Änderung): http://www.DVBViewer...en-rs/?p=441643

Edited by HacMat
Link to comment

Hallo HacMat,

zuerst einmal vielen Dank für die neue Version,

die doch einige mehr Möglichkeiten bietet. :thumbsup:

 

Mir ist aufgefallen, das ich die Option
useAPIonly = disabled

Nicht setzen kann.

Es wird mir im TV-Browser im Fehler-Fenster als unzulässiger Schlüssel ausgeworfen.

 

"

RS Requester 1.0.9.0 beta:

...

...

Ende Sektion: [request record]
Die Konfigurationsdatei enthält einen unzulässigen Schlüssel: [Request Record] useAPIonly
Ein Fehler wurde in der Konfigurationsdatei gefunden.

"

Warum ich diese Option benutzen möchte,
schreibe ich später noch ausführlich in einer neuen Antwort.
Eventuell hat es nichts mit dem RSR zu tun, eventuell doch.
Das wäre noch zu klären.

 

Isoliert betrachtet geht es jetzt um useAPIonly = disabled

 

vg Drake

Edited by sir drake
Link to comment

Hallo HacMat,

jetzt zu dem Problem, dass mich hat versuchen lassen: useAPIonly = disabled

 

Die Berechnung des richtigen EPG-Eintrages könnte nicht so funktionieren, wie man es erwartet.

 

Bei kurz laufenden Serien stelle ich es oft/immer fest.

 

Ich habe im Anhang mehrere Dateien.
Bitte schaue Sie dir an.

 

Die Kurzfassung: Der Dateiname entspricht der nachfolgenden Sendung, die erst im Anschluss an die gewünschte kommt.

 

 

RTLNITRO
16:50 FILM A
17:35-------------------Timer Start
17:40 FILM B--TIMER < das ist die Serie, die es sein soll
18:00 FILM C
18:30-------------------Timer Ende
Aufnahme hat den Titel von Film C der um 18:00 beginnt
anstatt von FILM B

 

Ein EPG ist in allen 3 Filmen/Serien ( A/B/C ) vorhanden !

 

 

Annahme:

Rechnest du in deiner Formel zur Berechnung ( (Ende-Anfang ) / 2 des EPG-TimeStamps eventuell die Vor und NachlaufZeit mit ein ?

Benutzt du : .....api/epg.html?lvl=2&channel=<EPG_ID>&start=<START_FLOAT>&end=<END_FLOAT>

Ich kann auf der RS-InternetSeite sehen ( Maus Over Hint) das FILM B und FILM C den gleichen Inhalt/Text aufweisen.
Für mich der gleiche EPG.

 

Wenn also Vorlaufzeit + Nachlaufzeit länger sind, wie die Aufnahme selbst,

könnte es sich um ein reproduzierbares Problem handeln.

Und würde erklären, warum es bei "normalen" Film-Längen nicht auftaucht.

 

vg Drake

post-89984-0-82668400-1478281310_thumb.png

post-89984-0-55715300-1478281315_thumb.png

post-89984-0-36474200-1478281320_thumb.png

post-89984-0-87350400-1478281324_thumb.png

post-89984-0-54823200-1478281330_thumb.png

Link to comment

Was ist genau das Dateinamensschema das du nutzt?

 

Wenn du alles in den Timer Namen schreibst und %name setzt sollte es kein Problem sein.

%event und %title werden für die Mitte der Aufnahme ermittelt (ohne Vor und Nachlauf).

Link to comment

Hallo Tjod,

 

%year-%date_%time_%station_%name --- %title

 

Das ist mein Dateinamensschema .

 

Und ja, laut bild das cih vom timer gemacht habe,

gibt es keinen seperaten vor und nachlauf.

 

die mitte wäre nach 18 Uhr und erklärt warum der folge Film gewählt wurde.

 

vg

post-89984-0-63674300-1478286533_thumb.png

Edited by sir drake
Link to comment

Hallo Drake,

dass Du den Schlüssel 'useAPIonly' nicht in der Konfigurationsdatei benutzen kannst, ist ein Fehler.
Du kannst dir erstmal damit behelfen, '-useAPIonly' als Parameter zu verwenden; das funktioniert.
'useAPIonly' kannst Du dann zwar nicht Sender-abhängig setzen, aber das macht ja sowieso keinen Sinn.
Mit der nächsten Version ist dieser Fehler behoben. Danke für den Hinweis!

Ich habe die Vermutung, dass Du eine, im Verhätnis zur eigentlichen Sendungsdauer, extrem lange Nachlaufzeit verwendest, und '%title' deshalb vom RS 'falsch' befüllt wird.
Es handelt sich aber hier nicht um einen Fehler des RS und eigentlich auch nicht um einen des RSR.
Du bist einfach nur Opfer einer API-Einschränkung geworden:

 

%event und %title werden für die Mitte der Aufnahme ermittelt (ohne Vor und Nachlauf).

 

Wenn die Mitte der Aufnahme durch sehr großzügig bemessene Vor- und Nachlaufzeiten verschoben wird, sodass diese Mitte zeitlich auf einen EPG-Eintrag eines vorhergehenden oder nachfolgenden Titel trifft, so repräsentiert '%title' eben diesen Titel.
Das Problem ist, dass sich mit der API die Vor- und Nachlaufzeiten nicht explizit übergeben lassen, und diese dann vom RS für die Titelbestimmung ignoriert würden. Wenn Du '-useAPIonly' deaktivierst und wieder der entsprechende Web-Interface-Request mit den gesondert ausgewiesenen Vor- und Nachlaufzeiten verwendet wird, sollte Dein Problem behoben sein.

 

Rechnest du in deiner Formel zur Berechnung ( (Ende-Anfang ) / 2 des EPG-TimeStamps eventuell die Vor und NachlaufZeit mit ein ?

Benutzt du : .....api/epg.html?lvl=2&channel=<EPG_ID>&start=<START_FLOAT>&end=<END_FLOAT>

 

Mit '(-)verbose (=) enabled' kannst du dir alle gesendeten Http-Requests anzeigen lassen.

VG,

HacMat

Link to comment

Das Problem ist, dass sich mit der API die Vor- und Nachlaufzeiten nicht explizit übergeben lassen, und diese dann vom RS für die Titelbestimmung ignoriert würden.

Das fehlt nur in der Dokumentation von timeradd.html &pre=5&post=10.

 

Wenn du über so was bei der API stolperst am besten direkt nachfragen. Entweder es fehlt nur in der Dokumentation oder man muss sehen das man das in der API erweitert. Und wenn so eine Frage hier untergeht (nach 1-2 Tragen noch keine Antwort da ist) am besten unter "Scripting Lounge / API (de/en)" ein extra Topic auf machen.

Link to comment

Hallo HacMat,

ich kann bestätigen, das die Parameter

leadTime = 5
followUpTime = 30
bei keinem einzigen meiner Timer angewendet wird.
( In Sinne von seperater Ausweisung )
Beide Werte sind nicht im RS-WebInterface-Timer zu finden.
Von daher kommt jetzt dieses Problem, das ich habe mit der "Mitte".
"Das Problem ist, dass sich mit der API die Vor- und Nachlaufzeiten nicht explizit übergeben lassen"
Wie werden in der 1.0.9 Parameter leadTime und followUpTime jetzt benutzt ?
Ich vermute du rechnest die Werte auf die orginal Start und EndZeiten auf und ab.
ich versuche jetzt den schalter als Parameter im tv-browser zu setzen.
(Nachtrag: -useAPIonly bringt leider nicht den erhofften sep. Vor und Nachlauf. )
vg Drake
Edited by sir drake
Link to comment

Das fehlt nur in der Dokumentation von timeradd.html &pre=5&post=10.

 

Wenn du über so was bei der API stolperst am besten direkt nachfragen. Endtweder es fehlt nur in der Dokumentation oder man muss sehen das man das in der API erweitert.

 

Vielen Dank für die Info, Tjod!

Das freut mich sehr. Nächstes Mal frage ich nach. Ich dachte das wäre einfach noch nicht implementiert worden. Bei der nächsten Version wird vermutlich niemand mehr die alten Web-Interface-Requests vermissen.

Link to comment

Und um an die Standard Werte des Nutzers davon zu kommen:

/api/setting.html?sec=Service&id=EPGAfter&def=10

/api/setting.html?sec=Service&id=EPGBefore&def=5

 

PS: Es gibt manchmal mehr als ich oder auch Griga direkt wissen. Das hat teilweise Lars eingebaut aber nicht dokumentiert. Das heißt Griga muss erst mal einen gezielten Blick in den Code werfen.

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...