CapturePlugin - Kaffeine
Aus TV-Browser Wiki
Falls man den DVB-Empfang in Kaffeine eingerichtet hat, kann man mittels dieser Anleitung per CapturePlugin aufnehmen.
Achtung! Momentan dürfen leider keine Leerzeichen im Titel oder Sendernamen übergeben werden.
Aber beachte deswegen die Diskussion
Inhaltsverzeichnis
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 "Applikation" angeben
- Als Parameter folgendes für »Aufnahme« eintragen:
{start_year} {start_month} {start_day} {start_hour} {start_minute} {length_minutes} "{isset(channel_name_external_quiet,channel_name)}" "{title}"
Die Anführungszeichen beim Kanalnamen und Titel sorgen dafür, dass diese Parameter auch korrekt mit Leerzeichen an die Scripte übergeben werden. - Bei »Löschen« irgend etwas eintragen.
Script kaffeine-tvbrowser-wrapper
#!/usr/bin/env python import sys import math import pcop import pydcop if sys.argv.count < 9: print 'zu wenig Parameter' exit 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 = sys.argv[8] channel = 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)
Alternatives Shell-Skript kaffeine-tvbrowser-wrapper
Leerzeichen im Kanalnamen und Titel werden korrekt zu kaffeine übertragen.
#!/bin/sh # Dieses Script überträgt Aufnahmedaten vom TV-Browser zu Kaffeine. # Überprüfen, ob alle notwendigen Programme vorhanden sind. for PRG in kaffeine dcop bc; do type $PRG >/dev/null 2>&1 || { echo "Das Programm '$PRG' wurde nicht gefunden!" exit 3 } done # Kaffeine muss schon laufen, also starten wir es zuerst. # Da Kaffeine sich nicht zweimal starten lässt, kann es # nicht schaden, ohne Abfrage zu starten. kaffeine # Wenn zu wenig Parameter, < 8, angegeben werden, dann nimm an, # dass die Sendung gelöscht werden soll. [ $# -lt 8 ] && { echo "Sendung gelöscht oder zu wenig Parameter!" exit 0 } # Lies die Parameter in Variablen. for VAR in strJahr strMonat strTag strStunde strMinute strLaenge strKanal strTitle; do eval "$VAR=\"$1\"" shift done strDauerStunden=`echo "$strLaenge/60" | bc` strDauerMinuten=`echo "$strLaenge%60" | bc` # Einstellige Zahlen mit führender Null ausstatten for VAR in strMonat strTag strStunde strMinute strDauerStunden strDauerMinuten; do case `eval "echo \\\$$VAR"` in [0-9]) eval "$VAR=0\$$VAR" ;; esac done strDauer=$strDauerStunden":"$strDauerMinuten":00" # Teile für Befehl bauen. strName="$strJahr$strMonat$strTag-$strStunde$strMinute $strTitle" strZeitpunkt=$strJahr"-"$strMonat"-"$strTag"T"$strStunde":"$strMinute":00" # Aufruf des Kaffeine-Interfaces via dcop. dcop kaffeine KaffeineIface dvbNewTimer "$strName" "$strKanal" "$strZeitpunkt" "$strDauer" # Rückgabe an den TV-Browser. cat <<EOF Name: $strName Kanal: $strKanal Zeit: $strTag.$strMonat.$strJahr $strStunde:$strMinute Dauer: $strDauerStunden:$strDauerMinuten EOF
ToDo
- Lösch-Funktion (scheint aber über DCOP nicht zu gehen)
Es ist wichtig, die Sendernamen im TV-Browser und in Kaffeine anzugleichen. Ein Entfernen der Leerzeichen im Sendernamen ist nicht notwendig. Groß- und Kleinschreibung muss übereinstimmen.
Kategorie⧼colon-separator⧽