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}
- 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 # # 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 # 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 # Einstellige Zahlen mit führender Null ausstatten if (($strMonat<10)); then strMonat="0"$strMonat fi if (($strTag<10)); then strTag="0"$strTag fi if (($strStunde<10)); then strStunde="0"$strStunde fi if (($strMinute<10)); then strMinute="0"$strMinute 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-Interfaces 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
Es ist wichtig, die Sendernamen im TV-Browser und in Kaffeine anzugleichen, bei der Gelegenheit sollten die Leerzeichen entfernt werden. Groß- und Kleinschreibung muss übereinstimmen.
Kategorie⧼colon-separator⧽