popy Posted March 21, 2010 Share Posted March 21, 2010 (edited) Hallo. Hier mein Tool dass die RECORDING Timer einer DBOX2 (über WebInterface) zum DVBViewer/Recording Service importiert (mit TV-Genial Plugin). Hier ein Auszug der Readme: DBOX2_TimerImporter v1.0 by pOpY 2010 ************************************ **************Info****************** ************************************ Deutsch: Dieses Tool importiert (mittels TV-Genial Plugin) alle Recording Timer einer DBOX2. Unterstützt werden auch tägliche und wöchentliche Wiederholungen der Timer. Um eine Gute Zuordnung der Sender von der DBOX zum DVBViewer zu gewährleisten, sollten die Sender GLEICH heißen. Wenn das Tool nicht korrekt funktioniert bitte die Log Datei DBOX2_TimerImporter.log im Thread geposten. English: With this Tool you could import DBOX2 Recording timers. It also supports daily and weekly repeats of the timers. The tool compares the Channelnames so that it can map the Channels from the DBOX and DVBViewer. So the names SHOULD BE equal. If the tool doesnt work correctly you should post the DBOX2_TimerImporter.log into the Thread. ************************************ **********Installation************** ************************************ Deutsch: Einfach folgende Dateien in den DVBViewer Ordner kopieren (muss der DVBViewer Ordner sein!!): DBOX2_TimerImporter.exe DBOX2_TimerImporter.ini Das TV-Genial Plugin (dvbv_tvg.exe) gibts im Membersbereich. Diese EXE muss auch in den Ordner des DVBViewers English: Just copy the following files into the DVBViewer folder (it must be the DVBViewer Folder!!): DBOX2_TimerImporter.exe DBOX2_TimerImporter.ini The TV-Genial plugin (dvbv_tvg.exe) is available in the members area. This EXE must also be copied to the DVBViewer folder ************************************ ****Konfiguration/Configuration***** ************************************ Deutsch: Das Tool liest die Einstellungen aus der DBOX2_TimerImporter.ini. Diese muss im gleichen Verzeichniss wie die EXE sein. Es sind folgende Einstellungen möglich: DBOX_IP - IP Adresse der DBOX2 TIMEOUT - Timeout für timer download von der DBOX2 RECSVC_IP - IP Adresse des Recording Service, wird hier nichts angegeben wird der Lokale DVBViewer verwendet RECSVC_PORT - WebInterface Port vom Recording Service RECSVC_USER - Username für Login am Recording Service WebInterface RECSVC_PASS - Passwort für Login am Recording Service WebInterface RECSVC_ACTIONAFTER - Aktion nach der Aufnahme (Möglichkeiten Siehe INI) DISABLE_LOGGING - 1 = Logging ausschalten Sind alle Einstellungen vorgenommen, kann die "DBOX2_TimerImporter.exe" gestartet werden. Diese sollte nun die Timer von der DBOX2 importieren und Löschen. Es ist ratsam mittels "Taskplanung" (Windows) die EXE ca. alle 30 Minuten auszuführen. English: The tool reads its settings from file DBOX2_TimerImporter.ini. This file must be in the same folder as the EXE The following settings are available: DBOX_IP - IP adress from the DBOX2 TIMEOUT - timeout for the timer download from the DBOX2 RECSVC_IP - IP adress of the Recording Service, leave it blank to use the local DVBViewer RECSVC_PORT - webinterface port of the Recording Service RECSVC_USER - username of the Recording Service WebInterface RECSVC_PASS - password of the Recording Service WebInterface RECSVC_ACTIONAFTER - Action after Recording (Available values -> take a look at the INI) DISABLE_LOGGING - 1 = disable logging After setting up the INI file, start the file "DBOX2_TimerImporter.exe". Now all timers from DBOX2 should be imported and deleted. You should configure a windows task, which executes the EXE every 30 minutes. ************************************************* ********************Changelog******************** ************************************************* v1.0: * Initial Version BIG THANKS TO "xarko" fro the DVBViewer forum for his code to read the channels.dat!!! Sorry for my bad english;-) Viel Spaß damit Have fun pOpY 2010 Download v1.0: DBOX2_TimerImporter_v1.0.zip cu pOpY Edited April 6, 2010 by popy Quote Link to comment
xarko Posted March 23, 2010 Share Posted March 23, 2010 * Gibt es beim TV-Genial Plugin eine Rückmeldung? Nein, nicht dass ich wüsste - bis auf die mögliche Meldung, dass da prinzipiell was mit den übergebenen Parametern nicht stimmt, bzw. welche fehlen. Aber was versprichst du dir auch davon? Was sollte denn als Rückmeldung ausgespuckt werden, was wirklich machbar und effektiv wäre? Dafür zu sorgen, dass da ein Timer angelegt wird, ist ja keine große Kunst; du kannst in deinem Skript auch selbst überprüfen ob der RS läuft oder nicht zwecks Timerprogrammierung bzw. diesen starten falls er nicht laufen sollte; bringt dir genau so viel Sicherheit!? Fallstricke bei der Programmierung gibt es aber auch noch ganz andere, z.B. Überschneidungen bei der Programmierung, Setzen von Aufnahme-Prioritäten, Autosuche Timer, .... Quote Link to comment
popy Posted March 23, 2010 Author Share Posted March 23, 2010 (edited) Danke für die Antwort. Mein Script soll mitbekommen ob z.B.: der Übergebene Sendername stimmt. Dieser kommt ja von der DBOX. Einfach ein Fehlercode wäre super. Mein Script löscht nähmlich den Timer von der DBOX2 wenn er übernommen wurde, somit wäre es super wenn dieser dann auch richtig angelegt wurde. Überschneidungen usw. sind kein Problem hab 3x DVB-C Karten :-) cu pOpY Edited March 23, 2010 by popy Quote Link to comment
xarko Posted March 23, 2010 Share Posted March 23, 2010 Mein Script soll mitbekommen ob z.B.: der Übergebene Sendername stimmt. Also, was die Übereinstimmung bei den Sendernamen betrifft: Erzeuge doch einfach selber ein Channelmapping innerhalb deines Scripts über den Namen oder die Service-ID der Sender. Und/oder überprüfe, ob der Name des Senders in der DVBViewer-Kanalliste überhaupt enthalten ist. Ich habe innerhalb des "Tv Genial / Commandline Plugin"-Threads ja schon ein Script hochgeladen, aus dem du auch gerne die notwendigen Zeilen zur Ermittlung der Sendernamen bzw. Service-IDs entnehmen kannst. Hier nochmal ein Auszug, der dir die entsprechenden Arrays anzeigt: Sendernamen_und_Service_PIDs_anzeigen.zip Quote Link to comment
popy Posted March 23, 2010 Author Share Posted March 23, 2010 Super Danke :-) So kann ich wenigstens selbst prüfen ob der Sender anhand des Namens vorhanden ist. cu pOpY Quote Link to comment
xarko Posted March 23, 2010 Share Posted March 23, 2010 So kann ich wenigstens selbst prüfen ob der Sender anhand des Namens vorhanden ist. Musst halt nur drauf achten, dass Groß-/Kleinschreibung bei der Überprüfung mit berücksichtigt werden muss (entsprechendes Flag setzen); da ist der DVBViewer schon pingelig. Quote Link to comment
popy Posted March 23, 2010 Author Share Posted March 23, 2010 Hab ich mit "StringLower" schon so implementiert (Danke für den Tip). Lass das Script bei mir ein paar Tage laufen, wenn alles glatt geht poste ich es. Danke erstmal pOpY Quote Link to comment
xarko Posted March 23, 2010 Share Posted March 23, 2010 Hab ich mit "StringLower" schon so implementiert (Danke für den Tip). Was machst du da mit "StringLower"? Sieht mir nicht nach einer guten Idee aus. Nicht AutoIt ist pingelig bezüglich der Namen sondern der DVBViewer! Der Sendername muss exakt übereinstimmen, z.B. bei der Funktion: StringCompare ( "string1", "string2" [, casesense] ) sollte casesense auf 1 gesetzt werden. Oder anderes Beispiel: _ArraySearch(Const ByRef $avArray, $vValue[, $iStart = 0[, $iEnd = 0[, $iCase = 0[, $iPartial = 0[, $iForward = 1[, $iSubItem = 0]]]]]]) $iCase [optional] If set to 1, search is case sensitive Quote Link to comment
popy Posted March 24, 2010 Author Share Posted March 24, 2010 (edited) Kein Angst, ich mach das schon danke aber für deine Tipps Habs jetzt so gelöst: ;Suche Channel im Array $tmpChan = RemoveSpecialChars($ChannelName) $Found = 0 For $i = 0 to UBound($Array_Data) - 1 $string = RemoveSpecialChars($Array_Data[$i]) $instr = StringInStr(StringLower($string), StringLower($tmpChan)) If $instr Then ;Found $Found = 1 $ChannelName = $Array_Data[$i] if $DISABLE_LOGGING = "0" then FileWriteLine($file, "Channel: '" & $ChannelName & "' found in channels.dat") if $DISABLE_LOGGING = "0" then FileWriteLine($file, "name: '" & $Array_Data[$i] & "' - SID: '" & $Array_Service_PID[$i] & "'") ExitLoop EndIf Next cu pOpY Edited March 24, 2010 by popy Quote Link to comment
xarko Posted March 24, 2010 Share Posted March 24, 2010 Aha, die Verwendung von "StringLower" in Verbindung mit einer Vergleichsfunktion ist in diesem Zusammenhang natürlich ok. Aber als Antwort auf meine Bemerkung "Musst halt nur drauf achten, dass Groß-/Kleinschreibung bei der Überprüfung mit berücksichtigt werden muss" hat sich das schon etwas seltsam angehört. Nicht, dass du da versehentlich nachher die nicht ganz identischen Sendernamen aus der DBOX2-Kanalliste übergeben hättest. Ich sehe schon, du willst auch nicht einen absolut gleichen Sendernamen als Voraussetzung für eine Übereinstimmung nehmen. "RemoveSpecialChars" ist natürlich auch ganz sinnvoll; sowas ähnliches hatte ich auch in meinem Script eingebaut. Reguläre Ausdrücke sind da ebenfalls ganz gut zu gebrauchen, weißt du ja selber. Ich habe zwar keine DBOX2, aber schön, dass du dein Programm dann auch hier hochladen willst; können andere ja auch Spaß dran haben. Quote Link to comment
popy Posted March 24, 2010 Author Share Posted March 24, 2010 (edited) Ein Stückchen Code sagt mehr als tausend Posts Die RemoveSpecialChars löscht einfach Div. Chars (wie ! $ _- + usw.) . Somit sollte ein noch besseres Mapping möglich sein. Sicher lade ich dass hoch, sollen doch andere auch von unseren Erungenschafften profitieren Ich, besser gesagt meine Freundin *gg* muss dass noch gut testen und dann lade ich es hoch. cu pOpY Edited March 24, 2010 by popy Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.