Diskussion:CapturePlugin - Kaffeine
Zu der letzten Version für Kaffeine > 2
Im Moment (Ende 2019) ist Ruby 2.5 angesagt. Ich habe keine Ahnung, ob es daran liegt, aber das Script erzeugt ein "Fehler mit der Kaffeine-DB!". Soll eigentlich in die Datenbank von Kaffeine und in die Dbus-Einstellungen schreiben. Nichts davon findet statt.
In den Zeilen 36 und 40 sollte besser dieses stehen:
elsif ARGV[0] == "remove" then # Lies die Parameter in Variablen. dummy, sJahr, sMonat, sTag, sStunde, sMinute, sLaenge, sKanal, sTitel, sProdYear, sEpisode, sEpisode_number= ARGV
Das "dummy" ist notwendig, weil sonst im Jahr das Wort "record" steht (das erste Argument). Spielmops
Ich habe einen Vorschlag für ein besseres Python-Script. Dieses übersetzt zwischen unterschiedlichen
TV-Browser- und DVB-Kanalnamen, und weil sowohl Kanal als auch Titel url-encoded übermittelt werden,
können sie Leerzeichen und Sonderzeichen enthalten. Sonderzeichen wie z.B. '/' werden übrigens von
Kaffeine selbst in '_' verwandelt.
Installation
- DCOP-Bindings für Python installieren (Paket python-dcop bei Debian/Ubuntu)
- Das unten angegebene Script mit dem Namen
kaffeine-tvbrowser-wrapper
erstellen und abspeichern. - Script ausführbar machen (
chmod a+x kaffeine-tvbrowser-wrapper
) - Das Script in den CapturePlugin-Einstellungen als Programm angeben
- Als Parameter folgendes für »Aufnahme« eintragen:
{start_year} {start_month} {start_day} {start_hour} {start_minute} {length_minutes} {urlencode(isset(channel_name_external_quiet,channel_name), "iso8859-1")} {urlencode(title, "iso8859-1")}
- Bei »Löschen« irgend etwas eintragen.
Script kaffeine-tvbrowser-wrapper
#!/usr/bin/env python import sys import math import pcop import pydcop import urllib channel_renames = { 'Das Erste (ARD)': 'Das Erste', 'BR': 'Bayerisches FS', 'ZDFdokukanal': 'Doku/KiKa', 'Ki.Ka': 'Doku/KiKa', 'SWR BW': 'SWR Fernsehen', } def rename_channel(channel): try: return channel_renames[channel] except KeyError: return channel def dd(num): if int(num) < 10: return "0" + str(num) else: return str(num) year = dd(sys.argv[1]) month = dd(sys.argv[2]) day = dd(sys.argv[3]) hour = dd(sys.argv[4]) minute = dd(sys.argv[5]) length = int(sys.argv[6]) title = urllib.unquote_plus(sys.argv[8]) channel = rename_channel(urllib.unquote_plus(sys.argv[7])) name = year + "-" + month + "-" + day + "_" + hour + "-" + minute + "_" + title datetime = year + "-" + month + "-" + day + "T" + hour + ":" + minute + ":00" duration = dd(int(math.floor(length // 60))) + ":" + dd(length % 60) + ":00" pydcop.anyAppCalled("kaffeine").KaffeineIface.dvbNewTimer(name, channel, datetime, duration)