Neues Script für ProgDVB ,WinTV2k & RitzDVB

Alles was sonst nicht passt. Bitte keine Werbung für Webseiten/Produkte usw.
dasJons

Beitrag von dasJons »

Eigentlich nicht, ich denke ein 3GHz Pentium ist ausreichend.
Aber vielleicht ist der Tuner meines TV-Sticks einfach nur zu langsam oder wahrscheinlicher: Ich hab zu viel Krämpel installiert, der meine Kiste pöse ausbremst ^^
ProgDVB-User

Re: Neues Script für ProgDVB

Beitrag von ProgDVB-User »

Hallo Leute,

da ich ProgDVB v4.xx und TV-Browser gern als portable Version benutze, wollte ich nicht gern irgendwelche Programme installieren,
welche - zwecks Aufzeichnung einer ausgewählten Sendung - die Kommunikation zwischen beiden Programmen ermöglichen.
Daher kam ich auf die Idee eine "portable" BAT-Datei zu schreiben, welche als ProgDVB-Plugin fungiert und leicht an unterschiedlichste PC-Konstellationen angepasst werden kann.
Die BAT-Datei schreibt in den Windows-Taskplaner einen entsprechenden START und STOP-Befehl für die Aufnahme.
Daher kann der TV-Browser zum Zeitpunkt der Aufnahme geschlossen sein und man muß nicht am PC angemeldet sein.
In der Hoffnung, dass der Ein- oder Andere diesen Code auch gern nutzen würde, stelle ich diesen hier einfach mal ein.
Bitteschön:

Code: Alles auswählen

@ECHO OFF
REM Am Besten diese Datei "Aufnahme mit ProgDVB.BAT" nennen und entweder ins TV-Browser- oder ins ProgDVB-Verzeichnis legen.
REM Damit diese Datei mit TV-Browser funktioniert, muss noch einiges eingestellt und beachtet werden:
REM Zuerst mal unter Plugins => Aufnahmesteuerung => Geräte ein neues "Standard-Treiber-Gerät erstellen (der Name ist egal).
REM Dieses "Gerät" nun konfigurieren und unter Applikation diese BAT-Datei angeben.
REM bei PARAMETER für das Aufnehmen folgendes eintragen:
REM START "{title}" "{channel_name}" {start_day} {start_month} {start_year} {start_hour} {start_minute} {end_day} {end_month} {end_year} {end_hour} {end_minute}
REM und bei PARAMETER für das Löschen bzw. Anhalten bzw. Aufnahmestopp:
REM STOP "{title}"
REM unter SENDER und Variablen ist nichts einzustellen, jedoch ist zu beachten, dass die Sendernamen in ProgDVB und im TV-Browser identisch sein müssen
REM (notfalls in beiden Programmen einfach die Sendernamen bearbeiten)
REM bei den Einstellungen ist es sinnvoll, die Sendung etwa 3 Minuten vor Beginn schon aufzuzeichnen,
REM sowie mindestens 10 Minuten länger als das offizielle Ende.
REM Ansonsten: Angabe des Ortes, wo sich ProgDVB befindet und wohin die Aufnahme gespeichert werden soll (unbedingt mit einem Schrägstrich abschliessen)
SET PROGDVB=C:\Programme\ProgDVB\ProgDVB.exe
SET AUFNAHMEVERZEICHNIS=C:\
SET ComputerName=...
SET Benutzer=...
SET Passwort=...

REM Beschreibung des Codes:
REM hier werden erstmal nach und nach die ganzen Variablen verarbeitet und ausgewertet, welche TV-Browser an diese BAT-Datei übergab
SET AUFGABE=%1%

REM alle verbotenen Sonderzeichen "<, >, :, /, \,|", die sich eventuell im Sendungstitel befinden, durch ein Leerzeichen ersetzen
SET TASK=%2%
set TASK=%TASK:<= %
set TASK=%TASK:>= %
set TASK=%TASK::= %
set TASK=%TASK:/= %
set TASK=%TASK:\= %
set TASK=%TASK:|= %
SET TASKSTART=%TASK%
SET  TASKSTOP=%TASK%
SET SENDUNGSTITEL=%TASK%

REM Anführungszeichen entfernen
SET TASKSTART=%TASKSTART:~1,-1%
SET TASKSTOP=%TASKSTOP:~1,-1%

REM aufspalten in einen START- und einen STOP-Timer
SET TASKSTART=%TASKSTART% (TVB START)
SET  TASKSTOP=%TASKSTOP% (TVB STOP)

REM Prüfe, ob TV-Browser den Befehl zum Löschen bereits geplanter TASK's gegeben hat
IF "%Aufgabe%"=="STOP" GOTO TASK_Loeschen


REM aus der Variable AUFGABE bzw. Sendungstitel, sowie SENDER, die Anführungsstriche entfernen, da TV-Browser diese mit übergibt
SET SENDUNGSTITEL=%SENDUNGSTITEL:~1,-1%
SET SENDER=%3%
SET SENDER=%SENDER:~1,-1%

REM die restlichen Variablen bezüglich der Start- bzw. Endzeiten auswerten,
REM der SHIFT-Befehl ist notwendig da nur 10 (%0....%9) Befehlsparameter gleichzeitig direkt angesprochen werden können.
SET TAG=%4%
SET MONAT=%5%
SET JAHR=%6%
SET STUNDE=%7%
SET MINUTE=%8%
SET END_TAG=%9
shift
SET END_MONAT=%9
shift
SET END_Jahr=%9
shift
SET END_STUNDE=%9
shift
SET END_MINUTE=%9


REM Da SCHTASKS zweistellige Zeitangaben verlangt, muss bei einstelligen Angaben (Zahlen > 10) die Null vorangestellt werden 
SET VERGLEICH=10
IF %TAG% LSS %VERGLEICH% SET TAG=0%TAG%
IF %END_TAG% LSS %VERGLEICH% SET END_TAG=0%END_TAG%
IF %MONAT% LSS %VERGLEICH% SET MONAT=0%MONAT%
IF %END_MONAT% LSS %VERGLEICH% SET END_MONAT=0%END_MONAT%
IF %STUNDE% LSS %VERGLEICH% SET Stunde=0%Stunde%
IF %END_STUNDE% LSS %VERGLEICH% SET END_Stunde=0%END_Stunde%
IF %MINUTE% LSS %VERGLEICH% SET MINUTE=0%MINUTE%
IF %END_MINUTE% LSS %VERGLEICH% SET END_MINUTE=0%END_MINUTE%

REM Eine kurze Nachricht ausgeben.
ECHO Vom %TAG%.%MONAT%.%JAHR% %STUNDE%:%MINUTE% Uhr bis %END_TAG%.%END_MONAT%.%END_JAHR% %END_STUNDE%:%END_MINUTE% Uhr wird %SENDUNGSTITEL% auf %SENDER% aufgenommen.

REM an dieser Stelle kann der START- und der STOP-TASK endlich in den Taskmanager eingetragen werden
REM Achtung: die Schrägstriche sind wichtig, da innerhalb von Anführungszeichen keine weiteren Anführungszeichen sein können, sondern nur \"
SCHTASKS /create /S %ComputerName% /RU %Computername%\%Benutzer% /RP %Passwort% /SC EINMAL /TN "%TASKSTART%" /TR "\"%PROGDVB%\" /CH:\"%SENDER%\" /StartRecord:\"%AUFNAHMEVERZEICHNIS%%SENDUNGSTITEL% %JAHR%-%MONAT%-%TAG% %STUNDE%-%MINUTE%.mpg\" /MUTE /Minimize" /ST %STUNDE%:%MINUTE%:00 /SD %TAG%/%MONAT%/%JAHR%
SCHTASKS /create /S %ComputerName% /RU %Computername%\%Benutzer% /RP %Passwort% /SC EINMAL /TN "%TASKSTOP%"  /TR "\"%PROGDVB%\" /StopRecord /Exit" /ST %END_STUNDE%:%END_MINUTE%:00 /SD %END_TAG%/%END_MONAT%/%END_JAHR%
GOTO ENDE


:TASK_Loeschen
REM Aufnahme stoppen, beenden und aus dem Taskplaner loeschen
SCHTASKS /DELETE /S %ComputerName% /TN "%TASKSTART%" /F
SCHTASKS /DELETE /S %ComputerName% /TN "%TASKSTOP%" /F


:ENDE
Cu Fireball.
Benutzeravatar
fingerhut
Platin Member
Beiträge: 2923
Registriert: 03 Feb 2005, 10:18
Wohnort: Nürnberg

Re: Neues Script für ProgDVB ,WinTV2k & RitzDVB

Beitrag von fingerhut »

REM alle verbotenen Sonderzeichen "<, >, :, /, \,|", die sich eventuell im Sendungstitel befinden, durch ein Leerzeichen ersetzen
macht in der Aufnahmesteuerung ein clean /cleanless -> Sonderzeichen im Titel, werden deine Prameter so nicht mehr übergeben. (Zuordnung stimmt nicht mehr)

REM Da SCHTASKS zweistellige Zeitangaben verlangt, muss bei einstelligen Angaben (Zahlen > 10) die Null vorangestellt werden
Macht leadingZero

wenn ich ehrlich bin kannst du alles in der Aufnahmesteuerung machen was du in deinem script machst.
gut bis auf die Leerzeichen im Titel nur so was kann wie ich Obengeschrieben habe auch dazuführen das das ganze nicht mehr geht.

Bsp. wie die Funktionen in der Aufnahmesteuerung gehen.

Dateiname:

Code: Alles auswählen

{maxlength(cleanLess(concat(title,testparam(episode,"-",testparam(original_title,"-")),testparam(episode,testparam(episode_number,concat(leadingZero(episode_number,"3"),"_",episode),episode),original_title),testparam(original_episode,"-"),original_episode)),"200")}
Taskname:

Code: Alles auswählen

{maxlength(cleanLess(concat(title,testparam(episode,"-",testparam(original_title,"-")),testparam(episode,testparam(episode_number,concat(leadingZero(episode_number,"3"),"_",episode),episode),original_title),testparam(original_episode,"-"),original_episode)),"200")}
Schrieb deine Anwendungen nur in der Aufnahmestellung und benutze für die Pfade variable so das jeder diese einfach konfigurieren kann. ;-)
[wiki=Hauptseite]Handbuch (TV-Browser)[/wiki]
ProgDVB-User

Re: Neues Script für ProgDVB ,WinTV2k & RitzDVB

Beitrag von ProgDVB-User »

Bei einigen Verbesserungsvorschlägen konnte ich mich dazu entschliessen diese umzusetzen. Anbei der neue Code, welcher lediglich in eine Datei, z.B. namens "Aufnahme.BAT" zu kopieren wäre. Alle Einstellungen können nun im TV-Browser vorgenommen werden.
Für eventuelle Fehlermeldungen oder Verbesserungsvorschläge bin ich weiterhin dankbar.

Code: Alles auswählen

@ECHO OFF
REM Für weiterführende Informationen siehe ab Sprungmarke :INFO oder diese Datei einfach starten.
REM Ab hier werden nach und nach die Variablen verarbeitet und ausgewertet, welche TV-Browser an diese BAT-Datei übergibt.
cls
SET AUFGABE=%1%

REM Alle für Dateinamen verbotenen Sonderzeichen "<, >, :, /, \,|" die sich eventuell im Sendungstitel befinden könnten, werden durch Leerzeichen ersetzt.
REM Zuvor wird überprüft, ob überhaupt Parameter übergeben wurden.
SET TASK=%2%
IF %TASK%x == x GOTO INFO
SET TASK=%TASK:<= %
SET TASK=%TASK:>= %
SET TASK=%TASK::= %
SET TASK=%TASK:/= %
SET TASK=%TASK:\= %
SET TASK=%TASK:|= %

REM Anführungszeichen entfernen, Aufteilung in einen START- und einen STOP-Timer
SET TASK=%TASK:~1,-1%
SET SENDUNGSTITEL=%TASK%
SET TASKSTART=%TASK% (TVB START)
SET  TASKSTOP=%TASK% (TVB STOP)

REM Prüfe, ob TV-Browser den Befehl zum Löschen bereits geplanter TASK's gegeben hat
IF "%Aufgabe%"=="STOP" GOTO TASK_Loeschen

REM Schrägstriche aus dem Aufnahmedatum für die Dateibezeichnung in Punkte umwandeln
SET DatumDatei=%4%
SET DatumDatei=%DatumDatei:/=.%

REM aus der Variable SENDER, die Anführungsstriche entfernen, da TV-Browser diese mit übergibt
SET SENDER=%3%
SET SENDER=%SENDER:~1,-1%

REM die Variablen bezüglich der Start- und Endzeiten auswerten, sowie Benutzername und Passwort übergeben
SET DatumStart=%4%
SET ZeitStart=%5%
SET DatumEnde=%6%
SET ZeitEnde=%7%
SET BenutzerName=%8
SET Passwort=%9

REM die Variablen für ProgDVB übernehmen und von deren Anführungszeichen befreien
SHIFT
SHIFT
SET PROGDVB=%8
SET PROGDVB=%PROGDVB:~1,-1%
SET AUFNAHMEVERZEICHNIS=%9
SET AUFNAHMEVERZEICHNIS=%AUFNAHMEVERZEICHNIS:~1,-1%

REM Eine kurze Nachricht ausgeben.
ECHO Am %DatumStart% von %ZeitStart% Uhr bis %ZeitEnde% Uhr wird "%SENDUNGSTITEL%" auf "%SENDER%" aufgenommen.
ECHO.

REM an dieser Stelle wird der START- und der STOP-TASK in den Taskplaner eingetragen
REM Achtung: die Schrägstriche sind wichtig, da innerhalb von Anführungszeichen keine weiteren Anführungszeichen vorkommen dürfen, sondern lediglich \"
SCHTASKS /create /S %ComputerName% /RU %ComputerName%\%BenutzerName% /RP %Passwort% /SC EINMAL /TN "%TASKSTART%" /TR "\"%PROGDVB%\" /CH:\"%SENDER%\" /StartRecord:\"%AUFNAHMEVERZEICHNIS%%SENDUNGSTITEL% %DatumDatei% %ZeitStart%.mpg\" /MUTE /Minimize" /ST %ZeitStart% /SD %DatumStart%
SCHTASKS /create /S %ComputerName% /RU %ComputerName%\%BenutzerName% /RP %Passwort% /SC EINMAL /TN "%TASKSTOP%"  /TR "\"%PROGDVB%\" /StopRecord /Exit" /ST %ZeitEnde% /SD %DatumEnde%
GOTO ENDE


:TASK_Loeschen
REM Aufnahmeplan aus dem Taskplaner loeschen und bei Bedarf den Aufnahmevorgang beenden
SCHTASKS /DELETE /S %ComputerName% /TN "%TASKSTART%" /F
SCHTASKS /DELETE /S %ComputerName% /TN "%TASKSTOP%" /F
GOTO ENDE


:INFO
ECHO ======================== ProgDVB-Plugin fuer TV-Browser ========================
ECHO Die angegebenen Parameter waren nicht korrekt!
ECHO Diese Datei darf nur vom TV-Browser gestartet werden.
ECHO.
ECHO Damit diese Datei mit TV-Browser und ProgDVB zusammenarbeitet,
ECHO muss hierfuer folgendes im TV-Browser eingestellt werden:
ECHO * unter Plugins - Aufnahmesteuerung - Geraete ist ein neues
ECHO   "Standard-Treiber-Geraet zu erstellen (der Name ist egal)
ECHO * dieses neue Geraet konfigurieren u. unter Applikation diese BAT-Datei angeben
ECHO   (diese sollte sich entweder im TV-Browser- oder ProgDVB-Verzeichnis befinden)
ECHO * PARAMETER: fuer das "Aufnehmen" folgende Zeilen eintragen:
ECHO.
ECHO START "{concat(title,"_-_",episode)}" "{channel_name}" {concat(leadingZero(start_day,"2"),"/",leadingZero(start_month,"2"),"/",leadingZero(start_year,"2"))} {concat(leadingZero(start_hour,"2"),":",leadingZero(start_minute,"2"),":00")} {concat(leadingZero(end_day,"2"),"/",leadingZero(end_month,"2"),"/",leadingZero(end_year,"2"))} {concat(leadingZero(end_hour,"2"),":",leadingZero(end_minute,"2"),":00")} {device_username} {device_password}
ECHO.
ECHO und fuer das "Loeschen" die folgende kurze Zeile eintragen:
ECHO STOP "{concat(title,"_-_",episode)}"
ECHO                                        Seite 1 von 2 - bitte eine Taste druecken
PAUSE > NUL
cls
ECHO.
ECHO * SENDER: hier sind keine Aenderungen erforderlich, jedoch ist sicherzustellen,
ECHO           dass die Sendernamen in ProgDVB mit denen im TV-Browser
ECHO           uebereinstimmen (Hierzu sind eventuell in ProgDVB und/oder im
ECHO           TV-Browser die Sendernamen zu bearbeiten.)
ECHO * Variablen: hier sind zwei Eintragungen vorzunehmen
ECHO   - unter Variable Nr.1 ist in Zelle WERT der Speicherort von ProgDVB
ECHO     einzutragen, z.B.: C:\Programme\ProgDVB.EXE
ECHO   - unter Variable Nr.2 ist in Zelle WERT der Speicherort fuer die Aufnahmen
ECHO     einzutragen, z.B.: C:\ oder C:\Aufnahme\
ECHO     (der Eintrag ist unbedingt mit einem Schraegstrich abzuschliessen)
ECHO * Einstellungen: 
ECHO   - der Benutzername mit zugehoerigem Passwort ist einzutragen
ECHO     (unter diesem erfolgt die Aufzeichung aus dem Taskplaner heraus)
ECHO   - weiterhin ist es sinnvoll die Sendung eine Minute vor Beginn aufzuzeichnen,
ECHO     sowie mindestens 10 Minuten laenger aufzuzeichnen als das offizielle Ende
ECHO     (Thomas Gottschalk laesst gruessen ;-).
ECHO.
ECHO                                        Seite 2 von 2 - bitte eine Taste druecken
pause
:ENDE
Antworten