Hallo Gag, hallo saggi,
die u-Grabber-timer.xml liegt im Verzeichnis
%APPDATA%\u-Grabber\
Bei meinem Rechner ist das hier:
C:\Users\Administrator\AppData\Roaming\u-Grabber\
Hier mal ein Beispiel wie so eine u-Grabber-timer.xml aussieht.
Code: Alles auswählen
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Timer>
<Start>2011-12-02T11:00:00+01:00</Start>
<Ende>2011-12-02T11:13:00+01:00</Ende>
<Sendung-Programm>Tagesschau</Sendung-Programm>
<Kanal-Argumente>Das Erste</Kanal-Argumente>
<DBoxIP>192.168.1.222</DBoxIP>
<ChannelID>44da4016dca</ChannelID>
<EventID>310084275402361295</EventID>
<Record>false</Record>
<RecordAktiv>false</RecordAktiv>
<DBoxZapTo>false</DBoxZapTo>
<DBoxZapTo-Zeit>5</DBoxZapTo-Zeit>
<SetSPTS>true</SetSPTS>
<SetPES>false</SetPES>
<RecordES>false</RecordES>
<RecordPES>false</RecordPES>
<RecordTS>true</RecordTS>
<FormerPlayBackMode>2</FormerPlayBackMode>
<RestartNHTTP>false</RestartNHTTP>
<LockRC>false</LockRC>
<AddToDB>false</AddToDB>
<SetWorkTimer>false</SetWorkTimer>
<SaveEPGTXT>true</SaveEPGTXT>
<SaveXMLTXT>true</SaveXMLTXT>
<SaveRecordLog>true</SaveRecordLog>
<ActionBevoreDone>false</ActionBevoreDone>
<TimerType>RO</TimerType>
<internalFileName />
<TV-Radio>0</TV-Radio>
<WeekDays>0</WeekDays>
<Audio1>true</Audio1>
<Audio2>true</Audio2>
<Audio3>true</Audio3>
<VideoText>true</VideoText>
<PMT>true</PMT>
<TimerAktiv>true</TimerAktiv>
<TimerEnde>2000-01-01T00:00:00+01:00</TimerEnde>
<DBoxStandBy>false</DBoxStandBy>
<DBoxReboot>false</DBoxReboot>
<DBoxRebootDone>false</DBoxRebootDone>
<PEWorkingDir />
<PEOwnProcess>false</PEOwnProcess>
<PEReportExit>true</PEReportExit>
<ID>10</ID>
</Timer>
<Timer>
<Start>2011-12-02T12:00:00+01:00</Start>
<Ende>2011-12-02T12:18:00+01:00</Ende>
<Sendung-Programm>heute</Sendung-Programm>
<Kanal-Argumente>Das Erste</Kanal-Argumente>
<DBoxIP>192.168.1.222</DBoxIP>
<ChannelID>44da4016dca</ChannelID>
<EventID>310084275402359210</EventID>
<Record>false</Record>
<RecordAktiv>false</RecordAktiv>
<DBoxZapTo>false</DBoxZapTo>
<DBoxZapTo-Zeit>5</DBoxZapTo-Zeit>
<SetSPTS>false</SetSPTS>
<SetPES>true</SetPES>
<RecordES>false</RecordES>
<RecordPES>true</RecordPES>
<RecordTS>false</RecordTS>
<FormerPlayBackMode>2</FormerPlayBackMode>
<RestartNHTTP>true</RestartNHTTP>
<LockRC>true</LockRC>
<AddToDB>true</AddToDB>
<SetWorkTimer>true</SetWorkTimer>
<SaveEPGTXT>false</SaveEPGTXT>
<SaveXMLTXT>false</SaveXMLTXT>
<SaveRecordLog>false</SaveRecordLog>
<ActionBevoreDone>false</ActionBevoreDone>
<TimerType>RO</TimerType>
<internalFileName />
<TV-Radio>0</TV-Radio>
<WeekDays>0</WeekDays>
<Audio1>true</Audio1>
<Audio2>true</Audio2>
<Audio3>true</Audio3>
<VideoText>true</VideoText>
<PMT>true</PMT>
<TimerAktiv>true</TimerAktiv>
<TimerEnde>2000-01-01T00:00:00+01:00</TimerEnde>
<DBoxStandBy>false</DBoxStandBy>
<DBoxReboot>true</DBoxReboot>
<DBoxRebootDone>false</DBoxRebootDone>
<PEWorkingDir />
<PEOwnProcess>false</PEOwnProcess>
<PEReportExit>true</PEReportExit>
<ID>11</ID>
</Timer>
</NewDataSet>
Der u-Grabber bietet reichlich Optionen, die zum Timer individuell gespeichert werden können.
Um diese Optionen nicht zu verlieren gäbe es drei alternative Herangehensweisen:
1. Alle Optionen können in einem Einstellungs-Tab in Sherlock gesetzt werden, so wie es jetzt auch ein JtG-Einstellungen"-Tab gibt.
Pro: Hoher Komfort / Transparenz beim User
Kontra: Recht hoher Programmieraufwand bei Sherlock.
Sherlock müsste dann alle Optionen und deren Entsprechnung in der XML kennen und verstehen.
Jede Änderung im u-Grabber, die die Optionen oder das XML-Format betreffen würden auch eine Anpassung bei Sherlock erfordern.
2. In Sherlock kann der Einstellungsteil eines Timerblockes als fester Text hinterlegt werden.
Der User würde dazu einmal einen Timer mit seinen Wunscheinstellungen im u-Grabber erzeugen, dann die u-Grabber-timer.xml im Editor öffnen und den Einstellungsteil, also
<Record>false</Record>
bis
<PEReportExit>true</PEReportExit>
kopieren und in Sherlock hinterlegen.
Sherlock würde dann nur den Teil
<Start>, <Ende>, <Sendung-Programm>, <Kanal-Argumente>, <DBoxIP>, <ChannelID>, <EventID>
generieren, also das sendungsspezifische (Welche Sendung, wann auf welcher dbox aufgenommen werden soll) und würde dann den statisch hinterlegten Timerblock ohne Fallunterscheidung anfügen.
Pro: Möglichst kleiner Programmieraufwand für Sherlock und u-Grabber.
Sherlock müsste die Optionen und deren Entsprechnung in der XML weder kennen noch verstehen.
Auf Änderung im u-Grabber, die die Optionen oder das XML-Format betreffen, könnte der User reagieren indem er in Sherlock den hinterlegten Block erneuert.
Kontra: Wenig Komfort und Flexibilität für den User und Platz für userseitige Bedienfehler.
3. Importschnittstelle im u-Grabber.
Es könnte im u-Grabber einen Einstellungsbereich geben mit welchen Optionen "Fremdtimer" importiert werden.
Sherlock würde dann nur die Basisinformationen zu den Timern in einer Exportdatei speichern und u-Grabber würde beim Einlesen die speziellen Optionen ergänzen.
Pro: Hoher Komfort / Transparenz beim User
Möglichst kleiner Programmieraufwand für Sherlock.
Keine Änderung bei Sherlock nötig, falls sich was beim u-Grabber ändert.
Andere Programme als der u-Grabber könnten diese Exportdatei ebenso nutzen.
Kontra: Relativ viel Programmieraufwand bei u-Grabber.
Alles in Allem erscheint mir die 3. Variante als die Sinnvollste und saggi hat ja schon Bereitschaft signalisiert.
Sherlock müsste dann die xml des u-Grabbers einlesen und erkennen für welche Box schon Aufnahmezeiten durch Timer blockiert sind, könnte dann seine Aufnahmezeiten kalkulieren und die resultierenden Timer exportieren.
Irgendwie müsste Sherlock noch unterscheiden können welche Timer im u-Grabber durch Sherlock generiert wurden, damit er weiß, dass er diese Timer neu planen kann darf und im Umkehrschluss auch erkennen, welche Timer im u-Grabber gesetzt wurden und er sie nicht verändern darf.
<sherlock>true/false</sherlock> bei jedem Timer in der u-Grabber-timer.xml
u-Grabber müsste den Export irgendwie mitbekommen.
u-Grabber könnte beispielsweise den Zeitstempel der Exportdatei in Intervallen prüfen und bei dessen Änderung den Import starten oder Sherlock könnte nach dem Export den u-Grabber antriggern mit "u-Grabber.exe /reload" oder irgendein Triggerpaket auf irgendeinen Netzwerkport senden.
Wäre der vorhandene Schlüssel
HKEY_CURRENT_USER\Software\HitchhikerWare\Sherlock\Schedule\
für irgendwas zu gebrauchen?
In Sherlock gibt es auch schon eine Möglichkeit des manuellen Exportes in eine ini-Datei.
Name=Name der Sendung
Channel=Sendername
Starttime=03.12.2013 18:35:00
Endtime=03.12.2013 20:15:00
Vielleicht reicht das ja schon.
Sherlock müsste dann aber trotzdem die u-Grabber-Timer einlesen können.
Sherlock ist übrigens nicht auf den Betrieb mit mehreren Boxen eingestellt und kann daher nicht die Aufnahmeplanung für mehrere Boxen erstellen, man müsste sich daher als User und beim u-Grabber auf eine Box für Sherlock-Timer festlegen.
Sherlock müsste beim u-Grabber-Timer-Auslesen unterscheiden welche für die "Sherlock-Box" sind und welche für andere Boxen und diese dann bei der Timergenerierung ignorieren.
Etwas unabhängig von der Sache:
Sherlock kann das Timer-Format von neutrinoHD nicht lesen und schreiben.
Sicher habe ich nicht alle resultierenden Schwierigkeiten bedacht, aber die lassen sich ja noch gemeinsam erörtern.
Vielen Dank Euch Beiden, dass Ihr in Erwägung zieht Euch der Sache anzunehmen.
Gruß Frank