TMark2Plugin

Aus TV-Browser Wiki
Version vom 19. Dezember 2009, 10:12 Uhr von Tosch⧼word-separator⧽⧼parentheses⧽ ⧼parentheses⧽
⧼revision-nav⧽
Wechseln zu: Navigation⧼comma-separator⧽Suche

Pluginbeschreibung

Mit diesem Plugin kann man Sendungen mit Hilfe einer einfachen Abfrage-Sprache finden. Für das Erstellen und Bearbeiten von Regeln wie beim Favoriten-Plugin können ähnliche Dialoge und Wizards wie dort benutzt werden. Für das bearbeiten komplexer Regeln ist Erfahrung im Umgang mit Skriptsprachen notwendig.

Screenshot tmark2plugin 002.png

Features

  • Beliebig komplexe Abfragen auf den Daten der Sendungen.
  • Suchen lassen sich speichern und hierarchisch gruppieren.
  • Gespeicherte Suchen werden automatisch nach dem Herrunterladen neuer TV-Daten neu gestartet.
  • Treffer der ausgewählten Abfrage werden in einer Liste angezeigt.
  • Es können auch alle Treffer einer Gruppe von Abfragen angezeigt werden.
  • Abfragen lassen sich ex- und importieren.

Wo bekomme ich das Plugin?

Sie können das Plugin auf der TV-Browser-Plugin-Seite herunterladen. Dort finden Sie auch immer die jeweils neueste Version.

Hinweis: Das Plugin befindet sich noch in der Entwicklung, eventuelle Fehler sind daher nicht ganz auszuschließen. Bitte posten Sie Fehler in unserem Forum TV-Browser-Forum. Ich (Entwickler) bin allerdings nicht regelmäßig hier, eine Mail/PN kann das ganze beschleunigen.

Eine Installations-Anleitung für Plugins finden Sie hier.

Abfrage-Sprache

Features am Beispiel:

  • title == "Nachrichten": prüft ob Titel der Sendung genau gleich "Nachrichten" ist
  • title contains "Nachrichten": prüft ob der Title "Nachrichten" enthält
  • title sndlike "Nachrichten": vergleicht die SoundEx-Werte vom Titel und "Nachrichten"
  • title = "Nach.*richten": prüft ob der Reguläre Ausdruck "Nach.*richten" auf den Titel zutrifft. Details zu regulären Ausdrücken
  • start < 12:30: prüft ob die Sendung vor 12:30 beginnt
  • start <= 24.12.2009: prüft ob die Sendung vor oder am 24.12.2009 beginnt
  • end > 24.12.2009: prüft ob die Sendung nach dem 24.12.2009 endet
  • end >= 24.12.2009+12:30: prüft ob die Sendung nach dem 24.12.2009 um 12:30 endet
  • title contains "Nachrichten" && start >12:30: prüft ob der Title "Nachrichten" enthält und die Sendung nach 12:30 beginnt
  • title contains "Nachrichten"|"News": prüft ob der Titel die Worte "Nachrichten" oder "News" enthält
  • title|text contains "Nachrichten"|"News": prüft ob der Titel oder der Text die Worte "Nachrichten" oder "News" enthält
  • text contains "Nachrichten"&"Magazin": prüft ob der Text die Worte "Nachrichten" und "Magazin" enthält.
  • text contains "Nachrichten" && !text contains "Magazin": prüft ob der Text das Wort "Nachrichten" aber nicht der Wort "Magazin" enthält.
  • text contains [
    Nachrichten
    Magazin
    ]
    : prüft ob der Text die Worte "Nachrichten" oder "Magazin" enthält.

seit 2.0.1.2

  • filter("Markierte"): prüft ob der Filter mit dem Namen "Markierte" das Program enthält.
  • plugin("reminderplugin.ReminderPlugin"): prüft ob das Program von einem Plugin mit der ID "reminderplugin.ReminderPlugin" markiert wurde.

seit 2.0.1.4

  • start>now: vergleicht die Startzeit mit der aktuellen Urzeit (Anmerkung siehe unten)
  • start<now+2:00: prüft ob die Sendung innerhalb der nächsten 2 Stunden beginnt (Anmerkung siehe unten)
  • start<now+1.0.0: prüft ob die Sendung innerhalb der nächsten 24 Stunden beginnt. Format ist Tage.Monate.Jahre (Anmerkung siehe unten)
  • start==today: vergleicht das Startdatum mit dem aktuellen Datum (Anmerkung siehe unten)
  • start==today+1.0.0: prüft ob die Sendung morgen läuft (Anmerkung siehe unten)
  • start==monday: prüft ob die Sendung an einem Montag läuft. Konstanten für Wochentage: monday, tuesday, wednesday, thursday, friday, saturday, sunday, weekday, weekend
  • start==monday|friday: prüft ob die Sendung an einem Montag oder Freitag läuft.


Anmerkung zu now und today: da sich die aktuelle Uhrzeit ja ständig ändert ergeben Suchen mit "now" und "today" auch laufend andere Ergebnisse. Um den Rechner zu schonen werden die Suchen aber nicht ständig aktualisiert sondern nur wenn:

  • der TV-Browser die Daten aktualisiert
  • oder die Suche manuell gestartet wird
  • oder die Treffer eine Regel die "now" oder "today" enthält im TMark-Fenster neu ausgewählt wird
  • oder die Treffer eine Regel die "now" oder "today" enthält im TMark-Fenster ausgewählt ist und die letzte Suche 30 Minuten her ist.

Suchen

Zum erstellen einer neuen Suche muss das Plugin-Fester geöffnet und der Editor-Button aktiv sein. Der Editor-Button befindet sich rechts neben der Programmliste. Ist er aktiviert lassen sich Suchen erstellen, bearbeiten und verschieben. Um eine Suche zu erstellen wird die Funktion "neue Suche" im Kontextmenü des Regel-Baums auf der linken Seite des Pluginfensters benutzt. Am oberen Rand des Fensters befindet sich ein Textfeld in dem der Titel der Suche eingegeben werden kann. Rechts daneben befindet sich das Feld "markieren:", hier kann eingestellt werden wie die Treffer der Suche im TV-Browser makriert werden. Unterhalb des Titel-Feldes befinden sich zwei Tabs zum eingeben der Formel für die Suche:

  • "einfach" enthält eine Formular mit dem man einfache Formeln schnell eingeben kann.
  • "komplex" enthält ein Textfeld in dem die Formel für beliebige Suchen bearbeitet werden kann.

Nach dem Bearbeiten der Formel muss die Suche manuell gestartet werden. Dazu dient der "suchen"-Button unterhalb der Formel-Tabs.

Suchen gruppiern und verschieben

Um die gespeicherten Suchen zu gruppieren oder zu verschieben muss der Editor-Button aktiv sein. Der Editor-Button befindet sich rechts neben der Programmliste. Ist er aktiviert lassen sich Suchen erstellen, bearbeiten und verschieben. Um eine neue Gruppe anzulegen wird die Funktion "neue Gruppe" im Kontextmenü des Regel-Baums auf der linken Seite des Pluginfensters benutzt. Am oberen Rand des Fensters befindet sich ein Textfeld in dem der Titel der Gruppe eingegeben werden kann. Um bestehende Regeln in die Gruppe zu verschieben können die Funktionen "ausschneiden", "kopieren" und "einfügen" im Kontextmenü des Regel-Baums benutzt werden.

weitere Funktionen

  • Der Eintrag "*schnell-suche*" im Regel-Baums wird nicht gespeichert und aktiviert automatisch den Editor. Er eignet sich zB. zum experimentieren.
  • mit dem "Details"-Button rechts nebem der Programmliste kann die Sendungsbeschreibung der Programm in der Programmliste an und abgeschaltet werden.
  • mit dem "jetzt"-Button rechts neben der Programmliste wird in der Programmliste zur nächsten noch nicht beendeten Sendung gescrollt.
  • die Funktion "suchen" im Kontextmenü des Regel-Baums startet die markierte Suche neu.
  • ist der Editor aktiv kann man für allen Suchen einer Gruppe festlegen wie sie markiert werden in dem man im Kontextmenü der Gruppe den Wert aus dem Untermenü "markieren als" auswählt.

Details der Scriptsprache

einfacher Vergleich

Der Vergleich ist das einfachste Element der Abfrage. Er besteht aus dem Feld das geprüft werden soll, der Art des Vergleiches und dem Vergleichswert. Die folgenden Vergleichsarten können für Texte verwendet werden:

  • A == B: prüft ob A genau gleich B ist
  • A contains B: prüft ob B ein Teil von A ist
  • A sndlike B: vergleicht die Metaphone-Werte von A und B. Damit kann man Worte finden ohne die genaue Schreibweise zu kennen.
  • A = B: prüft ob der Reguläre Ausdruck B auf A zutrifft. Details zu regulären Ausdrücken

Für Zahlen, Datum und Uhrzeit sind folgende Vergleichsarten möglich:

  • A == B: prüft ob A genau gleich B ist
  • A < B: prüft ob A kleiner B ist
  • A <= B: prüft ob A kleiner oder gleich B ist
  • A > B: prüft ob A größer B ist
  • A >= B: prüft ob A größer oder gleich B ist

Die folgenden Felder können verglichen werden:

  • title: Der Titel der Sendung
  • start: Der Begin der Sendung (Zeit und Datum)
  • end: Das Ende der Sendung (Zeit und Datum)
  • text: Kombination aus allen Textfeldern der Sendungsbeschreibung
  • episode: Titel der Episode
  • episodenr: Nummer der Episode
  • channel: Name des Kanals
  • actors: Liste der Schauspieler
  • additionalpersons: Weitere beteiligte Personen
  • agelimit: FSK
  • camera: Kamera
  • cutter: Schnitt
  • description: Beschreibung
  • director: Regie
  • endTime: Das Ende der Sendung (Zeit)
  • episodenumber: Nummer der Episode
  • episodenumbertotal: Anzahl an Folgen
  • formatinfo: Formatinformation
  • genre: Genre
  • moderation: Moderation
  • music: Musik
  • netplayingtime: Nettospielzeit
  • origin: Herkunft
  • oepisode: Orginal Episodentitel
  • otitle: Orginaltitel
  • picturecopyright: Copyright des Bildes
  • picturedescription: Bildbeschreibung
  • producer: Produzent
  • productioncompany: Produktionsfirma
  • productionyear: Produktionsjahr
  • rating: Bewertung
  • repetitionof: Wiederholung vom
  • repetitionon: Wiederholung am
  • script: Drehbuch
  • seasonnumber: Nummer der Staffel
  • shortdescription: Kurzbeschreibung
  • showview: Showview
  • startTime: Der Begin der Sendung (Zeit)
  • vps: VPS
  • website: Webseite des Films

Als Vergleichswert kann sowohl ein Text, eine Zahl, ein Datum oder eine Uhrzeit verwendert werden:

  • Texte werden in Anführungszeichen gesetzt. Beispiel: "text"
  • Zahlen werden normal angegeben. Beispiel: 123 oder 123.45
  • Uhrzeit hat das Format SS.MM. Beispiel: 12:30
  • Datum hat das Format TT.MM.YYYY. Beipiel: 24.12.2009
  • Um das Datum mit einer Uhrzeit zu ergänzen ist das Format TT.MM.YYYY+SS.MM. Beipiel: 24.12.2009+12:30

Beispiele:

Um alle Sendungen zu finden deren Title Nachrichten ist: title == "Nachrichten"

Um alle Sendungen zu finden die im Title das Wort Nachrichten enthalten: title contains "Nachrichten"

Um alle Sendungen zu finden die vor dem 24.12.2009 um 12:30 zu Ende sind: end < 24.12.2009+12:30

verbinden meherer Vergleiche

Um mehrere einfache Vergleiche zu verbinden stehen die üblichen Boolschen Funktionen zur Verfügung.

  • A || B für A oder B
  • A && B für A und B
  • !A für nicht A
  • (A) als Klammerung

Vergleich auf mehrern Feldern oder mit mehreren Werten

Für Abfragen bei denen ein Feld mit mehreren Werten verglichen werden soll gibt es eine verkürzte Schreibweise. Wenn A und B Vergleichswerte sind dann:

  • A|B bedeutet A oder B
  • A&B bedeutet A und B

Um alle Sendungen mit "Nachrichten" oder "News" im Titel zu finden kann also statt
title contains "Nachrichten" || title contains "News"
auch
title contains "Nachrichten"|"News"
verwendet werden. Äquivalent ist die Suche auf mehreren Feldern. Werden Sendungen gesucht die im Titel oder im Text das Word "News" enthalten kann man
title contains "News" || text contains "News"
oder auch
title|text contains "News"
verwenden.


Weiter Beispiele:

Sendungen die im Titel oder im Text die Worte "News" oder "Nachrichten" enthalten:
title|text contains "Nachrichten"|"News"

Sendungen die im Text die Worte "Nachrichten" und "Magazin" enthalten
text contains "Nachrichten"&"Magazin"

Massenvergleich

Für den Vergleich eines Textfeldes mit einer großen Anzahl von alternativen Vergleichswerten gibt es eine alternative Schreibweise. Innerhalb eines Blockes der mit [] gekenzeichnet ist wird jede Zeile als einzelner Vergleichswert verwendet. Das ] muss dann als erstes Zeichen einer neuen Zeile folgen. Die Vergleichswerte müssen dabei NICHT in Anführungszeichen angegeben werden. Leerzeichen am Anfang und am Ende der Zeilen werden ignoriert. Beispiel:
text contains [
News
Magazin
]

ist alternativ für text contains "News"|"Magazin" und findet Sendungen die die Worte News oder Magazin im Text haben.