Merge lp://staging/~ubuntu-fr-scripts/ufrs-video/tv into lp://staging/ufrs-video

Proposed by Jean-Mi
Status: Needs review
Proposed branch: lp://staging/~ubuntu-fr-scripts/ufrs-video/tv
Merge into: lp://staging/ufrs-video
Diff against target: None lines
To merge this branch: bzr merge lp://staging/~ubuntu-fr-scripts/ufrs-video/tv
Reviewer Review Type Date Requested Status
Etienne Gadeski Pending
Review via email: mp+4903@code.staging.launchpad.net
To post a comment you must log in.
Revision history for this message
Jean-Mi (jeanmi) wrote :

Pourrais-tu stp me dire si tu veux bien intégrer le modèle à ton script
Y a pas d'urgence, si j'ai le temps je peux m'en charger

Unmerged revisions

5. By Etienne Gadeski

Modification du script, devrait fonctionner avec l'option record

4. By Etienne Gadeski

Modification du processus d'enregistrement

3. By Etienne Gadeski

Ajout de l'option record: pas encore complétement fonctionnelle & nouveau README

2. By Etienne Gadeski

+README

1. By Jean-Mi

Ajout du script mplayer_tnt

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'README.mplayer_tnt'
--- README.mplayer_tnt 1970-01-01 00:00:00 +0000
+++ README.mplayer_tnt 2009-03-08 02:01:57 +0000
@@ -0,0 +1,11 @@
1# mplayer_tnt - Permet de choisir une chaine de TV ou d'en lancer une au hazard
2#
3# Auteur : Etienne Gadeski
4# Adaptation :
5# Equipe : ubuntu-fr-scripts
6# https://launchpad.net/~ubuntu-fr-scripts
7#
8# Usage : mplayer_tnt [-g ] [ -r chaine_tv heure minute duree ] | [ -c|-a chaine_tv|numero chaine|roulette ]
9#
10# Manuel : Script qui permet de choisir une chaine de TV ou d'en lancer une au hazard
11#
012
=== added file 'mplayer_tnt'
--- mplayer_tnt 1970-01-01 00:00:00 +0000
+++ mplayer_tnt 2009-03-08 17:51:18 +0000
@@ -0,0 +1,206 @@
1#!/bin/bash
2#
3# Auteur : Etienne Gadeski
4#
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18# MA 02110-1301, USA.
19#
20# Usage : mplayer_tnt [ -g ] [ -r chaine_tv heure:minute duree ] | [ -c|-a chaine_tv|numero chaine|roulette ]
21
22! [ -e $HOME/.mplayer/channels.conf ] && echo "Pas de fichier de configuration" && exit 127
23
24#---initenv : definit l'environnement graphique
25
26initenv() {
27 case "$DESKTOP_SESSION" in
28 openbox|gnome) GUI=zenity;;
29 kde) GUI=kdialog;;
30 *);;
31 esac
32}
33initenv
34
35#---paramgui : permet de faire apparaitre une fenetre pour saisir les options
36
37paramgui() {
38 case "$GUI" in
39 zenity) zenity --list --radiolist --title "$1" --text "$2" --column "Activer" --column "Options" FALSE libcaca FALSE libaa TRUE ;;
40 kdialog) kdialog --title "$1" --checklist "Options" a libcaca off b libaa off c on;;
41 *);;
42 esac
43}
44
45channelgui() {
46 case "$GUI" in
47 zenity) zenity --entry --title "$1" --text "$2";;
48 kdialog) kdialog --title "$1" --inputbox "$2";;
49 *);;
50 esac
51}
52#---errorgui : permet de faire apparaitre une fenetre d'erreur
53
54errorgui() {
55 case "$GUI" in
56 zenity) zenity --error --title "$1" --text "$MSG_AIDE";;
57 kdialog) kdialog --error "$MSG_AIDE" --title "$1";;
58 *);;
59 esac
60}
61
62#---initlistchan : creation d'un tableau de chaines (chaine 1,2..n) en fonction des entrees de ~/.mplayer/channels.conf
63# creation de la liste des chaines disponibles
64
65getaide() {
66 if [ "$GUION" = active ] ; then
67 errorgui "Erreur"
68 else
69 echo -e "$MSG_AIDE" && exit 3
70 fi
71}
72
73initlistchan() {
74 i=1;
75 while read chan
76 do
77 LIST_CHAN="$LIST_CHAN "${chan%%:*}","
78 TABCHAN[i]="${chan%%:*}"
79 ((i++))
80 done < $HOME/.mplayer/channels.conf
81 LIST_CHAN=$(echo "$LIST_CHAN" | sed 's/\(.*\),$/\1/')
82}
83
84initlistchan
85
86MSG_AIDE="Usage : $0 [ -r (record) \"CHAINE\" heure minute duree ] [ -g (GUI) ] [-c (libcaca)| -a (ascii)] chaine|numero chaine (p.e $(tail -1 < <(head -n $(($RANDOM%$(wc -l $HOME/.mplayer/channels.conf | cut -d' ' -f1))) $HOME/.mplayer/channels.conf) | cut -d':' -f1))|roulette \
87\n\troulette ouvre une chaine de tv au hasard\
88\nLa liste des chaines disponible est :$LIST_CHAN"
89
90OPTVID="xv"
91
92#---testrunning : teste si mplayer est deja lance, si oui, tuer le processus.
93#
94
95testrunning() {
96 PID=$(pgrep 'mplayer$')
97 [ -n "$PID" ] && kill -9 "$PID"
98}
99
100#---randomchan : choisi une chaine au hasard dans ~/.mplayer/channels.conf
101
102randomchan() {
103 tail -1 < <(head -n $(($RANDOM%$(wc -l $HOME/.mplayer/channels.conf | cut -d' ' -f1))) $HOME/.mplayer/channels.conf) | cut -d':' -f1
104}
105
106#---mplayerrun : lance mplayer avec les options choisies apres avoir teste
107
108mplayerrun() {
109 testrunning
110 testchannel "$1"
111 if [ "$?" -eq 1 ] ; then
112 getaide
113 else
114 mplayer -vo "$OPTVID" "dvb://$1" > /dev/null 2>&1
115 fi
116}
117
118#---testchannel : teste en premier lieu si le parametre en entree est un nombre: - si oui, on test avec la valeur tableau a l'indice du parametre en entree
119# - sinon, avec le parametre en entree
120# ensuite, si cette châine est trouvee, on lance mplayer dessus, sinon, on afiche un message d'erreur
121
122testchannel() {
123 expr "$1" + 1 > /dev/null 2>&1
124 [ $? -eq 0 ] && NUM=ok
125 while read ligne
126 do
127 if [ -z "$NUM" ] ; then
128 if [ "$1" = "${ligne%%:*}" ] ; then
129 CHAN="$1"
130 break
131 fi
132 else
133 if [ "${TABCHAN[$1]}" = "${ligne%%:*}" ] ; then
134 CHAN="${TABCHAN[$1]}"
135 break
136 fi
137 fi
138 done < $HOME/.mplayer/channels.conf
139 [ -n "$CHAN" ] && return 0 || return 1
140}
141
142#---recordtnt : parametres : - 1 = chaine
143# - 2 = heure de debut:minute de debut
144# - 3 = duree en minutes
145
146recordtnt() {
147 [ "$#" -ne 3 ] && getaide
148 testchannel "$1"
149 HEURE_DEPART="${2%:*}"
150 MINUTE_DEPART="${2#*:}"
151 DUREE="$3"
152 expr "$HEURE_DEPART" + "$MINUTE_DEPART" + "$3" >/dev/null 2>&1
153 [ "$?" -eq 1 ] && getaide
154 [ "$HEURE_DEPART" -gt 24 -o "$HEURE_DEPART" -lt 0 ] && getaide
155 [ "$MINUTE_DEPART" -gt 59 -o "$MINUTE_DEPART" -lt 0 ] && getaide
156 # normalisation
157 NB_HEURES=$(($3/60))
158 NB_MINUTES=$(($3%60))
159 [ "$NB_HEURES" -lt 10 ] && NB_HEURES="0${NB_HEURES}"
160 [ "$NB_MINUTES" -lt 10 ] && NB_MINUTES="0${NB_MINUTES}"
161 export FORMATDUREE="${NB_HEURES}:${NB_MINUTES}:00"
162 export CHAINE_MODIF="${1// /-}" # remplace les espaces par des '-'
163 export CHAINE="$1"
164 # enregistrement, sans encodage particulier
165 at "$HEURE_DEPART":"$MINUTE_DEPART" >/dev/null 2>&1 << 'EOF'
166 mencoder -tv driver=xv "dvb://$CHAINE" -o "$HOME/recordtnt_${CHAINE_MODIF}_$(date +%d-%m-%y).ts" -endpos "$FORMATDUREE" -ovc copy -oac copy >> $HOME/sortie.txt 2>&1
167EOF
168
169}
170
171#--Main
172
173[ $# -lt 1 ] && getaide
174until [ "$#" -eq 0 ] ; do
175 case "$1" in
176 -g) GUION=active
177 break;;
178 -h|--help)
179 getaide
180 exit 2;;
181 roulette) CHANNEL=$(randomchan)
182 mplayerrun "$CHANNEL";;
183 -c) OPTVID="caca";;
184 -a) OPTVID="aa";;
185 -r) shift
186 recordtnt "$1" "$2" "$3"
187 break;;
188 *) mplayerrun "$1";;
189 esac
190 shift
191done
192
193if [ "$GUION" = "active" ] ; then
194 OPTVID="$(paramgui "Options" "Choisir les options de mplayer (-c pour utiliser caca, -a pour utiliser libaa, rien pour défaut) :")"
195 case "$OPTVID" in
196 libcaca) OPTVID="caca";;
197 libaa) OPTVID="aa";;
198 *) OPTVID="xv";;
199 esac
200 CHANNEL="$(channelgui "Chaine" "Veuillez choisir une chaîne (p.e $(randomchan)), roulette (aléatoire) ou un numéro de chaîne :")"
201 case "$CHANNEL" in
202 roulette) CHANNEL=$(randomchan)
203 mplayerrun "$CHANNEL";;
204 *) mplayerrun "$CHANNEL";;
205 esac
206fi

Subscribers

People subscribed via source and target branches

to all changes: