ubuntuusers.de

Anhang: TVBrowserCron.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/bash
# Skript um Aufnahmen aus dem TV-Browser zu starten, gleichzeitig mitzuschauen, oder auch nur zu schauen.
# Autor Heinrich Schwietering (c) 2009, 2011
#
# Im TV-Browser-Aufnahme-Plugin muss als Applikation "/bin/bash" eingetragen werden, bei den Parametern für "Aufnehmen":
# 
# /Pfad/zum/TVBrowserCron.sh {leadingZero(start_minute, "2")} {leadingZero(start_hour, "2")} {leadingZero(start_day, "2")}  {leadingZero(start_month, "2")} {isset(channel_name_external_quiet,channel_name)} {length_sec} {urlencode(title, "utf-8")} record {start_unix}
#
# Parameter für "Löschen": 
# /Pfad/zum/TVBrowserCron.sh {leadingZero(start_minute, "2")} {leadingZero(start_hour, "2")} {leadingZero(start_day, "2")} {leadingZero(start_month, "2")} {isset(channel_name_external_quiet,channel_name)} {length_sec} {urlencode(title, "utf-8")} delete


VERZ=$HOME/.tvbrowser

# TEST, OB EINE CRONTAB-DATEI FÜR DEN USER EXISTIERT; GFF. ERSTELLUNG EINER "DUMMY"-VERSION
crontabExists=`crontab -l`
length=${#crontabExists}

if [ $length -eq 0 ] ; then
echo "0 0 1 1 * TEST" &> $VERZ/crontabinit.txt
crontab $VERZ/crontabinit.txt
rm $VERZ/crontabinit.txt
fi

# Routine, um den Titel ohne "seltsame" Zeichen und mit Leerstellen zubekommen
TITELT=$(echo  ${7} | tr '+' ' ' | /bin/echo -e $(sed 's/%/\\x/g'))

# Routine, um Doppelpunkte zu entfernen (da damit kein Speicherung möglich ist...)
TITEL=$(echo $TITELT | /bin/echo -e $(sed 's/:/_/g')) 

# Wahl der Aufnahme-Art
if [ "${8}" == "record" ] ; then

# Zenity-Aufruf, um Auswahl festzulegen
zenity --help > /dev/null || { echo "Fehler: Du benötigst \"zenity\" um dieses Skript nutzen zu können." && exit 1 ; }
test ! -e /usr/bin/vlc && zenity --error --text "VLC ist nicht installiert!" && exit 1
test ! -e $VERZ/Auswahl.lst && zenity --error --text "$VERZ/Auswahl.lst wurde nicht gefunden!" && exit 1

AUSWAHL=`cat $VERZ/Auswahl.lst | zenity --list --title "Aufnehmen, Ansehen, Beides?" --column "Auswahl:"` || exit 0
test "$AUSWAHL" || { zenity --error --text "Es wurde keine Auswahl getroffen!" && exit 1 ; }

#TEST, OB SENDUNG SCHON BEGONNEN HAT
DIFFERENZ=$(( $(date +%s) - ${9} ))
# Wenn Sendung schon begonnen hat, direkter Aufruf des Aufnahmeskriptes:
   if [ $DIFFERENZ -gt 0 ]; then
   KORRDAUER=$(( ${6} - $DIFFERENZ ))
   /usr/share/tvbrecordingscripts/TVAufnahme.sh ${5} "$TITEL" $KORRDAUER $AUSWAHL &
   else

# ERSTELLEN DES CRONTAB-EINTRAGS
# Erstellen der Doublette
crontab -l &> $VERZ/Doublette.txt
# Anhängen des Crontab-Eintrags an die Doublette
echo "${1} ${2} ${3} ${4} * /usr/share/tvbrecordingscripts/TVAufnahme.sh ${5} \"$TITEL\" ${6} $AUSWAHL" >> $VERZ/Doublette.txt
# Erstellen der Datei mit den Infos zum Löschen des Crontabs
echo "${1} ${2} ${3} ${4} * /usr/share/tvbrecordingscripts/TVAufnahme.sh ${5} \"$TITEL\" ${6} $AUSWAHL" > $VERZ/"$TITEL-${1}-${2}-${3}-${4}".txt
# Erstellen der Crontab-Datei aus der Doublette
crontab $VERZ/Doublette.txt
fi
# CRONTAB-EINTRAG LÖSCHEN
else
#Prüfung, ob Eintrag bereits gelöscht ist
{ if [ -a $VERZ/"$TITEL-${1}-${2}-${3}-${4}".txt ] ; then
crontab -l &> $VERZ/Doublette.txt
# Auslesen der Infos zum Löschen
DELETE=`cat $VERZ/"$TITEL-${1}-${2}-${3}-${4}".txt`
# Umformen der Infos, escapen von Sonderzeichen
arg=` echo "$DELETE" | sed 's:[]\[\^\$\.\*\/]:\\\\&:g' `
# Löschen des Crontabs aus der Doublette
sed -ie '/^'"$arg"'$/ d' $VERZ/Doublette.txt 
# Hochladen der verbleibenden Crontab-Einträge
crontab $VERZ/Doublette.txt
# Löschen der Info-Datei
rm $VERZ/"$TITEL-${1}-${2}-${3}-${4}".txt     
fi }

fi

Anhang herunterladen

korrigierte Version

Diese Revision wurde am 5. Februar 2020 18:31 von ubuntuusers erstellt.