source: titan/mediathek/localparser_secret/vavoo.sh @ 46154

Last change on this file since 46154 was 46154, checked in by obi, 21 months ago

update tithek autoupdate

  • Property svn:executable set to *
File size: 17.5 KB
Line 
1#!/bin/sh
2# first sh box parser for titannit mfg obi
3
4SRC=$1
5INPUT=$2
6PAGE=$3
7NEXT=$4
8PARSER=`echo $SRC | tr '/' '\n' | tail -n1 | sed 's/.sh//'`
9URL=https://www2.vjackson.info
10NAME="VaVoo"
11
12case $2 in
13        init)   ;;
14        *)      . /tmp/localhoster/hoster.sh
15                mkdir $TMP > /dev/null 2>&1
16                FILENAME="$PARSER $INPUT $PAGE $NEXT"
17                FILENAME=$(echo $FILENAME | tr '&' '.' | tr '/' '.' | tr '?' '.' | tr '=' '.' | sed -e 's/\&\+/./g' -e 's#\/\+#.#g' -e 's/\?\+/./g' -e 's/;\+/./g' -e 's/=\+/./g' -e 's/ \+/./g' -e 's/\.\+/./g')
18                if [ -z "$FILENAME" ]; then FILENAME=none;fi
19                PICNAME="$FILENAME"
20                ;;
21esac
22
23if [ `echo $SRC | grep ^"/mnt/parser" | wc -l` -gt 0 ];then
24        TYPE="$SRC - Shell script"
25elif [ `echo $SRC | grep ^"/var/swap" | wc -l` -gt 0 ];then
26        TYPE="Swap - Shell script"
27elif [ `echo $SRC | grep ^"/mnt/swapextensions" | wc -l` -gt 0 ];then
28        TYPE="Mnt - Shell script"
29else
30        TYPE="Flash - Shell script"
31fi
32
33init()
34{
35        rm -rf $TMP > /dev/null 2>&1
36        echo "$NAME ($TYPE)#$SRC $SRC mainmenu#http://openaaf.dyndns.tv/mediathek/menu/$PARSER.jpg#$PARSER.jpg#TiThek#0"
37}
38
39getkey()
40{
41    if [ ! -e $TMP/vavoo.7.signed.base64.timestamp.sed ];then
42        $curlbin -X POST http://www.vavoo.tv/api/box/guest > $TMP/vavoo.1.guest
43        token=$(cat $TMP/vavoo.1.guest | awk 'BEGIN {} /token/ { i = index($0, "token\":\"") + 8;j = index(substr($0, i), "\"") - 1;token = substr($0, i, j); print token; next}')
44        echo $token > $TMP/vavoo.2.token
45        $curlbin --data "token=$token" -X POST https://www.vavoo.tv/api/box/ping2 > $TMP/vavoo.3.ping2
46        signed=$(cat $TMP/vavoo.3.ping2 | awk 'BEGIN {} /signed/ { i = index($0, "signed\":\"") + 9;j = index(substr($0, i), "\"") - 1;signed = substr($0, i, j); print signed; next}')
47        echo $signed > $TMP/vavoo.4.signed
48        base64 -d $TMP/vavoo.4.signed > $TMP/vavoo.5.signed.base64
49#        cat $TMP/vavoo.5.signed.base64 | sed -nr 's/.*\\"validUntil\\":([^:]+),.*/\1/p' > $TMP/vavoo.6.signed.base64.timestamp
50#        timestamp=$(cat $TMP/vavoo.6.signed.base64.timestamp)
51#        cat $TMP/vavoo.5.signed.base64 | sed 's#false#true#g' | sed 's#\\"Daily usage duration reached\\"#null#g' | sed 's#\\"version\\":null#\\"version\\":\\"2.6\\"#g' | sed 's#\\"serivce\\":null#\\"serivce\\":\\"1.2.26\\"#g' | sed 's#\\"platform\\":null#\\"platform\\":\\"vavoo\\"#g' | sed "s#160#260#g" | sed "s#3.#4.#g" | sed "s#5.#6.#g" | sed "s#7.#8.#g" | sed "s#9.#0.#g" > $TMP/vavoo.7.signed.base64.timestamp.sed
52        cat $TMP/vavoo.5.signed.base64 | sed 's#false#true#g' | sed 's#\\"Daily usage duration reached\\"#null#g' | sed 's#\\"version\\":null#\\"version\\":\\"2.6\\"#g' | sed 's#\\"serivce\\":null#\\"serivce\\":\\"1.2.26\\"#g' | sed 's#\\"platform\\":null#\\"platform\\":\\"vavoo\\"#g' | sed "s#:16#:26#g" > $TMP/vavoo.7.signed.base64.timestamp.sed
53    fi
54}
55
56mainmenu()
57{
58        echo "Category#$SRC $SRC category '/live2/index'#http://openaaf.dyndns.tv/mediathek/menu/category.jpg#category.jpg#$NAME#0" >$TMP/$FILENAME.list
59        echo "Suchen#$SRC $SRC search '/live2/index' '%search%' 1#http://openaaf.dyndns.tv/mediathek/menu/search.jpg#search.jpg#$NAME#112" >>$TMP/$FILENAME.list
60        echo "$TMP/$FILENAME.list"
61}
62
63category()
64{
65        if [ ! -e "$TMP/$FILENAME.list" ]; then
66        getkey
67        vavoo_auth=$(base64 $TMP/vavoo.7.signed.base64.timestamp.sed | tr -d '\n')
68
69#               $curlbin -o - $URL$PAGE | sed -e "s/\.ts$/\.ts?n=1\&b=5\&vavoo_auth=$vavoo_auth|User-Agent=VAVOO\/2.6/g" -e 's/^http:/#EXTVLCOPT:http-user-agent=VAVOO\/2.6\nhttp:/g' | awk -v TEST=$TEST -v TMP=$TMP -v FILENAME=$FILENAME -v SRC=$SRC -v URL=$URL -v PAGE=$PAGE -v NAME=$NAME -v PICNAME=$PICNAME \
70
71                $curlbin -o - $URL$PAGE | awk -v TEST=$TEST -v TMP=$TMP -v FILENAME=$FILENAME -v SRC=$SRC -v URL=$URL -v PAGE=$PAGE -v NAME=$NAME -v PICNAME=$PICNAME \
72                '
73                        BEGIN \
74                        {
75                                suche = 1
76                                newpage = ""
77                                piccount = 0
78                        }
79            /#EXTINF/ \
80                        {
81                                if (suche == 1)
82                                {
83                                        i = index($0, "group-title=\"") + 13
84                            j = index(substr($0, i), "\"") - 1
85                            title = substr($0, i, j)
86
87                                    picname = tolower(title)
88                        gsub(" ", ".", picname)
89                                    pic = "http://openaaf.dyndns.tv/mediathek/menu/" picname ".jpg"
90
91                    if(title == "Germany")
92                        pic = URL "/live2/logo/3597546190.jpeg"
93
94                    if(title == "France")
95                        pic = URL "/live2/logo/1277148681.jpeg"
96
97                    if(title == "Albania")
98                        pic = URL "/live2/logo/2745766782.jpeg"
99
100                    # fix dublicate lines
101                                        if (++dup[title] == 1 && title != "")
102                                        {
103                        titletmp = titletmp title
104#                                               print title "#" SRC " " SRC " search \x27" PAGE "\x27 \x27" title "\x27#" pic "#" PICNAME "." piccount ".jpg#" NAME "#0"
105                                                print title "#" SRC " " SRC " search \x27" PAGE "\x27 \x27" title "\x27#" pic "#" PICNAME "." picname ".jpg#" NAME "#0"
106                    }
107                                        newpage = ""
108                                        title = ""
109                                        picname = ""
110                                        pic = ""
111                                        next
112                                }
113                        }
114                ' >$TMP/$FILENAME.list
115        fi
116
117    cat $TMP/$FILENAME.list | sort -u > $TMP/$FILENAME.sort.list
118        echo "$TMP/$FILENAME.sort.list"
119}
120
121
122write()
123{
124    search 1
125}
126
127bouquets()
128{
129    NEXT=$(echo $NEXT | tr '+' ' ')
130
131    remove $NEXT
132    search 2
133    save $NEXT
134}
135
136allchannels()
137{
138    NEXT=$(echo $NEXT | tr '+' ' ')
139
140    remove $NEXT
141    search 3
142    save $NEXT
143}
144
145
146writecmd()
147{
148#rm -rf /mnt/settings
149#cp -a /etc/titan.restore/mnt/settings /mnt
150
151    NEXT=$(echo $NEXT | tr '+' ' ')
152
153    remove $NEXT
154#only create 0m8.507s
155#    search 2
156#create and update sat channels with streamid (fast) sed -e .. -i 1m2.206s
157    search 3
158#create and update sat channels with streamid (slow) sed -- -i 1m28.566s
159#    search 4
160#create and update sat channels with streamid (very slow) echo sed -i 3m24.186s
161#    search 5
162
163    save $NEXT
164    killall -9 titan
165}
166
167save()
168{
169    if [ ! -z "$1" ];then 
170        NEXT=$1
171    fi
172
173    cp /tmp/settings/bouquets.cfg /mnt/settings/bouquets.cfg
174    cp /tmp/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv /mnt/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv
175    cp /tmp/settings/channel /mnt/settings/channel
176    cp /tmp/settings/transponder /mnt/settings/transponder
177
178#    cat /tmp/settings/channel.tmp | sort -u > /mnt/settings/channel
179#    cp -a /tmp/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv.tmp /mnt/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv
180#    cat /tmp/settings/bouquets.cfg.tmp | awk '!seen[$0]++' > /mnt/settings/bouquets.cfg
181#    cat /tmp/settings/transponder.tmp | awk '!seen[$0]++' > /mnt/settings/transponder
182#    sed s/"^ *"// -i /mnt/settings/channel
183    remove $NEXT
184}
185
186remove()
187{
188    if [ ! -z "$1" ];then 
189        NEXT=$1
190    fi
191
192    if [ -e /tmp/settings ];then
193        rm -rf /tmp/settings
194    else
195        rm /mnt/settings/bouquets.cfg.* > /dev/null 2>&1
196        rm /mnt/settings/transponder.* > /dev/null 2>&1
197        rm /mnt/settings/channel.* > /dev/null 2>&1
198        rm /mnt/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv.* > /dev/null 2>&1
199    fi
200}
201
202search()
203{
204    echo 3 > /proc/sys/vm/drop_caches
205
206    NEXT=$(echo $NEXT | tr '+' ' ')
207
208#    ADD2CHANNEL=2
209
210    ADD2CHANNEL=0
211    if [ ! -z "$1" ];then 
212        ADD2CHANNEL=$1
213        remove $NEXT
214        rm /mnt/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv.* > /dev/null 2>&1
215
216        if [ ! -e /tmp/settings ];then mkdir /tmp/settings; fi
217        if [ -e /mnt/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv ];then
218            echo "LIST=$(cat /mnt/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv | sed 's/0#/#/g' | tr '\n' '#' | sed 's/##/#\\|#/g' | sed "s/^#/'/" | sed -e "s/#$/'/g")" >$TMP/$FILENAME.cmd.list
219            #LIST=$(cat /mnt/settings/bouquets.tithek.autoupdate.VaVoo.Germany.tv | sed 's/0#/#/g' | tr '\n' '#' | sed 's/##/#\\|#/g' | sed "s/^#/'/" | sed -e "s/#$/'/g")
220            #cat /mnt/settings/channel | grep -v $LIST| wc -l
221            echo "cat /mnt/settings/channel | grep -v $LIST > /tmp/settings/channel.tmp" >> $TMP/$FILENAME.cmd.list
222            echo "cp /mnt/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv /mnt/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv.org" >> $TMP/$FILENAME.cmd.list
223        else
224            echo "cp /mnt/settings/channel /tmp/settings/channel.tmp" > $TMP/$FILENAME.cmd.list
225        fi
226    fi
227
228        if [ ! -e "$TMP/$FILENAME.list" ] || [ "$ADD2CHANNEL" != "0" ]; then
229        getkey
230        vavoo_auth=$(base64 $TMP/vavoo.7.signed.base64.timestamp.sed | tr -d '\n')
231
232                $curlbin -o - $URL$PAGE | sed -e "s/\.ts$/\.ts?n=1\&b=5\&vavoo_auth=$vavoo_auth|User-Agent=VAVOO\/2.6/g" -e 's/^http:/#EXTVLCOPT:http-user-agent=VAVOO\/2.6\nhttp:/g' | awk -v vavoo_auth="$vavoo_auth" -v ADD2CHANNEL="$ADD2CHANNEL" -v NEXT="$NEXT" -v SRC=$SRC -v URL=$URL -v PAGE=$PAGE -v NAME=$NAME -v PICNAME=$PICNAME \
233                '
234                        BEGIN \
235                        {
236                                found = 0
237                                newpage = ""
238                                piccount = 0
239               
240                if(ADD2CHANNEL != 0)
241                {
242                    cmd = cmd "cp -a /mnt/settings/channel /tmp/settings/channel.org\n"
243                    cmd = cmd "cp -a /tmp/settings/channel.org /tmp/settings/channel.tmp\n"
244                    cmd = cmd "cp -a /mnt/settings/transponder /tmp/settings/transponder.org\n"
245                    cmd = cmd "cp -a /tmp/settings/transponder.org /tmp/settings/transponder.tmp\n"
246                    cmd = cmd "cp -a /mnt/settings/bouquets.cfg /tmp/settings/bouquets.cfg.org\n"
247                    cmd = cmd "cp -a /tmp/settings/bouquets.cfg.org /tmp/settings/bouquets.cfg.tmp\n"
248 cmd3 = "sed "
249
250                }
251                        }
252            /#EXTINF/ \
253                        {
254                IGNORECASE=1;
255                if ($0 ~ NEXT)
256                {
257                                    if (found == 0)
258                                    {
259                                            i = index($0, "tvg-name=\"") + 10
260                                j = index(substr($0, i), "\"") - 1
261                                title = substr($0, i, j)
262
263                                            picname = tolower(title)
264
265                        gsub(/^[(]+/, "", picname)
266
267                                gsub(/ FHD/, " ", picname)
268                                gsub(/ HD\+/, " ", picname)
269                                gsub(/ HD/, " ", picname)
270                                gsub(/ RAW/, " ", picname)
271                                gsub(/ HEVC/, " ", picname)
272                        gsub(/\(.*\)/, "", picname)
273                                gsub(/\+/, "", picname)
274                                gsub(/\//, " ", picname)
275                        gsub(/+[)]+/, "", picname)
276
277                        gsub(/^[ \t]+/, "", picname)
278                        gsub(/[ \t]+$/, "", picname)
279                        gsub(/\t+/, "", picname)
280
281                        gsub(/^[ ]+/, "", picname)
282                        gsub(/[ ]+$/, "", picname)
283                        gsub(/ +/, "", picname)
284
285                        if ($0 ~ /tvg-logo=/)
286                        {
287                                            i = index($0, "tvg-logo=\"") + 10
288                                j = index(substr($0, i), "\"") - 1
289                                pic = substr($0, i, j)
290                            gsub("https://vjackson.info", URL, pic)
291
292                        }
293
294                                            if ( pic == "" )
295                                                    pic = "http://openaaf.dyndns.tv/mediathek/menu/" picname ".jpg"
296
297                        if (pic ~ /.png/)
298                            picext = "png"
299                        else
300                            picext = "jpg" 
301
302                        found = 1
303                                            next
304                    }
305                                }
306            }
307            /^http/ \
308                        {
309                if (found == 1)
310                {
311#                       newpage = substr($0, 1, length($0) - 1)
312                        newpage = substr($0, 1, length($0))
313                                    if (++dup[title] == 1 && title != "" && title !~ "= = =")
314                                    {
315                                            piccount += 1
316
317                                            i = index($0, "/live/") + 6
318                                j = index(substr($0, i), ".ts") - 1
319                                id = substr($0, i, j)
320
321                        if(ADD2CHANNEL != 0)
322                        {
323                            epgurl = "http://epgurl.dummy.to/" id
324
325                            newpage2 = newpage
326                                    j = index(substr($0, 1), "?n=1&b=5&vavoo_auth=") - 1
327                            newpage2 = substr($0, 1, j)
328
329                            if(ADD2CHANNEL == 3)
330                            {
331                                #real    0m54.244s
332                                #user    0m50.252s
333                                #sys     0m1.571
334                                cmd3 = cmd3 " -e \"s;#http.*/" id ".ts.*VAVOO/2.6&tslivemode=1;#" newpage2 "?n=1\\&b=5\\&vavoo_auth=" vavoo_auth "|User-Agent=VAVOO/2.6\\&tslivemode=1;g\""
335                            }
336                            else if(ADD2CHANNEL == 4)
337                            {
338                                #real    1m14.364s
339                                #user    1m4.393s
340                                #sys     0m5.993s
341                                cmd4 = cmd4 "sed \"s;#http.*/" id ".ts.*VAVOO/2.6&tslivemode=1;#" newpage2 "?n=1\\&b=5\\&vavoo_auth=" vavoo_auth "|User-Agent=VAVOO/2.6\\&tslivemode=1;g\" -i /tmp/settings/channel.tmp\n"
342                            }
343                            else if(ADD2CHANNEL == 5)
344                            {
345                                #real    3m0.390s
346                                #user    2m45.126s
347                                #sys     0m11.977s
348                                cmd5 = cmd5 "NEW=$(echo \"" newpage "\" | sed \"s/&/\\&/g\") ;sed \"s;#http.*/" id ".ts.*VAVOO/2.6\\&tslivemode=1;#$NEW\\&tslivemode=1;g\" -i /tmp/settings/channel.tmp\n"
349                            }
350                            else
351                            {
352                                #real    0m6.421s
353                                #user    0m4.576s
354                                #sys     0m1.168s
355                            }
356
357
358
359                            cmd = cmd "echo \"" title "#" id "#0#0#0#0#0#0#0#0#0#0#" newpage "&tslivemode=1#" epgurl "\" >> /tmp/settings/channel.tmp\n"
360                            cmd = cmd "echo \"" id "#0#0#0#192#0#0#0#0#0#0#2\" >> /tmp/settings/transponder.tmp\n"
361                            cmd = cmd "echo \"0#" id "\" >> /tmp/settings/bouquets.tithek.autoupdate." NAME "." NEXT ".tv.tmp\n"
362                            if(++dup[cmd] == 1)
363                                cmd = cmd "echo \"" NAME "-" NEXT "#0#/mnt/settings/bouquets.tithek.autoupdate." NAME "." NEXT ".tv\" >> /tmp/settings/bouquets.cfg.tmp\n"
364                        }
365                        else
366                        {
367                                            print title "#" newpage "&tslivemode=1#" pic "#" PICNAME "." picname "." picext "#" NAME "#2"
368#                                           print title "#" newpage "#" pic "#" PICNAME "." piccount "." picext "#" NAME "#2"
369#                                               print title " (" extra ")#" SRC " " SRC " play \x27" newpage "\x27#" pic "#" PICNAME "." piccount ".jpg#" NAME "#111"
370#                                               print title "#" SRC " " SRC " hoster \x27" newpage "\x27#" pic "#" PICNAME "." piccount ".jpg#" NAME "#111"
371                        }
372                                    }
373                                   
374                                    newpage = ""
375                                    title = ""
376                                    picname = ""
377                                    pic = ""
378                    found = 0
379                                    next
380                                }
381                        }
382                        END \
383                                {
384                    if(ADD2CHANNEL != 0)
385                    {
386                        cmd6 = cmd6 "cat /tmp/settings/channel.tmp | sort -u > /tmp/settings/channel\n"
387                        cmd6 = cmd6 "cat /tmp/settings/transponder.tmp | sort -u > /tmp/settings/transponder\n"
388                        cmd6 = cmd6 "cp -a /tmp/settings/bouquets.tithek.autoupdate." NAME "." NEXT ".tv.tmp /tmp/settings/bouquets.tithek.autoupdate." NAME "." NEXT ".tv\n"
389                        cmd6 = cmd6 "cat /tmp/settings/bouquets.cfg.tmp | awk \x27!seen[$0]++\x27 > /tmp/settings/bouquets.cfg\n"
390                        cmd6 = cmd6 "cat /tmp/settings/transponder.tmp | awk \x27!seen[$0]++\x27 > /tmp/transponder\n"
391                        cmd6 = cmd6 "sed s/\"^ *\"// -i /mnt/settings/channel\n"
392
393                       print cmd
394 
395                       if(ADD2CHANNEL == 3)
396                        {
397                            cmd3 = cmd3 " -i /tmp/settings/channel.tmp\n"
398                            print cmd3
399                        }
400                        else if(ADD2CHANNEL == 4)
401                            print cmd4
402                        else if(ADD2CHANNEL == 5)
403                            print cmd5
404
405                        print cmd6
406                    }
407                                }
408                ' >$TMP/$FILENAME.list
409        fi 
410
411    if [ "$ADD2CHANNEL" != "0" ];then
412        if [ -e $TMP/$FILENAME.list ];then 
413#            cat $TMP/$FILENAME.list >> $TMP/$FILENAME.cmd.list
414#            cp $TMP/$FILENAME.list $TMP/$FILENAME.cmd.list
415            chmod 755 $TMP/$FILENAME.list
416#            chmod 755 $TMP/$FILENAME.cmd.list
417#            $TMP/$FILENAME.cmd.list
418            $TMP/$FILENAME.list
419        fi
420        error=0
421        if [ ! -e /tmp/settings/bouquets.cfg ];then error=1; fi
422        if [ ! -e /tmp/settings/transponder ];then error=1; fi
423        if [ ! -e /tmp/settings/channel ];then error=1; fi
424        if [ ! -e /tmp/settings/bouquets.tithek.autoupdate."$NAME"."$NEXT".tv ];then error=1; fi
425        if [ "$error" == "1" ];then
426            echo "errormsg: add2channel "$NAME"-"$NEXT" has been creating error in /tmp/settings"
427        else
428            echo "add2channel "$NAME"-"$NEXT" has been completed in /tmp/settings"
429        fi
430    else
431        cat $TMP/$FILENAME.list | sort -u > $TMP/$FILENAME.sort.list
432            echo "$TMP/$FILENAME.sort.list"
433    fi
434}
435
436play()
437{
438        rm $TMP/cache.$PARSER.$INPUT.* > /dev/null 2>&1
439        /tmp/localhoster/hoster.sh youtube_dl $URL$PAGE > $TMP/cache.$PARSER.$INPUT.1
440        STREAMURL=`cat $TMP/cache.$PARSER.$INPUT.1`
441        cat $STREAMURL
442#       echo $URL$PAGE
443}
444
445hoster()
446{
447        echo $URL$PAGE
448}
449
450case $INPUT in
451        init) $INPUT;;
452        mainmenu) $INPUT;;
453        play) $INPUT;;
454        search) $INPUT;;
455        category) $INPUT;;
456        hoster) $INPUT;;
457        write) $INPUT;;
458        writecmd) $INPUT;;
459        remove) $INPUT;;
460        save) $INPUT;;
461    bouquets) $INPUT;;
462    allchannels) $INPUT;;
463esac
Note: See TracBrowser for help on using the repository browser.