Aufnahmesteuerung - verfügbare Information

Antworten
buers
Junior Member
Beiträge: 25
Registriert: 18 Mär 2021, 10:32

Aufnahmesteuerung - verfügbare Information

Beitrag von buers »

Die Aufnahme-Steuerung macht ja viele Informationen zu aufzunehmenden Sendungen verfügbar, z.B. Beschreibung {description} oder Schauspieler {actors}. Funktioniert auch hervorragend! Es wäre schön, wenn weitere Info zur Verfügung gestellt würde, z.B. Regisseur(e) {director}, evt. auch Drehbuch, Musik, Kamera. Evt. sogar IMDB-Movie-ID oder Link.
ds10
Site Admin
Beiträge: 18833
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von ds10 »

Man kann bereits die Informationen abrufen, einfach einmal in die Hilfe zu den Parametern der Aufnahmesteuerung durchlesen. Die IMDB-Movie-ID stammt von einem Plugin, solche Daten sind aktuell nicht verfügbar für andere Plugins.

Einen Hinweis muss ich dabei auf die Nutzungsbedingungen geben. Die Daten dürfen nur für die Ankündigung von Sendungen verwendet werden. Man darf die Aufnahmesteuerung nicht nutzen, um die Daten dauerhaft zu exportieren.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
buers
Junior Member
Beiträge: 25
Registriert: 18 Mär 2021, 10:32

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von buers »

Kannst du, oder sonst jemand bitte nennen, wo genau man die Info findet? Mit TV-Browser 4.2.6 und Aufnahmesteuerung 3.2.3.1 bin ich in eine Konfig rein, dort Reiter Parameter -> Hilfe. Das kenne ich fast auswendig :-) Dort steht aber nix zu {director} oder wie immer die Regisseure da heißen sollen. Oder ich habe Tomaten auf den Augen ... Dass vieles anderes Nützliches da hervorragend funktioniert, hatte ich ja schon beschrieben. Das sind die Parameter, die bei mir angezeigt werden:
{actors}, {channel_name}, {channel_name_external}, {channel_name_external_quiet}, {channel_sort_number}, {custom}, {description}, {device_password}, {device_username}, {end_day}, {end_hour}, {end_minute}, {end_month}, {end_unix}, {end_year}, {episode}, {episode_number}, {genre}, {length_minutes}, {length_sec}, {origin}, {original_episode}, {original_title}, {production_year}, {season_number}, {short_info}, {start_day}, {start_day_of_week}, {start_hour}, {start_minute}, {start_month}, {start_month_name}, {start_unix}, {start_year}, {title}, {url}
ds10
Site Admin
Beiträge: 18833
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von ds10 »

Für dort nicht aufgeführte Parameter gilt der Name des Felds, siehe: https://sourceforge.net/p/tvbrowser/cod ... dType.java

Für Regie wäre das also DIRECTOR_TYPE
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
buers
Junior Member
Beiträge: 25
Registriert: 18 Mär 2021, 10:32

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von buers »

Danke sehr, hat funktioniert. Konnte man aber nicht leicht selbst drauf kommen - auch bei sorgfältigem Lesen der Hilfe.

Falls es noch für andere Leser interessant sein sollte - bei dem von dir verlinkten Quelltext steht beispielsweise:

Code: Alles auswählen

public static final ProgramFieldType DIRECTOR_TYPE
    = new ProgramFieldType(11, FORMAT_TEXT, true, "director",
                           "director", "Director", 7);
Dann kann man im bei der Parameter-Konfig der Aufnahmesteuerung z.B.: sowas nutzen wie "Regie: {DIRECTOR_TYPE}", nicht funktioniert jedoch "Regie: {director}"

Bei anderen Feldern (die im Hilfetext vorhanden sind)

Code: Alles auswählen

public static final ProgramFieldType ACTOR_LIST_TYPE
    = new ProgramFieldType(10, FORMAT_TEXT, true, "actor list",
                           "actors", "Actors", 6);
funtkioniert beispielsweise "Darsteller: {actors}". Für mich kein Thema - in der Hoffnung, dass das einigermaßen verlässlich bleibt.
ds10
Site Admin
Beiträge: 18833
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von ds10 »

Ich habe das System jetzt erweitert, ab der morgigen Nightly ist es möglich auch Infos von Plugins abzufragen. Um also an die IMDB-Movie-ID zu gelangen, kann man dann {programInfo("ImdbPlugin", "imdbMovieId")} als Parameter hinzufügen, wollte man den Link, dann halt imdbLink statt imdbMovieId übergeben.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
buers
Junior Member
Beiträge: 25
Registriert: 18 Mär 2021, 10:32

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von buers »

Hört sich sehr gut an - vielen Dank! Eine Frage dazu - mit den Gänsefüsschen fürchte ich mich schon vor Komplikationen. Ich würde es normalerweise so nutzen (Jetzt erst Mal andere Beispiel):
"Genre: {genre}"
Man kann sich fragen wieso - Antwort, um die Argumente in meinem aufgerufenen C++ Programm zuverlässig zuweisen zu können. Sagen wir Genre ist das 7. Argument, das argument danach ist dann das 8. (argv[7]} und sei von mir aus das Produktionsjahr. Ist das Genre nicht gesetzt funktioniert das auch. Alternative {genre} würde aber nicht ein leeres Argument übergeben sondern gar keins. Dann wäre das Produktionsjahr auf einmal argv[6]. Diese Problematik wird durch das Vorgehen oben vermieden. Funktioniert auch schon lange zuverlässig. Vielleicht nicht optimal geschickt - lasse mich da gerne eine Besseren belehren.

Für das neue System, das Quotes braucht (die ja in vielen Programm-Situationen nicht ganz einfach zu nutzen/parsen sind - weil sie nicht verschachteln) wird sicherlich
"Imdb-ID: {programInfo("ImdbPlugin", "imdbMovieId")}" nicht funktionieren. Was dann?

Ist ja dein/euer Design. Aber vielleicht wäre es keine schlechte Idee, sich hier nicht so sehr auf Quotes zu verlassen. In einem andern Zusammenhang hatten die ja auch schon mal Probleme gemacht, die wir hier diskutiert hatten.
ds10
Site Admin
Beiträge: 18833
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von ds10 »

Die Anführungszeichen innerhalb von Funktionen spielen für die Übergabe der Parameter an das System keine Rolle, denn die sind ja nicht mehr vorhanden, wenn die Funktionen ausgeführt wurden. Übrig bleiben nur die Werte, die die Funktionen zurück geben.

In deinem Beispiel wäre die Ausgabe also z.B.: "Imdb-ID: tt1234567"
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
buers
Junior Member
Beiträge: 25
Registriert: 18 Mär 2021, 10:32

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von buers »

Danke dir! Wollte das jetzt mal ausprobieren. Unter http://nightly.tvbrowser.org/ finde ich kein CapturePlugin. Ist das Tv-Browser-Nightly gemeint?

Dein letzter Beitrag, @ds10, hört sich an, als sollte mein IMDVB-Snippet ("Imdb-ID: {programInfo("ImdbPlugin", "imdbMovieId")}") dann wie erwartet funktionieren, trotz der verschachtelten Gänsefüßchen? Frage mich da (wenn ich Mal die Verschachtelung durch Klammern ersetze) wie da die Parsing-Regeln sind, um Eindeutigkeit herzustellen. Weil
"t1"t2","t3"t4" (mit t1 = Imdb-ID: {programInfo(, t2=ImdbPlugin, t3=,, t4=imdbMovieId,t5=)}
ist ja so gemeint
(t1(t2),(t3)t4)

Wie wird aber
(t1)t2(,)t3(t4)
als Interpretation vermieden? Verstehe gar nicht, dass das funktionieren kann (ohne Einschränkungen des Inhalts von Strings und entspricht halt Operator-Rangfolge/Interpretation von Programmiersprachen, die ich kenne. Zweifle aber nicht (mehr) daran, da ich weiß dass beispielsweise
"Beschreibung: {replace(description,"%"::“")}"
auch funktioniert wie gewünscht. Ist bisschen schwer zu lesen, der Replace-Text ist ein "typographisches" Gänsefüßchen (Unicode U+201C), nicht jenes aus dem Grund-ASCII-Bereich, das als String-Begrenzung dient.

Ich habe gemerkt, dass die Foren-SW "code"-Tags nimmt für Quelltext. Du nutzt auch sowas ähnliches, das ich von anderen Foren mit [tt]Quelltext-snippet in typewriter-Schrift[/tt] kenne. Funktioniert hier anscheinend nicht. Wie geht es hier?
ds10
Site Admin
Beiträge: 18833
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von ds10 »

Ich meine die Nightly von TV-Browser, du kannst aber auch einfach die aktuelle Beta nehmen, da ist diese Funktion enthalten.
Frage mich da (wenn ich Mal die Verschachtelung durch Klammern ersetze) wie da die Parsing-Regeln sind, um Eindeutigkeit herzustellen. Weil
"t1"t2","t3"t4" (mit t1 = Imdb-ID: {programInfo(, t2=ImdbPlugin, t3=,, t4=imdbMovieId,t5=)}
ist ja so gemeint
(t1(t2),(t3)t4)
Ich kann dir hier einfach nicht folgen. Ein so aufgebaute Funktion programInfo würde gar nicht funktionieren, die Funktion erwartet genau zwei Parameter, der erste enthält den Namen der Plugin-Klasse und der zweite die Id der Info, die das Plugin anbietet. Du scheinst da einfach zu viel drüber nachzudenken, das ist vollkommen unnötig. Das System verarbeitet Funktionen und Parameter unabhängig von Anführungszeichen an anderen Stellen. Alles was in geschweiften Klammern steht, muss zuerst interpretiert werden. Problematisch können Anführungszeichen erst dann werden, wenn das externe Programm gestartet wird und beispielsweise eine Funktion die mit Anführungszeichen umschlossen wurde selbst noch Anführungszeichen zurück gibt.
Ich habe gemerkt, dass die Foren-SW "code"-Tags nimmt für Quelltext. Du nutzt auch sowas ähnliches, das ich von anderen Foren mit [tt]Quelltext-snippet in typewriter-Schrift[/tt] kenne. Funktioniert hier anscheinend nicht. Wie geht es hier?
Dafür gibt es den c-Tag.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
buers
Junior Member
Beiträge: 25
Registriert: 18 Mär 2021, 10:32

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von buers »

Danke, hat einwandfrei mit der Beta-Version funktioniert! Habe auch den Hilfetext gesehen - super.

Eine hoffentlich letzte Frage dazu - wo kann ich die verwendbaren Parameter für {programInfo("PluginClassName", "uniqueInfoId")} nachsehen? Die Angaben kamen ja jetzt von dir in deinem Forumsbeitrag:
TVB-Anzeige: IMDb-Movie-ID -> uniqueInfoId: imdbMovieId
TVB-Anzeige: IMDb-Link -> uniqueInfoId: imdbLink

Und für das PluginClassName
TVB-Anzeige deutsch: IMDb-Bewertungen/Plugin-Datei:ImdbPlugin.jar -> "ImdbPlugin".

Ist schon naheliegend, aber nicht vollkommen zu erraten (außer vielleicht beim Plugin, wenn das aus dem Dateinamen gebildet wird).

Habe übrigens Mal imdbRating als uniqueInfoId geraten, Parameter-Test war erfolgreich (keine Fehlermeldung), allerdings war die Ausgabe leer.
ds10
Site Admin
Beiträge: 18833
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von ds10 »

Die notwendigen Infos bekommt man letztendlich nur aus dem Quelltext der Plugins. Wenn man eine nicht existierende ID eingibt, passiert gar nichts, es wird einfach ein leerer Wert zurück gegeben.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
buers
Junior Member
Beiträge: 25
Registriert: 18 Mär 2021, 10:32

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von buers »

Ok, habe ich gefunden in https://sourceforge.net/p/tvbrowser/cod ... n.java#l74

Nehme an, die Bewertung steht da halt dann nicht zur Verfügung über "uniqueInfoID". Funktionen zu Rating sehe ich da freilich.
ds10
Site Admin
Beiträge: 18833
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Aufnahmesteuerung - verfügbare Information

Beitrag von ds10 »

Die Bewertung wäre nur verfügbar, wenn das Plugin die über diese eine Funktion verfügbar machen würde.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Antworten