CapturePlugin - Kaffeine: Unterschied zwischen den Versionen
Aus TV-Browser Wiki
Version vom 9. April 2007, 18:03 Uhr ⧼parentheses⧽ Bananeweizen⧼word-separator⧽⧼parentheses⧽ K |
Version vom 17. Juli 2007, 17:59 Uhr ⧼parentheses⧽ 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.
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⧽