source: titan/mediathek/localparser_free/dmax.sh @ 43022

Last change on this file since 43022 was 42464, checked in by obi, 6 years ago

tithek testfix speedup init localhoster

File size: 7.5 KB
Line 
1#!/bin/sh
2# first sh box parser for titannit mfg obi
3
4case $2 in
5        init) echo skip load hoster.sh;;
6        *) . /tmp/localhoster/hoster.sh;;
7esac
8
9SRC=$1
10INPUT=$2
11CURPAGE=$3
12MAXPAGE=$4
13PAGE=$5
14
15FILENAME=`echo $PAGE | tr '/' '.'`
16FILENAME=`echo $FILENAME | tr '&' '.'`
17
18if [ -z "$PAGE" ]; then
19        FILENAME=none
20fi
21
22URL=https://www.dmax.de
23PARSER=`echo $SRC | tr '/' '\n' | tail -n1 | sed 's/.sh//'`
24NAME="DMAX"
25
26mkdir $TMP > /dev/null 2>&1
27
28if [ `echo $SRC | grep ^"/mnt/parser" | wc -l` -gt 0 ];then
29        TYPE="$SRC - Shell script"
30elif [ `echo $SRC | grep ^"/var/swap" | wc -l` -gt 0 ];then
31        TYPE="Swap - Shell script"
32elif [ `echo $SRC | grep ^"/mnt/swapextensions" | wc -l` -gt 0 ];then
33        TYPE="Mnt - Shell script"
34else
35        TYPE="Flash - Shell script"
36fi
37
38init()
39{
40        if [ "$ARCH" == "arm" ] || [ "$ARCH" == "mipsel" ] || ([ "$ARCH" == "sh4" ] && [ -e "/etc/.beta" ]);then
41                rm -rf $TMP > /dev/null 2>&1
42                echo "$NAME ($TYPE)#$SRC $SRC mainmenu#http://atemio.dyndns.tv/mediathek/menu/$PARSER.jpg#$PARSER.jpg#TiThek#0"
43        fi
44}
45
46mainmenu()
47{
48        echo "Genres#$SRC $SRC genre 1 0 'themen'#http://atemio.dyndns.tv/mediathek/menu/all-newfirst.jpg#all-newfirst.jpg#$NAME#0" > $TMP/$PARSER.$INPUT.list
49        echo "Search#$SRC $SRC series 1 0 '/api/search?query='#http://atemio.dyndns.tv/mediathek/menu/search.jpg#search.jpg#$NAME#112" >> $TMP/$PARSER.$INPUT.list
50
51        if [ -e "$TMP/$PARSER.new.list" ] ; then
52                rm $TMP/$PARSER.new.list
53        fi
54        if [ "`echo $TMP/$PARSER.search.*.list`" != "$TMP/$PARSER.search.*.list" ] ; then
55                rm $TMP/$PARSER.search.*.list
56        fi
57        if [ -e "$TMP/$PARSER.page.list" ] ; then
58                rm $TMP/$PARSER.page.list
59        fi
60
61        echo "$TMP/$PARSER.$INPUT.list"
62}
63
64genre()
65{
66        if [ ! -e "$TMP/$PARSER.$INPUT.list" ] ; then
67                $curlbin $URL/$PAGE -o $TMP/cache.$PARSER.$INPUT.1
68                cat $TMP/cache.$PARSER.$INPUT.1 | sed 's!sendungen"},{"submenu!sendungen"},\n{"submenu!g' | sed -n '/sendungen"},/{n;p;}' | cut -d "]" -f1 | sed -e 's!"title"!\n"title"!g' | sed "/submenu/d" > /$TMP/cache.$PARSER.$INPUT.2
69                while read -u 3 ROUND; do
70                        TITLE=`echo $ROUND | cut -d '"' -f4 | sed 's!"title":!!g' | cut -d '"' -f2`
71                        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"`
72                        NEWPAGE=`echo $ROUND | sed 's/"url/\n"url/g' | grep ^'"url"' | sed 's!"url"!!g'| cut -d '"' -f2 | sed 's!themen!api/genres!g'`
73
74                        if [ -z  "$PIC" ]; then 
75                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
76                                TMPPIC="default.jpg"
77                        else
78                                TMPPIC=$PARSER'_'`echo $PIC | tr '/' '\n' | tail -n1`
79                        fi
80
81                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
82                                if [ `cat $TMP/$PARSER.$INPUT.list | grep ^"$NEWPAGE" | wc -l` -eq 0 ];then
83                                        if [ ! -e $TMP/$PARSER.$INPUT.list ];then
84                                                touch $TMP/$PARSER.$INPUT.list
85                                        fi
86                                        LINE="$TITLE#$SRC $SRC series 1 0 $NEWPAGE#$PIC#$TMPPIC#$NAME#0"
87                                        echo "$LINE" >> $TMP/$PARSER.$INPUT.list
88                                fi
89                        fi
90                done 3<$TMP/cache.$PARSER.$INPUT.2
91                rm $TMP/cache.$PARSER.$INPUT.* > /dev/null 2>&1
92        fi
93
94        if [ "`echo $TMP/$PARSER.series.*.list`" != "$TMP/$PARSER.series.*.list" ] ; then
95                rm $TMP/$PARSER.series.*.list
96        fi
97
98       
99        echo "$TMP/$PARSER.$INPUT.list"
100}
101
102series()
103{
104        if [ ! -e "$TMP/$PARSER.$INPUT.$CURPAGE.list" ] ; then
105               
106                if [ "$CURPAGE" -eq "1" ] ; then
107                        NEWPAGE=$PAGE
108                else
109                        NEWPAGE=$PAGE'?page='$CURPAGE
110                fi
111               
112                $curlbin $URL$NEWPAGE -o $TMP/cache.$PARSER.$INPUT.$CURPAGE.1
113
114                cat $TMP/cache.$PARSER.$INPUT.$CURPAGE.1 | sed 's!"id"!\n"id"!g' | sed '/alias/d' > /$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
115                echo >> $TMP/cache.$PARSER.$INPUT.$CURPAGE.2
116                while read -u 3 ROUND; do
117                        TITLE=`echo $ROUND | sed 's/"title"/\n"title"/g' | grep '"title"' | cut -d ',' -f1 | sed 's!"title":!!g'`
118                        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"`
119                        PIC=`echo $ROUND | sed 's/"src"/\n"src"/g' | sed 's!"src":!!g' | sed 's!id!!g' | grep "http[^ ]*"| cut -d '"' -f2`
120                        NEWPAGE=api/show-detail/`echo $ROUND | sed 's/"id"/\n"id"/' | grep ^'"id":' | sed 's!"id":!!g'| cut -d '"' -f2`
121
122                        if [ -z  "$PIC" ]; then 
123                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
124                                TMPPIC="default.jpg"
125                        else
126                                TMPPIC=$PARSER_`echo $PIC | tr '/' '\n' | tail -n1`
127                        fi
128
129                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
130                                        LINE="$TITLE#$SRC $SRC season 1 0 '$NEWPAGE'#$PIC#$TMPPIC#$NAME#0"
131                                        echo "$LINE" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
132                               
133                        fi
134                done 3<$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
135
136                MAXPAGE=$(grep '"totalPages"' $TMP/cache.$PARSER.$INPUT.$CURPAGE.2 |sed 's!"totalPages!\n"totalPages!g' | sed -n '/meta/{n;p;}' | sed 's!"totalPages":!!g' | cut -d '}' -f1)
137
138                if [ $MAXPAGE != $CURPAGE ];then
139               
140                NEWPAGE=`expr $CURPAGE + 1`
141                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
142                fi
143               
144
145                rm $TMP/cache.$PARSER.$INPUT.$CURPAGE.* > /dev/null 2>&1
146        fi
147       
148        if [ "`echo $TMP/$PARSER.season.*.list`" != "$TMP/$PARSER.season.*.list" ] ; then
149                rm $TMP/$PARSER.season.*.list
150        fi
151       
152        echo "$TMP/$PARSER.$INPUT.$CURPAGE.list"
153}
154
155season()
156{
157        if [ ! -e "$TMP/$PARSER.$INPUT.$CURPAGE.list" ] ; then
158               
159                if [ "$CURPAGE" -eq "1" ] ; then
160                        NEWPAGE=$PAGE
161                else
162                        NEWPAGE=$PAGE'?page='`expr $CURPAGE - 1`
163                fi
164               
165                $curlbin $URL/$NEWPAGE -o $TMP/cache.$PARSER.$INPUT.$CURPAGE.1
166
167                cat $TMP/cache.$PARSER.$INPUT.$CURPAGE.1 | sed 's!"videos"!\n"videos"!g' | sed '/"show"/d' | sed 's!"id"!\n"id"!g' | sed '/"videos"/d' > /$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
168                echo >> $TMP/cache.$PARSER.$INPUT.$CURPAGE.2
169                while read -u 3 ROUND; do
170                        TITLE=`echo $ROUND | sed 's!"name"!\n"name"!1' | grep ^'"name":' | cut -d '"' -f4`
171                        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"`
172                        PIC=`echo $ROUND | sed 's!"src"!\n"src"!1' | grep '"src":' | cut -d '"' -f4`
173                        NEWPAGE=https://sonic-eu1-prod.disco-api.com/playback/videoPlaybackInfo/`echo $ROUND | sed 's!"id"!\n"id"!g' | grep ^'"id":' | cut -d '"' -f4`
174
175                        if [ -z  "$PIC" ]; then 
176                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
177                                TMPPIC="default.jpg"
178                        else
179                                TMPPIC=$PARSER'_'`echo $PIC | tr '/' '\n' | tail -n1`
180                        fi
181
182                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
183                               
184                                        LINE="$TITLE#$SRC $SRC play 0 0 '$NEWPAGE'#$PIC#$TMPPIC#$NAME#111"
185                                        echo "$LINE" >> $TMP/$PARSER.$INPUT.$CURPAGE.list
186                               
187                        fi
188                done 3<$TMP/cache.$PARSER.$INPUT.$CURPAGE.2
189
190                rm $TMP/cache.$PARSER.$INPUT.$CURPAGE.* > /dev/null 2>&1
191        fi
192       
193        if [ "`echo $TMP/$PARSER.episode.*.list`" != "$TMP/$PARSER.episode.*.list" ] ; then
194                rm $TMP/$PARSER.episode.*.list
195                rm /tmp/tithek/$PARSER.episode.* > /dev/null 2>&1
196       
197        fi
198       
199        echo "$TMP/$PARSER.$INPUT.$CURPAGE.list"
200}
201
202play()
203{
204        if [ -e "$TMP/$PARSER.$INPUT.list" ] ; then
205                rm $TMP/$PARSER.$INPUT.list
206        fi
207       
208        TOKEN=$($curlbin $URL | sed 's!"sonicToken"!\n"sonicToken"!g' | grep ^'"sonicToken":' | cut -d '"' -f4)
209        curl -H "Authorization: Bearer $TOKEN" $PAGE -o $TMP/cache.$PARSER.$INPUT.1a
210
211        cat $TMP/cache.$PARSER.$INPUT.1a | grep -A 2 'hls' | grep '"url"' | cut -d '"' -f4 > $TMP/cache.$PARSER.$INPUT.2
212#       cat $TMP/cache.$PARSER.$INPUT.1a | grep -A 2 'dash' | grep '"url"' | cut -d '"' -f4 >> $TMP/cache.$PARSER.$INPUT.2
213
214        cat $TMP/cache.$PARSER.$INPUT.2 > $TMP/$PARSER.playlist.list
215
216        echo "$TMP/$PARSER.playlist.list"
217}
218
219case $INPUT in
220        init) $INPUT;;
221        mainmenu) $INPUT;;
222        genre) $INPUT;;
223        series) $INPUT;;
224        season) $INPUT;;
225        play) $INPUT;;
226esac
Note: See TracBrowser for help on using the repository browser.