CapturePlugin - Kaffeine: Unterschied zwischen den Versionen

Aus TV-Browser Wiki
Wechseln zu: Navigation⧼comma-separator⧽Suche
Laureus⧼word-separator⧽⧼parentheses⧽
⧼parentheses⧽
Laureus⧼word-separator⧽⧼parentheses⧽
Zeile 1: Zeile 1:
 
Falls man den DVB-Empfang in [http://kaffeine.sf.net/ Kaffeine] eingerichtet hat, kann man mittels dieser Anleitung per [[CapturePlugin]] aufnehmen.
 
Falls man den DVB-Empfang in [http://kaffeine.sf.net/ Kaffeine] eingerichtet hat, kann man mittels dieser Anleitung per [[CapturePlugin]] aufnehmen.
  
<b><big>Achtung! Momentan dürfen leider keine Leerzeichen im Titel oder Sendernamen übergeben werden.</big></b>
+
Zu Leerzeichen im Sendernamen / Titel gibt es folgende Diskussion: [[Diskussion:CapturePlugin_-_Kaffeine|Diskussion]]
 
 
<b><big>Aber</big> beachte deswegen die [[Diskussion:CapturePlugin_-_Kaffeine|Diskussion]]</b>
 
  
 
== Installation ==
 
== Installation ==
# DCOP-Bindings für Python installieren (Paket '''python-dcop''' bei Debian/Ubuntu)
+
# DCOP-Bindings für Python installieren (Paket '''python-dcop''' bei Debian/Ubuntu).<br>Ab Ubuntu 9.04, Jaunty Jackalope, aufwärts ist das Paket python-dcop nur noch über lauchpad.net-Quellen verfügbar. Falls ein Installation von dort, bzw. eine Änderung der Paketquellen, nicht erwünscht ist, sollte man das alternative Schell-Script benutzen. Das verwendete Programm ''dcop'' befindet sich im Paket '''kdelibs4c2a'''.<br> Installation des Paketes python-dcop. Unter Ubuntu/Gnome: Anwendungen --> Zubehör --> Terminal.<br>Eingabe:<br><code>sudo apt-get install python-dcop</code><br>Installation des Paketes kdelibs4c2a:<br><code>sudo apt-get install kdelibs4c2a</code><br>
 
# Das unten angegebene Script mit dem Namen <code>kaffeine-tvbrowser-wrapper</code> erstellen und abspeichern.
 
# Das unten angegebene Script mit dem Namen <code>kaffeine-tvbrowser-wrapper</code> erstellen und abspeichern.
# Script ausführbar machen (<code>chmod a+x kaffeine-tvbrowser-wrapper</code>)
+
# Script lesbar und ausführbar machen (<code>chmod a+rx kaffeine-tvbrowser-wrapper</code>)
 
# Das Script in den CapturePlugin-Einstellungen als "Applikation" angeben
 
# Das Script in den CapturePlugin-Einstellungen als "Applikation" angeben
 
# Als Parameter folgendes für »Aufnahme« eintragen: <code>{start_year} {start_month} {start_day} {start_hour} {start_minute} {length_minutes} "{isset(channel_name_external_quiet,channel_name)}" "{title}"</code><br>Die Anführungszeichen beim Kanalnamen und Titel sorgen dafür, dass diese Parameter auch korrekt mit Leerzeichen an die Scripte übergeben werden.
 
# Als Parameter folgendes für »Aufnahme« eintragen: <code>{start_year} {start_month} {start_day} {start_hour} {start_minute} {length_minutes} "{isset(channel_name_external_quiet,channel_name)}" "{title}"</code><br>Die Anführungszeichen beim Kanalnamen und Titel sorgen dafür, dass diese Parameter auch korrekt mit Leerzeichen an die Scripte übergeben werden.

Version vom 20. Dezember 2009, 18:33 Uhr

Falls man den DVB-Empfang in Kaffeine eingerichtet hat, kann man mittels dieser Anleitung per CapturePlugin aufnehmen.

Zu Leerzeichen im Sendernamen / Titel gibt es folgende Diskussion: Diskussion

Installation

  1. DCOP-Bindings für Python installieren (Paket python-dcop bei Debian/Ubuntu).
    Ab Ubuntu 9.04, Jaunty Jackalope, aufwärts ist das Paket python-dcop nur noch über lauchpad.net-Quellen verfügbar. Falls ein Installation von dort, bzw. eine Änderung der Paketquellen, nicht erwünscht ist, sollte man das alternative Schell-Script benutzen. Das verwendete Programm dcop befindet sich im Paket kdelibs4c2a.
    Installation des Paketes python-dcop. Unter Ubuntu/Gnome: Anwendungen --> Zubehör --> Terminal.
    Eingabe:
    sudo apt-get install python-dcop
    Installation des Paketes kdelibs4c2a:
    sudo apt-get install kdelibs4c2a
  2. Das unten angegebene Script mit dem Namen kaffeine-tvbrowser-wrapper erstellen und abspeichern.
  3. Script lesbar und ausführbar machen (chmod a+rx kaffeine-tvbrowser-wrapper)
  4. Das Script in den CapturePlugin-Einstellungen als "Applikation" angeben
  5. 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.
  6. 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

  1. 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.