Kann man die TVScraper-Einträge im Aux-Feld auch lokalisieren.
Die Skins zeigen diese Informationen momentan in Englisch an.
Die Wörter 'improve' oder 'collection'... passen da nicht wirklich.
Oder müsste das im Skin lokalisiert werden?
Kann man die TVScraper-Einträge im Aux-Feld auch lokalisieren.
Die Skins zeigen diese Informationen momentan in Englisch an.
Die Wörter 'improve' oder 'collection'... passen da nicht wirklich.
Oder müsste das im Skin lokalisiert werden?
Hi,
im aux Feld stehen Daten, die auch von Programmen gelesen werden. Daher möchte ich den Inhalt des aux Feldes nicht lokalisieren.
~ Markus
Wo finde ich alle möglichen Werte für reason? Würde das mit einer einfachen if oder case -abfrage im Skin übersetzen.
Oder kann man in C++ auch einfach tr(reason) verwenden?
Ich überlege mir was. Ev. kann ich einen Services dafür anbieten.
Muss nicht. Das kann ich bestimmt auch im Skin machen.
Hi,
Im tvscraper git ist ein update. Damit wird das service interface
// Data structure for service "GetAutoTimerReason"
class cGetAutoTimerReason {
public:
//in:
const cTimer *timer = nullptr;
bool requestRecording = false; // set this to true if you need the cRecording object
//out
bool createdByTvscraper; // if this is false, please ignore all other return values
std::string reason; // translated, e.g. "Verbessern von Action~Salt"
// If requestRecording == true, the name of the recording at the end will be omitted. e.g. "Verbessern von"
std::string recordingName; // with folder, e.g. "Action~Salt". Determined during creation of timer -> available even if recording == nullptr
const cRecording *recording; // only if requestRecording == true. Can be nullptr, e.g. if the recording was deleted after the timer was created.
cPlugin *call(cPlugin *pScraper = NULL) {
if (!pScraper) return cPluginManager::CallFirstService("GetAutoTimerReason", this);
else return pScraper->Service("GetAutoTimerReason", this)?pScraper:NULL;
}
};
Alles anzeigen
verfügbar gemacht.
Im git von live ist das schon implementiert.
MegaV0lt , kamel5 , bitte schaut Euch das mal an. Wenn es den Skins hilft, kann ich das auch noch ändern.
Anmerkung: tvscraper schreibt damit auch mehr Daten in das aux Feld der Timer. Also:
- tvscraper updaten.
- vdr restarten
- Timer löschen, die der tvscraper autotimer angelegt hat. Die Timer werden neu angelegt, und dabei die zusätzlichen Daten ins aux Feld geschrieben.
~ Markus
P.S.: Implementierung in live in timers.cpp:
if (!timer.Aux()) return "";
cGetAutoTimerReason getAutoTimerReason;
getAutoTimerReason.timer = &timer;
getAutoTimerReason.requestRecording = true;
if (getAutoTimerReason.call(LiveSetup().GetPluginScraper()) ) {
if (!getAutoTimerReason.createdByTvscraper) return "";
if (getAutoTimerReason.recording) {
recID = "recording_" + MD5Hash(getAutoTimerReason.recording->FileName() );
recName = getAutoTimerReason.recordingName;
return getAutoTimerReason.reason;
}
return getAutoTimerReason.reason + " " + getAutoTimerReason.recordingName;
}
// fallback information, if this tvscraper method is not available
Alles anzeigen
~ Markus
Die Timer werden neu angelegt, und dabei die zusätzlichen Daten ins aux Feld geschrieben.
Wenn ich das richtig verstehe, werden neue Timer automatisch mit den neuen Informationen im AUX-Feld vom tvscraper angelegt.
Da meine Skins bei Aufnahmen den Inhalt des AUX-Feldes der Info-Datei auswerten und dann das, was dort steht, bisher unverändert anzeigen, sollten doch die neuen Informationen automatisch dann mit angezeigt werden...
Ich würde das dann vorerst auch einmal so lassen.
Für Timer gilt ja im Prinzip dann das Gleiche, wobei ich im Timer Edit Modus das AUX-Feld bisher nicht auswerte. Darüber könnte ich ja nochmal nachdenken.
Spontan hätte ich im Moment keinen neuen Anwendungsfall in Petto...
Grüße
kamel5
> Spontan hätte ich im Moment keinen neuen Anwendungsfall in Petto...
OK, mal ein Beispieleintrag vom neuen AUX:
<tvscraper><causedBy>Machete</causedBy><causedByIDs><eventID>58646</eventID><eventStartTime>1694820344</eventStartTime><channelID>S19.2E-1-1107-17501</channelID></causedByIDs><collectionName>Machete Filmreihe</collectionName><reason>collection</reason></tvscraper>
Und das Service Interface gibt dann
aus.
~ Markus
OK, dann habe ich es doch falsch verstanden. Ich hatte jetzt angenommen, das das dann automatisch in AUX so eingetragen wird.
Ich finde das etwas unglücklich, da dann ja jeder Skin eine Anpassung machen müsste. Gibt es denn einen Grund, das in einen extra Service zu verpacken. Oder wäre es nicht aus Kompatibilitätsgründen einfacher, das direkt in AUX einzutragen unter "reason", wie bisher, unter Umständen mit einer Konfigurierbarkeit im tvscraper setup.
Ich verstehe, das das mehr Möglichkeiten eröffnet, ich befürchte aber auch, das es dann ewig dauert, bis es in die Skins eingezogen ist.
Solange die alte Funktionalität erhalten bleibt, habe ich prinzipiell erst einmal nichts gegen neue Möglichkeiten.
Grüße
kamel5
Hi kamel5,
Das aux Feld wird halt auch von tvscraper und live ausgewertet, daher auch die Felder im XML Format. Die Daten in <causedByIDs> erlauben es, das cRecording Objekt zu finden. Damit kann dann live einen Link direkt zur Aufzeichnung bereitstellen. Letztlich ist es aus meiner Sicht besser, hier Daten in einem maschinenlesbaren Format zu haben.
Und der Aufruf von dem Service Interface ist jetzt doch auch nicht soo aufwändig (?).
Aber kein Stress, das ist ein Angebot an die Skins. Ihr müsst das nicht nutzen.
Wenn ihr Änderungswünsche an das Service Interface habt, können wir das gerne hier diskutieren.
~ Markus
Im git ist ein Update.
Ich habe die Schnittstelle geändert, als Input wird nun char *aux erwartet (anstelle von cTimer).
Damit kann die Methode auch für Aufzeichnungen verwendet werden.
Im git ist ein Update.
Ich habe die Schnittstelle noch mal geändert, als Input wird nun cTimer oder cRecording erwartet.
Damit kann die Methode bei Bedarf weitera Daten (von cTimer / cRecording) nutzen.
Ich hoffe, ihr verwendet die Methode noch nicht.
~ Markus
Ich bin noch nicht dazu gekommen... Warte noch bis es in den anderen Skins ist. Damit fällt es mir leichter das zu kopieren
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!