CapturePlugin - Kaffeine: Unterschied zwischen den Versionen

Aus TV-Browser Wiki
Wechseln zu: Navigation⧼comma-separator⧽Suche
Bananeweizen⧼word-separator⧽⧼parentheses⧽
K
Finisterra⧼word-separator⧽⧼parentheses⧽
Zeile 12: Zeile 12:
  
 
== Script <code>kaffeine-tvbrowser-wrapper</code> ==
 
== Script <code>kaffeine-tvbrowser-wrapper</code> ==
 +
 
<pre>
 
<pre>
 
#!/usr/bin/env python
 
#!/usr/bin/env python
Zeile 45: Zeile 46:
  
 
pydcop.anyAppCalled("kaffeine").KaffeineIface.dvbNewTimer(name, channel, datetime, duration)
 
pydcop.anyAppCalled("kaffeine").KaffeineIface.dvbNewTimer(name, channel, datetime, duration)
 +
</pre>
 +
 +
 +
== Alternatives Shell-Skript <code>kaffeine-tvbrowser-wrapper</code> ==
 +
 +
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.
 +
 +
<pre>
 +
#!/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
 +
 
</pre>
 
</pre>
  

Version vom 17. Juli 2007, 17:59 Uhr

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.

Installation

  1. DCOP-Bindings für Python installieren (Paket python-dcop bei Debian/Ubuntu)
  2. Das unten angegebene Script mit dem Namen kaffeine-tvbrowser-wrapper erstellen und abspeichern.
  3. Script ausführbar machen (chmod a+x kaffeine-tvbrowser-wrapper)
  4. Das Script in den CapturePlugin-Einstellungen als Programm 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}
  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

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

  1. Lösch-Funktion (scheint aber über DCOP nicht zu gehen)
  2. Übergabe von Leerzeichen in Titel und Sendernamen