source: titan/mediathek/localparser_secret/foxx.sh @ 42609

Last change on this file since 42609 was 42598, checked in by obi, 6 years ago

tithek fox fix master.fox stream playback

File size: 13.9 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
14PARSER=`echo $SRC | tr '/' '\n' | tail -n1 | sed 's/.sh//'`
15
16FILENAME="$PARSER $INPUT $CURPAGE $MAXPAGE $PAGE"
17FILENAME=`echo $FILENAME | tr '+' '.' | sed 's/https://' | tr '&' '.' | tr '/' '.' | tr '?' '.'  | tr '=' '.' | sed 's/ \+/./g' | sed 's/\.\+/./g'`
18
19if [ -z "$CURPAGE" ]; then
20        FILENAME=none
21fi
22
23URL=http://foxx.to
24PARSER=`echo $SRC | tr '/' '\n' | tail -n1 | sed 's/.sh//'`
25NAME="Foxx HD"
26
27mkdir $TMP > /dev/null 2>&1
28#TMP=/tmp/localcache
29if [ `echo $SRC | grep ^"/mnt/parser" | wc -l` -gt 0 ];then
30        TYPE="$SRC - Shell script"
31elif [ `echo $SRC | grep ^"/var/swap" | wc -l` -gt 0 ];then
32        TYPE="Swap - Shell script"
33elif [ `echo $SRC | grep ^"/mnt/swapextensions" | wc -l` -gt 0 ];then
34        TYPE="Mnt - Shell script"
35else
36        TYPE="Flash - Shell script"
37fi
38
39init()
40{
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}
44
45mainmenu()
46{
47        echo "Random Movie#$SRC $SRC new 0 0 '?get=movies'#http://atemio.dyndns.tv/mediathek/menu/all-newfirst.jpg#all-newfirst.jpg#$NAME#0" > $TMP/$FILENAME.list
48        #echo "Serien#$SRC $SRC new 0 0 '?get=tv'#http://atemio.dyndns.tv/mediathek/menu/Movies.jpg#Movies.jpg#$NAME#0" >> $TMP/$FILENAME.list
49    echo "Search#$SRC $SRC search 1 0 '?s=%search%'#http://atemio.dyndns.tv/mediathek/menu/search.jpg#search.jpg#$NAME#112" >> $TMP/$FILENAME.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/$FILENAME.list"
62}
63
64new()
65{
66        if [ ! -e "$TMP/$FILENAME.list" ] ; then
67#               $curlbin $URL/$PAGE -o $TMP/cache.$FILENAME.1
68
69#               /tmp/localhoster/hoster.sh get $URL/$PAGE > $TMP/cache.$FILENAME.1
70                $BIN /tmp/localhoster/cloudflare.py "$URL/$PAGE" > $TMP/cache.$FILENAME.1
71
72                cat $TMP/cache.$FILENAME.1 | sed 's/<div class/\n<div class/g' | sed 's/<a href="/\n<a href="/g' | grep ^'<a href="' | grep alt= | grep -v .gif > /$TMP/cache.$FILENAME.2
73                while read -u 3 ROUND; do
74                        TITLE=`echo $ROUND | sed 's/alt=/\nalt=/' | grep ^"alt=" | cut -d '"' -f2 | sed 's/#/%/'`
75                        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"`
76                        PIC=`echo $ROUND | sed 's!data-original=!\nsrc=!' | grep ^"src=" | cut -d '"' -f2`
77                        NEWPAGE=`echo $ROUND | sed 's/<a href=/\nhref=/' | grep ^"href=" | cut -d '"' -f2`
78
79                        if [ `echo $PIC | grep ^// | wc -l` -eq 1 ];then
80                                PIC=https:$PIC
81                        fi
82                        if [ `echo $NEWPAGE | grep ^// | wc -l` -eq 1 ];then
83                                NEWPAGE=https:$NEWPAGE
84                        fi
85                        if [ -z  "$PIC" ]; then 
86                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
87                                TMPPIC="default.jpg"
88                        else
89                                TMPPIC=goldesel_`echo $PIC | tr '/' '\n' | tail -n1`
90                        fi
91
92#                       echo "ROUND " $ROUND
93#                       echo "Bildlink " $PIC
94#                       echo "TMPPIC " $TMPPIC
95#                       echo "TITLE " $TITLE
96#                       echo "NEWPAGE " $NEWPAGE
97#
98#
99#exit
100                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
101                                if [ `cat $TMP/$FILENAME.list | grep ^"$NEWPAGE" | wc -l` -eq 0 ];then
102                                        if [ ! -e $TMP/$FILENAME.list ];then
103                                                touch $TMP/$FILENAME.list
104                                        fi
105# obi
106                                        LINE="$TITLE#$SRC $SRC hosterlist 0 0 $NEWPAGE#$PIC#$TMPPIC#$NAME#0"
107#                                       LINE="$TITLE#$SRC $SRC play $NEWPAGE#$PIC#$TMPPIC#$NAME#111"
108                                        echo "$LINE" >> $TMP/$FILENAME.list
109                                fi
110                        fi
111                done 3<$TMP/cache.$FILENAME.2
112                rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
113        fi
114
115        echo "$TMP/$FILENAME.list"
116}
117
118search()
119{
120        if [ ! -e "$TMP/$FILENAME.list" ] ; then
121                if [ "$CURPAGE" -eq "1" ] ; then
122                        NEWPAGE=$PAGE
123                else
124                        NEWPAGE=`echo $PAGE | sed "s/@PAGE@/$CURPAGE/g"`
125                fi
126#               $curlbin $URL/$NEWPAGE -o $TMP/cache.$FILENAME.1
127
128#               /tmp/localhoster/hoster.sh get $URL/$PAGE > $TMP/cache.$FILENAME.1
129                $BIN /tmp/localhoster/cloudflare.py "$URL/$PAGE" > $TMP/cache.$FILENAME.1
130
131                cat $TMP/cache.$FILENAME.1 | tr '\n' ' ' | sed -e 's/<a href=/\n<a href=/g' -e 's/Film/\nFilm/g' | grep '^<a href=' | grep '<img src=' > $TMP/cache.$FILENAME.1a
132                cat $TMP/cache.$FILENAME.1a | sed '/Stream in HD/d' > $TMP/cache.$FILENAME.2
133                while read -u 3 ROUND; do
134                        TITLE=`echo $ROUND | sed 's/alt=/\nalt=/' | grep ^"alt=" | cut -d '"' -f2 | sed 's/#/%/'`
135                        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"`
136                        PIC=`echo $ROUND | sed 's/img src/\nsrc=/' | grep ^"src=" | cut -d '"' -f2`
137                        NEWPAGE=`echo $ROUND | sed 's/<a href=/\nhref=/' | grep ^"href=" | cut -d '"' -f2`
138                        if [ `echo $PIC | grep ^// | wc -l` -eq 1 ];then
139                                PIC=https:$PIC
140                        fi
141                        if [ `echo $NEWPAGE | grep ^// | wc -l` -eq 1 ];then
142                                NEWPAGE=https:$NEWPAGE
143                        fi
144
145                        if [ `echo $NEWPAGE | grep "/serie/" | wc -l` -eq 1 ];then
146                                TYPE=season
147                        else
148                                TYPE=hosterlist
149                        fi
150
151                        if [ -z  "$PIC" ]; then 
152                                PIC="http://atemio.dyndns.tv/mediathek/menu/default.jpg"
153                                TMPPIC="default.jpg"
154                        else
155                                TMPPIC=foxx_`echo $PIC | tr '/' '\n' | tail -n1`
156                        fi
157
158#                       echo "ROUND " $ROUND
159#                       echo "Bildlink " $PIC
160#                       echo "TMPPIC " $TMPPIC
161#                       echo "TITLE " $TITLE
162#                       echo "NEWPAGE " $NEWPAGE
163#
164#
165#exit
166                        if [ ! -z "$TITLE" ] && [ ! -z "$NEWPAGE" ];then
167                                if [ `cat $TMP/$FILENAME.list | grep ^"$NEWPAGE" | wc -l` -eq 0 ];then
168                                        if [ ! -e $TMP/$FILENAME.list ];then
169                                                touch $TMP/$FILENAME.list
170                                        fi
171# obi
172                                        LINE="$TITLE#$SRC $SRC $TYPE 0 0 $NEWPAGE#$PIC#$TMPPIC#$NAME#0"
173#                                       LINE="$TITLE#$SRC $SRC play 0 0 $NEWPAGE#$PIC#$TMPPIC#$NAME#111"
174                                        echo "$LINE" >> $TMP/$FILENAME.list
175                                fi
176                        fi
177                done 3<$TMP/cache.$FILENAME.2
178                if [ "$CURPAGE" -eq "1" ] ; then
179                        PAGE="page/@PAGE@$PAGE"
180                        MAXPAGE=`cat $TMP/cache.$FILENAME.1 | sed '/<div class="pagination/!d;s/^.*Seite 1 von //;s/<\/span>.*$//'`
181                fi
182                if [ "$CURPAGE" -lt "$MAXPAGE" ] ; then
183                        NEWPAGE=`expr $CURPAGE + 1`
184                        echo "Page ($NEWPAGE/$MAXPAGE)#$SRC $SRC search $NEWPAGE $MAXPAGE '$PAGE'#http://atemio.dyndns.tv/mediathek/menu/next.jpg#next.jpg#$NAME#0" >> $TMP/$FILENAME.list
185        fi
186
187                rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
188        fi
189#       if [ -e "$TMP/$PARSER.hosterlist.list" ] ; then
190#               rm $TMP/$PARSER.hosterlist.list
191#       fi
192        echo "$TMP/$FILENAME.list"
193}
194
195#/tmp/localparser/foxx.sh /tmp/localparser/foxx.sh hosterlist 0 0 https://foxx.to/film/72-stunden-next-three-days-2010-23914-Stream
196
197hosterlist()
198{
199        if [ -e "$TMP/$FILENAME.list" ] ; then
200                rm $TMP/$FILENAME.list
201        fi
202#       $curlbin $PAGE -o $TMP/cache.$FILENAME.1
203        $BIN /tmp/localhoster/cloudflare.py "$PAGE" > $TMP/cache.$FILENAME.1
204
205        cat $TMP/cache.$FILENAME.1 | sed 's/<iframe src=/\n<iframe src=/g' | grep -E ^"<iframe src=" | sed -e 's/<iframe src\=//g' | cut -d '"' -f2 >$TMP/cache.$FILENAME.2
206        TEMP=$(cat $TMP/cache.$FILENAME.2)
207
208        if [ `echo $TEMP | grep ^// | wc -l` -eq 1 ];then
209                TEMP=https:$TEMP
210        fi
211
212#       $curlbin $TEMP -o $TMP/cache.$FILENAME.3
213        $BIN /tmp/localhoster/cloudflare.py "$TEMP" > $TMP/cache.$FILENAME.3
214        cat $TMP/cache.$FILENAME.3 | grep -A 10 "var decodeABC" >$TMP/cache.$FILENAME.4
215        echo "print(decodeABC(jbdaskgs));" >> $TMP/cache.$FILENAME.4
216        $DUKBIN $TMP/cache.$FILENAME.4 > $TMP/cache.$FILENAME.5
217
218#exit
219
220#[{"file":"https://lh3.googleusercontent.com/_KqlWWPoaC4gfQ0z_z9bK1y99QsnvN2eTSBz32Kd78Y7xLO_KoXveMe7TkimM0wpJl56HNTY=m18","label":"360p","type":"mp4"},{"file":"https://lh3.googleusercontent.com/_KqlWWPoaC4gfQ0z_z9bK1y99QsnvN2eTSBz32Kd78Y7xLO_KoXveMe7TkimM0wpJl56HNTY=m22","label":"720p","type":"mp4"}]
221#{"error":"status=fail&hl=uk&allow_embed=0&ps=docs&partnerid=30&errorcode=100&reason=Це+відео+не+існує.&timestamp=1532793394463"}
222        errorcode=`cat /tmp/localcache/cache.foxx.hosterlist.5 | sed -nr 's/.*errorcode=([^=]+)&.*/\1/p'`
223
224        cat $TMP/cache.$FILENAME.5 | grep -o "http[^ ]*"| sed -e 's!{! !g' -e 's/}//g' -e 's/{//g' -e 's/\"//g' -e 's/file/\nfile/g' -e 's/file://g' -e 's/type:mp4//g' -e 's/default:true//g' -e 's/\]//g' >$TMP/cache.$FILENAME.6
225        echo >> $TMP/cache.$FILENAME.6
226        while read -u 3 ROUND; do
227                NEWPAGE=$(echo $ROUND | grep -o "http[^ ]*" | cut -d "," -f1)
228                TITLE=$(echo $ROUND | grep -o "label[^ ]*" | cut -d "," -f1 | sed -e 's!label:!!g' -e 's!"!!g')
229                if [ ! -z "$TITLE" ] && [ "$TITLE" != " " ] && [ ! -z "$NEWPAGE" ];then
230                        PIC=`echo $TITLE | tr [A-Z] [a-z]`
231#ffplay -debug 1 "https://master.foxx.to/videoplayback?hash=df8cbe41-1fcd-468e-be40-90b2aeef6a9c&expireAt=1533097023189" -user-agent "Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0" -headers "cookie: cf_clearance=2ace7e2a04dc45592043701ae70fc07b06a4244d-1533078966-14400;"
232#                       REFERER=`echo "$TEMP" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
233                        LINE="Http Stream ($TITLE)#$NEWPAGE|User-Agent=$USERAGENT#http://atemio.dyndns.tv/mediathek/menu/foxx.jpg#foxx.jpg#$NAME#2"
234                        echo "$LINE" >> $TMP/$FILENAME.list
235                fi
236        done 3<$TMP/cache.$FILENAME.6
237        rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
238
239        if [ ! -z "$errorcode" ];then
240                ERRORMSG="Foxx Website error, this video file cannot be played. (Error Code: $errorcode)"
241                LINE="$ERRORMSG#$NEWPAGE#$PIC#kinox_$piccount.jpg#Foxx#0"
242                echo "$LINE" > $TMP/$FILENAME.list
243        fi
244        echo $TMP/$FILENAME.list
245
246}
247
248season()
249{
250        if [ ! -e "$TMP/$FILENAME.list" ]; then
251
252#               $curlbin $PAGE -o $TMP/cache.$FILENAME.1
253                $BIN /tmp/localhoster/cloudflare.py "$PAGE" > $TMP/cache.$FILENAME.1
254                seasons=`cat $TMP/cache.$FILENAME.1 | sed -nr 's/.*class="se-t ">([^>]+)<.*/\1/p'`
255
256                tags=""
257                i=1
258                if [ ! -z "$i" ] && [ ! -z "$seasons" ];then
259                        until [ "$i" -gt "$seasons" ]
260                        do
261                        TMPURL=`echo $TMPURL | sed -e "s/&season=.*//" -e "s/&episode=.*//" -e "s/&referrer=.*//"`
262                        echo "Season $i#$SRC $SRC episode $i 0 '$PAGE'#http://atemio.dyndns.tv/mediathek/menu/s"$i".jpg#s"$i".jpg#$NAME#0" | sort -r >> $TMP/$FILENAME.list
263                        i=`expr $i + 1`
264                        done
265                fi
266
267                rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
268        fi
269        echo $TMP/$FILENAME.list
270}
271
272episode()
273{
274        if [ ! -e "$TMP/$FILENAME.list" ]; then
275                $curlbin $PAGE -o $TMP/cache.$FILENAME.1
276                $BIN /tmp/localhoster/cloudflare.py "$PAGE" > $TMP/cache.$FILENAME.1
277                cat $TMP/cache.$FILENAME.1 | sed 's/<span class="se-t/\n<span class="se-t/g' | grep ^'<span class="se-t' | grep ">$CURPAGE</span><span class=" | sed 's/<li><div class/\nfound/g' | sed -e '/^ *$/d' > $TMP/cache.$FILENAME.2
278
279                while read -u 3 ROUND; do
280                        #echo ROUND $ROUND
281                        #found="imagen"><a href="//foxx.to/episode/game-of-thrones-7x1"><img src="//foxx.to/wp-content/uploads/2017/09/3SB4PUzZAnY6HnZbVbktIZoopGs-300x170.jpg"></a></div><div class="numerando">7 - 1</div><div class="episodiotitle"><a href="//foxx.to/episode/game-of-thrones-7x1">Drachenstein</a><span class="date">Jul. 16, 2017</span></div></li>
282                        NEWPAGE=$(echo $ROUND | sed -nr 's/.*<a href="([^"]+)".*/\1/p')
283                        PIC=$(echo $ROUND | sed -nr 's/.*<img src="([^"]+)".*/\1/p')
284                        EXTRA=$(echo $ROUND | sed -nr 's/.*episodiotitle">.*">([^>.*].*)<\/span>.*/\1/p')
285                        TITLE=$(echo $ROUND | sed -nr 's/.*episodiotitle"><a href.*">([^>].*)<\/a><span.*/\1/p')
286                        NUM=$(echo $ROUND | sed -nr 's/.*numerando">([^>]+)<\/div>.*/\1/p')
287
288                        if [ `echo $PIC | grep ^// | wc -l` -eq 1 ];then
289                                PIC=https:$PIC
290                        fi
291                        if [ `echo $NEWPAGE | grep ^// | wc -l` -eq 1 ];then
292                                NEWPAGE=https:$NEWPAGE
293                        fi
294
295                        if [ ! -z "$TITLE" ] && [ ! -z "$NUM" ];then
296                                NUM=`echo $NUM | cut -d "-" -f2 | sed -e 's/ //g'`
297                                TITLE="$NUM - $TITLE"
298                        fi
299
300                        if [ ! -z "$TITLE" ] && [ ! -z "$EXTRA" ];then
301                                TITLE="$TITLE ($EXTRA)"
302                        fi
303        #echo NEWPAGE $NEWPAGE
304        #echo NUM $NUM
305        #echo TITLE $TITLE
306        #echo EXTRA $EXTRA
307        #echo PIC $PIC
308        #exit
309
310                        if [ ! -z "$TITLE" ] && [ "$TITLE" != " " ] && [ ! -z "$NEWPAGE" ];then
311#                               LINE="$TITLE#$SRC $SRC hosterlist 0 0 $NEWPAGE#$PIC#foxx.jpg#$NAME#0"
312                                LINE="$TITLE#$SRC $SRC hosterlist 0 0 $NEWPAGE#http://atemio.dyndns.tv/mediathek/menu/s"$CURPAGE"e"$NUM".jpg#s"$CURPAGE"e"$NUM".jpg#$NAME#0"
313
314                                echo "$LINE" >> $TMP/$FILENAME.list
315                        fi
316                done 3<$TMP/cache.$FILENAME.2
317                rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
318        fi
319        echo $TMP/$FILENAME.list
320}
321
322
323hoster()
324{
325        if [ ! -e "$TMP/$FILENAME.list" ] ; then
326#               $curlbin $URL/res/links -X POST --data "$PAGE" -o $TMP/cache.$FILENAME.1 -A 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.7.3000 Chrome/30.0.1599.101 Safari/537.36'
327                $curlbin $URL/res/links -X POST --data "$PAGE" -o $TMP/cache.$FILENAME.1
328                echo "curl hoster " $curlbin $URL/res/links -X POST --data "$PAGE" -o $TMP/cache.$FILENAME.1
329#               cat $TMP/cache.$FILENAME.1 | sed 's!url="http://dref.pw/?!\nstreamurl="!' | grep ^streamurl= | cut -d'"' -f2 | sed 's!%3A!:!g' | sed 's!%2F!/!g' > $TMP/$FILENAME.list
330
331#               REFERER=`echo "$PAGE" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
332#               echo "$URL|User-Agent=$USERAGENT&Referer=$REFERER" >> $STREAMLIST
333                cat $TMP/cache.$FILENAME.1 | sed 's!url="http://dref.pw/?!\nstreamurl="!' | grep ^streamurl= | cut -d'"' -f2 | sed 's!%3A!:!g' | sed 's!%2F!/!g'"|User-Agent=$USERAGENT&Referer=$REFERER" > $TMP/$FILENAME.list
334
335                rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
336        fi
337        cat $TMP/$FILENAME.list
338}
339
340#obi
341play()
342{
343        if [ -e "$TMP/$FILENAME.list" ] ; then
344                rm $TMP/$FILENAME.list
345        fi
346
347#       $curlbin $PAGE -o $TMP/cache.$FILENAME.1
348        $BIN /tmp/localhoster/cloudflare.py "$PAGE" > $TMP/cache.$FILENAME.1
349
350        cat $TMP/cache.$FILENAME.1 | grep -E ^"<iframe src=" | sed -e 's/<iframe src\=//g' | cut -d '"' -f2 >$TMP/cache.$FILENAME.2
351        TEMP=$(cat $TMP/cache.$FILENAME.2)
352        $curlbin $TEMP -o $TMP/cache.$FILENAME.3
353        cat $TMP/cache.$FILENAME.3 | grep -E "sources:*" >$TMP/cache.$FILENAME.4
354        cat $TMP/cache.$FILENAME.4 | grep -o "http[^ ]*"| sed -e 's/,/ /g' -e 's/}//g' -e 's/{//g' -e 's/\"//g' -e 's/file/\nfile/g' -e 's/file://g' -e 's/type:mp4//g' -e 's/default:true//g' -e 's/\]//g' >$TMP/cache.$FILENAME.5
355
356        cat $TMP/cache.$FILENAME.5 > $TMP/$PARSER.playlist.list
357
358        echo "$TMP/$PARSER.playlist.list"
359}
360
361case $INPUT in
362        init) $INPUT;;
363        mainmenu) $INPUT;;
364        new) $INPUT;;
365        search) $INPUT;;
366        page) $INPUT;;
367        season) $INPUT;;
368        episode) $INPUT;;
369        hosterlist) $INPUT;;
370        hoster) $INPUT;;
371        play) $INPUT;;
372esac
Note: See TracBrowser for help on using the repository browser.