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.
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 Programm 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}
- 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
Das Skript ersetzt Leerzeichen im Namen durch Unterstriche. Leerzeichen im Sendernamen werden aber noch nicht abgefangen, hier kann es passieren, dass Teile der Senderbezeichnung im Namen auftauchen.
#!/bin/bash # # Dieses Script überträgt Aufnahmedaten vom # TV-Browser zu Kaffeine # Konfiguration lArgumente=8 # Wenn zu wenig Parameter angegeben werden abbrechen if (( $# < $lArgumente )) ; then echo "Nicht genügend Parameter übergeben." exit 3 fi # Wenn genau 8 Parameter übergeben werden ist der 9. der Name if (( $# == $lArgumente )) ; then strJahr=$1 strMonat=$2 strTag=$3 strStunde=$4 strMinute=$5 strLaenge=$6 strKanal=$7 strTitle=$8 fi # Wenn mehr als 8 Parameter, gehören die Überschüssigen zum Namen if (( $# > $lArgumente )) ; then strJahr=$1 shift strMonat=$1 shift strTag=$1 shift strStunde=$1 shift strMinute=$1 shift strLaenge=$1 shift strKanal=$1 shift while [ ! -z "$1" ] do strTitle=$strTitle"_"$1 shift done fi # Teile für Befehl bauen strName=$strJahr"-"$strMonat"-"$strTag"_"$strStunde"-"$strMinute"_"$strTitle strZeitpunkt=$strJahr"-"$strMonat"-"$strTag"T"$strStunde":"$strMinute":00" strDauerStunden=$(($strLaenge/60)) if (( ${#strDauerStunden} < 2 )) ; then strDauerStunden="0"$strDauerStunden fi strDauerMinuten=$(($strLaenge%60)) if (( ${#strDauerMinuten} < 2 )) ; then strDauerMinuten="0"$strDauerMinuten fi strDauer=$strDauerStunden":"$strDauerMinuten":00" # Aufruf des Kaffeine-Interface dcop kaffeine KaffeineIface dvbNewTimer $strName $strKanal $strZeitpunkt $strDauer # Rückgabe an den TV-Browser echo "Name:"$strName";Kanal:"$strKanal";Zeit:"$strZeitpunkt";Dauer:"$strDauer
ToDo
- Lösch-Funktion (scheint aber über DCOP nicht zu gehen)
- Übergabe von Leerzeichen in Titel und Sendernamen
Kategorie⧼colon-separator⧽