source: titan/mediathek/localparser_free/watchbox.sh @ 42435

Last change on this file since 42435 was 42435, checked in by tt4sk, 2 years ago

[TiThek] fixed: watchbox website changed

File size: 13.7 KB
Line 
1#!/bin/sh
2# first sh box parser for titannit mfg obi
3
4. /tmp/localhoster/hoster.sh
5
6SRC=$1
7INPUT=$2
8CURPAGE=$3
9MAXPAGE=$4
10PAGE=$5
11
12FILENAME=`echo $PAGE | tr '/' '.'`
13FILENAME=`echo $FILENAME | tr '&' '.'`
14
15if [ -z "$PAGE" ]; then
16        FILENAME=none
17fi
18
19URL=https://www.watchbox.de
20PARSER=`echo $SRC | tr '/' '\n' | tail -n1 | sed 's/.sh//'`
21NAME="Watchbox"
22
23mkdir $TMP > /dev/null 2>&1
24#TMP=/tmp/localcache
25if [ `echo $SRC | grep ^"/mnt/parser" | wc -l` -gt 0 ];then
26        TYPE="$SRC - Shell script"
27elif [ `echo $SRC | grep ^"/var/swap" | wc -l` -gt 0 ];then
28        TYPE="Swap - Shell script"
29elif [ `echo $SRC | grep ^"/mnt/swapextensions" | wc -l` -gt 0 ];then
30        TYPE="Mnt - Shell script"
31else
32        TYPE="Flash - Shell script"
33fi
34
35init()
36{
37        rm -rf $TMP > /dev/null 2>&1
38        echo "$NAME ($TYPE)#$SRC $SRC mainmenu#http://atemio.dyndns.tv/mediathek/menu/$PARSER.jpg#$PARSER.jpg#TiThek#0"
39}
40
41mainmenu()
42{
43        echo "Neue Filme#$SRC $SRC new 1 0 'filme/neu/'#http://atemio.dyndns.tv/mediathek/menu/Movies.jpg#Movies.jpg#$NAME#0" > $TMP/$PARSER.$INPUT.list
44        echo "Neue Serien#$SRC $SRC series 1 0 'serien/neu/'#http://atemio.dyndns.tv/mediathek/menu/serien.jpg#serien.jpg#$NAME#0" >> $TMP/$PARSER.$INPUT.list
45        echo "Filme suchen#$SRC $SRC search 1 0 'https://api.watchbox.de/v1/search/?active=true&maxPerPage=30&page=1&types=%5B%22film%22%5D&term='#http://atemio.dyndns.tv/mediathek/menu/search.jpg#search.jpg#$NAME#112" >> $TMP/$PARSER.$INPUT.list
46        echo "Serien suchen#$SRC $SRC search2 1 0 'https://api.watchbox.de/v1/search/?active=true&maxPerPage=30&page=1&types=%5B%22serie%22%5D&term='#http://atemio.dyndns.tv/mediathek/menu/search.jpg#search.jpg#$NAME#112" >> $TMP/$PARSER.$INPUT.list
47
48        if [ "`echo $TMP/$PARSER.new.*.list`" != "$TMP/$PARSER.new.*.list" ] ; then
49                rm $TMP/$PARSER.new.*.list
50        fi
51        if [ "`echo $TMP/$PARSER.search.*.list`" != "$TMP/$PARSER.search.*.list" ] ; then
52                rm $TMP/$PARSER.search.*.list
53        fi
54        if [ "`echo $TMP/$PARSER.series.*.list`" != "$TMP/$PARSER.series.*.list" ] ; then
55                rm $TMP/$PARSER.series.*.list
56        fi
57       
58        echo "$TMP/$PARSER.$INPUT.list"
59}
60
61new()
62{
63        if [ ! -e "$TMP/$PARSER.$INPUT.$CURPAGE.list" ] ; then
64               
65                if [ "$CURPAGE" -eq "1" ] ; then
66                        NEWPAGE=$PAGE
67                else
68                        NEWPAGE=$PAGE'?page='`expr $CURPAGE - 1`
69                fi
70               
71                $curlbin $URL/$NEWPAGE -o $TMP/cache.$PARSER.$INPUT.$CURPAGE.1
72
73                cat $TMP/cache.$PARSER.$INPUT.$CURPAGE.1 | grep -A 14 'data-asset-title' > /$TMP/cache.$PARSER.$INPUT.$CURPAGE.1a
74                cat $TMP/cache.$PARSER.$INPUT.$CURPAGE.1a | tr "\n" " " | sed -e 's/--/--\n/g' > /$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
75                echo >> $TMP/cache.$PARSER.$INPUT.$CURPAGE.2
76                while read -u 3 ROUND; do
77                        TITLE=`echo $ROUND | sed 's/"data-asset-title="/\n/g' | grep "data-asset-title=" | cut -d '"' -f2`
78                        TITLE=`echo $TITLE | sed -e 's/&#038;/&/g' -e 's/&amp;/und/g' -e 's/&quot;/"/g' -e 's/&lt;/\</g' -e 's/&#034;/\"/g' -e 's/&#039;/\"/g' -e 's/&%8211;/-/g' -e "s/&%8217;/'/g"`
79                        PIC=`echo $ROUND | sed 's/src/\nsrc/g' | sed 's!src="!src="https:!g' | grep "src=" | cut -d '"' -f2`
80                        NEWPAGE=`echo $ROUND | sed 's/href=/\nhref=/' | sed 's!href=!href=https://www.watchbox.de!g' | grep ^"href=" | cut -d '"' -f2`
81
82                        if [ -z  "$PIC" ]; then 
83                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
84                                TMPPIC="default.jpg"
85                        else
86                                TMPPIC=watchbox_`echo $PIC | tr '/' '\n' | tail -n1`
87                        fi
88
89                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
90                                        LINE="$TITLE#$SRC $SRC play 0 0 $NEWPAGE#$PIC#$TMPPIC#$NAME#111"
91                                        echo "$LINE" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
92                               
93                        fi
94                done 3<$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
95               
96                if grep -Fq "<span>Zeig mir mehr</span>" $TMP/cache.$PARSER.$INPUT.$CURPAGE.1
97                then
98               
99                NEWPAGE=`expr $CURPAGE + 1`
100               
101                echo "Page $NEWPAGE#$SRC $SRC new $NEWPAGE $MAXPAGE '$PAGE'#http://atemio.dyndns.tv/mediathek/menu/next.jpg#next.jpg#$NAME#0" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
102                fi
103               
104
105                rm $TMP/cache.$PARSER.$INPUT.$CURPAGE.* > /dev/null 2>&1
106        fi
107
108        echo "$TMP/$PARSER.$INPUT.$CURPAGE.list"
109}
110
111series()
112{
113        if [ ! -e "$TMP/$PARSER.$INPUT.$CURPAGE.list" ] ; then
114               
115                if [ "$CURPAGE" -eq "1" ] ; then
116                        NEWPAGE=$PAGE
117                else
118                        NEWPAGE=$PAGE'?page='`expr $CURPAGE - 1`
119                fi
120               
121                $curlbin $URL/$NEWPAGE -o $TMP/cache.$PARSER.$INPUT.$CURPAGE.1
122
123                cat $TMP/cache.$PARSER.$INPUT.$CURPAGE.1 | grep -A 14 'data-asset-title' | sed '/"Show"/,/alt/d' > /$TMP/cache.$PARSER.$INPUT.$CURPAGE.1a
124                cat $TMP/cache.$PARSER.$INPUT.$CURPAGE.1a | tr "\n" " " | sed -e 's/--/<--\n/g' > /$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
125                echo >> $TMP/cache.$PARSER.$INPUT.$CURPAGE.2
126                while read -u 3 ROUND; do
127                        TITLE=`echo $ROUND | sed 's/"data-asset-title="/\n/g' | grep "data-asset-title=" | cut -d '"' -f2`
128                        TITLE=`echo $TITLE | sed -e 's/&#038;/&/g' -e 's/&amp;/und/g' -e 's/&quot;/"/g' -e 's/&lt;/\</g' -e 's/&#034;/\"/g' -e 's/&#039;/\"/g' -e 's/&%8211;/-/g' -e "s/&%8217;/'/g"`
129                        PIC=`echo $ROUND | sed 's/src/\nsrc/g' | sed 's!src="!src="https:!g' | grep "src=" | cut -d '"' -f2`
130                        NEWPAGE=`echo $ROUND | sed 's/href=/\nhref=/' | sed 's!href=!href=https://www.watchbox.de!g' | grep ^"href=" | cut -d '"' -f2`
131
132                        if [ -z  "$PIC" ]; then 
133                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
134                                TMPPIC="default.jpg"
135                        else
136                                TMPPIC=watchbox_`echo $PIC | tr '/' '\n' | tail -n1`
137                        fi
138
139                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
140                                        LINE="$TITLE#$SRC $SRC season 0 0 '$NEWPAGE'#$PIC#$TMPPIC#$NAME#0"
141                                        echo "$LINE" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
142                               
143                        fi
144                done 3<$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
145               
146                if grep -Fq "<span>Zeig mir mehr</span>" $TMP/cache.$PARSER.$INPUT.$CURPAGE.1
147                then
148               
149                NEWPAGE=`expr $CURPAGE + 1`
150               
151                echo "Page $NEWPAGE#$SRC $SRC series $NEWPAGE $MAXPAGE '$PAGE'#http://atemio.dyndns.tv/mediathek/menu/next.jpg#next.jpg#$NAME#0" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
152                fi
153               
154
155                rm $TMP/cache.$PARSER.$INPUT.$CURPAGE.* > /dev/null 2>&1
156        fi
157       
158        if [ "`echo $TMP/$PARSER.season.*.list`" != "$TMP/$PARSER.season.*.list" ] ; then
159                rm $TMP/$PARSER.season.*.list
160        fi
161       
162        echo "$TMP/$PARSER.$INPUT.$CURPAGE.list"
163}
164
165season()
166{
167        if [ ! -e "$TMP/$PARSER.$INPUT.$CURPAGE.list" ] ; then
168               
169                if [ "$CURPAGE" -eq "1" ] ; then
170                        NEWPAGE=$PAGE
171                else
172                        NEWPAGE=$PAGE'?page='`expr $CURPAGE - 1`
173                fi
174               
175                $curlbin $URL$NEWPAGE -o $TMP/cache.$PARSER.$INPUT.$CURPAGE.1
176
177                cat $TMP/cache.$PARSER.$INPUT.$CURPAGE.1 | grep -A 14 'data-title' > /$TMP/cache.$PARSER.$INPUT.$CURPAGE.1a
178                cat $TMP/cache.$PARSER.$INPUT.$CURPAGE.1a | tr "\n" " " | sed -e 's/data-title/\ndata-title/g' > /$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
179                echo >> $TMP/cache.$PARSER.$INPUT.$CURPAGE.2
180                while read -u 3 ROUND; do
181                        TITLE=`echo $ROUND | sed 's/"data-title="/\n/g' | grep "data-title=" | cut -d '"' -f2`
182                        TITLE=`echo $TITLE | sed -e 's/-/ /g' -e 's/&#038;/&/g' -e 's/&amp;/und/g' -e 's/&quot;/"/g' -e 's/&lt;/\</g' -e 's/&#034;/\"/g' -e 's/&#039;/\"/g' -e 's/&%8211;/-/g' -e "s/&%8217;/'/g"`
183#                       PIC=`echo $ROUND | sed 's/src/\nsrc/g' | sed 's!src="!src="https:!g' | grep "src=" | cut -d '"' -f2`
184                        NEWPAGE=`echo $ROUND | sed 's/href=/\nhref=/' | sed 's!href=!href=https://www.watchbox.de!g' | grep ^"href=" | cut -d '"' -f2`
185
186                        if [ -z  "$PIC" ]; then 
187                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
188                                TMPPIC="default.jpg"
189                        else
190                                TMPPIC=watchbox_`echo $PIC | tr '/' '\n' | tail -n1`
191                        fi
192
193                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
194                               
195                                        LINE="$TITLE#$SRC $SRC episode 0 0 '$NEWPAGE'#$PIC#$TMPPIC#$NAME#0"
196                                        echo "$LINE" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
197                               
198                        fi
199                done 3<$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
200
201                rm $TMP/cache.$PARSER.$INPUT.$CURPAGE.* > /dev/null 2>&1
202        fi
203       
204        if [ "`echo $TMP/$PARSER.episode.*.list`" != "$TMP/$PARSER.episode.*.list" ] ; then
205                rm $TMP/$PARSER.episode.*.list
206                rm /tmp/tithek/watchbox.episode.* > /dev/null 2>&1
207       
208        fi
209       
210        echo "$TMP/$PARSER.$INPUT.$CURPAGE.list"
211}
212
213episode()
214{
215        if [ ! -e "$TMP/$PARSER.$INPUT.$CURPAGE.list" ] ; then
216               
217                if [ "$CURPAGE" -eq "1" ] ; then
218                        NEWPAGE=$PAGE
219                else
220                        NEWPAGE=$PAGE'?page='`expr $CURPAGE - 1`
221                fi
222               
223                $curlbin $URL/$NEWPAGE -o $TMP/cache.$PARSER.$INPUT.$CURPAGE.1
224
225                cat $TMP/cache.$PARSER.$INPUT.$CURPAGE.1 | grep -A 14 'data-asset-title' > /$TMP/cache.$PARSER.$INPUT.$CURPAGE.1a
226                cat $TMP/cache.$PARSER.$INPUT.$CURPAGE.1a | tr "\n" " " | sed -e 's/--/--\n/g' | sed '/Platzhalter/,$ d' > /$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
227                echo >> $TMP/cache.$PARSER.$INPUT.$CURPAGE.2
228                while read -u 3 ROUND; do
229                        TITLE=`echo $ROUND | sed 's/"data-asset-title="/\n/g' | grep "data-asset-title=" | cut -d '"' -f2`
230                        TITLE=`echo $TITLE | sed -e 's/&#038;/&/g' -e 's/&amp;/und/g' -e 's/&quot;/"/g' -e 's/&lt;/\</g' -e 's/&#034;/\"/g' -e 's/&#039;/\"/g' -e 's/&%8211;/-/g' -e "s/&%8217;/'/g"`
231                        PIC=`echo $ROUND | sed 's/data-src/\ndata-src/g' | sed 's!data-src="!data-src="https:!g' | grep "data-src=" | cut -d '"' -f2`
232                        NEWPAGE=`echo $ROUND | sed 's/href=/\nhref=/' | sed 's!href=!href=https://www.watchbox.de!g' | grep ^"href=" | cut -d '"' -f2`
233
234                        if [ -z  "$PIC" ]; then 
235                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
236                                TMPPIC="default.jpg"
237                        else
238                                TMPPIC=watchbox.$INPUT.`echo $PIC | tr '/' '\n' | tail -n1`
239                        fi
240
241                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
242                                LINE="$TITLE#$SRC $SRC play 0 0 $NEWPAGE#$PIC#$TMPPIC#$NAME#111"
243                                echo "$LINE" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
244                               
245                        fi
246                done 3<$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
247               
248
249                rm $TMP/cache.$PARSER.$INPUT.$CURPAGE.* > /dev/null 2>&1
250        fi
251       
252        if [ "`echo $TMP/$PARSER.play.list`" != "$TMP/$PARSER.play.list" ] ; then
253                rm $TMP/$PARSER.play.list
254        fi
255       
256       
257        echo "$TMP/$PARSER.$INPUT.$CURPAGE.list"
258}
259
260
261search()
262{
263        if [ ! -e "$TMP/$PARSER.$INPUT.$CURPAGE.list" ] ; then
264                $curlbin $PAGE -o $TMP/cache.$PARSER.$INPUT.1
265
266                cat $TMP/cache.$PARSER.$INPUT.1 | sed 's!"type"!\n"type"!g' > $TMP/cache.$PARSER.$INPUT.2
267                echo >> $TMP/cache.$PARSER.$INPUT.2
268                while read -u 3 ROUND; do
269                        TITLE=`echo $ROUND | grep 'headline":"' | sed -e 's!headline":"!\n"!g' | cut -d '"' -f2 | sed '/type/d'`
270                        ENTITYID=`echo $ROUND | grep 'entityId":' | sed -e 's!entityId":!\n!g' | cut -d ',' -f1 | sed '/type/d'`
271                        SEOPATH=`echo $ROUND | grep 'seoPath":"' | sed -e 's!seoPath":"!\n"!g' | cut -d '"' -f2 | sed '/type/d'`
272                        PIC="https://aiswatchbox-a.akamaihd.net/watchbox/format/"$ENTITYID"_dvdcover/484x677/"$SEOPATH".jpg"
273                        NEWPAGE="/filme/"$SEOPATH"-"$ENTITYID".html"
274
275                        if [ -z  "$PIC" ]; then 
276                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
277                                TMPPIC="default.jpg"
278                        else
279                                TMPPIC=watchbox_`echo $PIC | tr '/' '\n' | tail -n1`
280                        fi
281
282                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
283                                LINE="$TITLE#$SRC $SRC play 0 0 $NEWPAGE#$PIC#$TMPPIC#$NAME#111"
284                                echo "$LINE" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
285                        fi
286                done 3<$TMP/cache.$PARSER.$INPUT.2
287               
288                TOTALITEM=`cat $TMP/cache.$PARSER.$INPUT.2 | sed q | cut -d ',' -f1 | sed 's!:!\n!g' | sed '1,1d'`
289                MODULO=`echo $(($TOTALITEM%30))`
290                case "$MODULO" in
291                        [0]) MAXPAGE=`echo $(($TOTALITEM/30))`;;
292                        *) MAXPAGE=`echo $(($TOTALITEM/30+1))`;;
293                esac
294
295                if [ "$MAXPAGE" -gt "$CURPAGE" ] ; then
296                                NEWPAGE=`expr $CURPAGE + 1`
297                                PAGE=$(echo $PAGE | sed -e "s!page=$CURPAGE!page=$NEWPAGE!g")
298                                echo "Page ($NEWPAGE/$MAXPAGE)#$SRC $SRC search $NEWPAGE $MAXPAGE '$PAGE'#http://atemio.dyndns.tv/mediathek/menu/next.jpg#next.jpg#$NAME#0" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
299                fi
300
301                rm $TMP/cache.$PARSER.$INPUT.* > /dev/null 2>&1
302        fi
303
304        echo "$TMP/$PARSER.$INPUT.$CURPAGE.list"
305}
306search2()
307{
308        if [ ! -e "$TMP/$PARSER.$INPUT.$CURPAGE.list" ] ; then
309                $curlbin $PAGE -o $TMP/cache.$PARSER.$INPUT.1
310
311                cat $TMP/cache.$PARSER.$INPUT.1 | sed 's!"type"!\n"type"!g' > $TMP/cache.$PARSER.$INPUT.2
312                echo >> $TMP/cache.$PARSER.$INPUT.2
313                while read -u 3 ROUND; do
314                        TITLE=`echo $ROUND | grep 'headline":"' | sed -e 's!headline":"!\n"!g' | cut -d '"' -f2 | sed '/type/d'`
315                        ENTITYID=`echo $ROUND | grep 'entityId":' | sed -e 's!entityId":!\n!g' | cut -d ',' -f1 | sed '/type/d'`
316                        SEOPATH=`echo $ROUND | grep 'seoPath":"' | sed -e 's!seoPath":"!\n"!g' | cut -d '"' -f2 | sed '/type/d'`
317                        PIC="https://aiswatchbox-a.akamaihd.net/watchbox/format/"$ENTITYID"_dvdcover/484x677/"$SEOPATH".jpg"
318                        NEWPAGE="/filme/"$SEOPATH"-"$ENTITYID".html"
319
320                        if [ -z  "$PIC" ]; then 
321                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
322                                TMPPIC="default.jpg"
323                        else
324                                TMPPIC=watchbox_`echo $PIC | tr '/' '\n' | tail -n1`
325                        fi
326
327                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
328                                LINE="$TITLE#$SRC $SRC season 1 0 $NEWPAGE#$PIC#$TMPPIC#$NAME#0"
329                                echo "$LINE" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
330                        fi
331                done 3<$TMP/cache.$PARSER.$INPUT.2
332               
333                TOTALITEM=`cat $TMP/cache.$PARSER.$INPUT.2 | sed q | cut -d ',' -f1 | sed 's!:!\n!g' | sed '1,1d'`
334                MODULO=`echo $(($TOTALITEM%30))`
335                case "$MODULO" in
336                        [0]) MAXPAGE=`echo $(($TOTALITEM/30))`;;
337                        *) MAXPAGE=`echo $(($TOTALITEM/30+1))`;;
338                esac
339               
340                if [ "$MAXPAGE" -gt "$CURPAGE" ] ; then
341                       
342                        NEWPAGE=`expr $CURPAGE + 1`
343                        PAGE=$(echo $PAGE | sed -e "s!page=$CURPAGE!page=$NEWPAGE!g")
344                        echo "Page ($NEWPAGE/$MAXPAGE)#$SRC $SRC search $NEWPAGE $MAXPAGE '$PAGE'#http://atemio.dyndns.tv/mediathek/menu/next.jpg#next.jpg#$NAME#0" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
345                fi
346
347                rm $TMP/cache.$PARSER.$INPUT.* > /dev/null 2>&1
348        fi
349
350        echo "$TMP/$PARSER.$INPUT.$CURPAGE.list"
351}
352
353play()
354{
355                $curlbin $URL$PAGE -o $TMP/cache.$PARSER.$INPUT.1
356               
357        ID=`cat $TMP/cache.$PARSER.$INPUT.1 | grep 'videoId' | sed 's/,/\n/g' | grep videoId | cut -d ':' -f2`
358                $curlbin "http://api.watchbox.de/devapi/id/$ID?apikey=hbbtv&format=json" -o $TMP/cache.$PARSER.$INPUT.2
359                cat $TMP/cache.$PARSER.$INPUT.2 | sed 's/^.*"media_videourl":"//;s/".*$//;s/\\\//\//g' >$TMP/cache.$PARSER.$INPUT.3
360                cat $TMP/cache.$PARSER.$INPUT.3 > $TMP/$PARSER.play.list
361                echo >> $TMP/$PARSER.play.list
362                rm $TMP/cache.$PARSER.$INPUT.* > /dev/null 2>&1
363
364                cat "$TMP/$PARSER.play.list"
365
366}
367
368case $INPUT in
369        init) $INPUT;;
370        mainmenu) $INPUT;;
371        new) $INPUT;;
372        series) $INPUT;;
373        season) $INPUT;;
374        episode) $INPUT;;
375        play) $INPUT;;
376        search) $INPUT;;
377        search2) $INPUT;;
378esac
Note: See TracBrowser for help on using the repository browser.