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

Last change on this file since 42597 was 42597, checked in by obi, 2 years ago

fix foxx search and add createUrl to python/lib/net needed for jpg download currently unused

File size: 13.2 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                        LINE="Http Stream ($TITLE)#$NEWPAGE#http://atemio.dyndns.tv/mediathek/menu/foxx.jpg#foxx.jpg#$NAME#2"
232                        echo "$LINE" >> $TMP/$FILENAME.list
233                fi
234        done 3<$TMP/cache.$FILENAME.6
235        rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
236
237        if [ ! -z "$errorcode" ];then
238                ERRORMSG="Foxx Website error, this video file cannot be played. (Error Code: $errorcode)"
239                LINE="$ERRORMSG#$NEWPAGE#$PIC#kinox_$piccount.jpg#Foxx#0"
240                echo "$LINE" > $TMP/$FILENAME.list
241        fi
242        echo $TMP/$FILENAME.list
243
244}
245
246season()
247{
248        if [ ! -e "$TMP/$FILENAME.list" ]; then
249
250#               $curlbin $PAGE -o $TMP/cache.$FILENAME.1
251                $BIN /tmp/localhoster/cloudflare.py "$PAGE" > $TMP/cache.$FILENAME.1
252                seasons=`cat $TMP/cache.$FILENAME.1 | sed -nr 's/.*class="se-t ">([^>]+)<.*/\1/p'`
253
254                tags=""
255                i=1
256                if [ ! -z "$i" ] && [ ! -z "$seasons" ];then
257                        until [ "$i" -gt "$seasons" ]
258                        do
259                        TMPURL=`echo $TMPURL | sed -e "s/&season=.*//" -e "s/&episode=.*//" -e "s/&referrer=.*//"`
260                        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
261                        i=`expr $i + 1` 
262                        done
263                fi
264
265                rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
266        fi
267        echo $TMP/$FILENAME.list
268}
269
270episode()
271{
272        if [ ! -e "$TMP/$FILENAME.list" ]; then
273                $curlbin $PAGE -o $TMP/cache.$FILENAME.1
274                $BIN /tmp/localhoster/cloudflare.py "$PAGE" > $TMP/cache.$FILENAME.1
275                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
276
277                while read -u 3 ROUND; do
278                        #echo ROUND $ROUND
279                        #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>
280                        NEWPAGE=$(echo $ROUND | sed -nr 's/.*<a href="([^"]+)".*/\1/p')
281                        PIC=$(echo $ROUND | sed -nr 's/.*<img src="([^"]+)".*/\1/p')
282                        EXTRA=$(echo $ROUND | sed -nr 's/.*episodiotitle">.*">([^>.*].*)<\/span>.*/\1/p')
283                        TITLE=$(echo $ROUND | sed -nr 's/.*episodiotitle"><a href.*">([^>].*)<\/a><span.*/\1/p')
284                        NUM=$(echo $ROUND | sed -nr 's/.*numerando">([^>]+)<\/div>.*/\1/p')
285
286                        if [ `echo $PIC | grep ^// | wc -l` -eq 1 ];then
287                                PIC=https:$PIC
288                        fi
289                        if [ `echo $NEWPAGE | grep ^// | wc -l` -eq 1 ];then
290                                NEWPAGE=https:$NEWPAGE
291                        fi
292
293                        if [ ! -z "$TITLE" ] && [ ! -z "$NUM" ];then
294                                NUM=`echo $NUM | cut -d "-" -f2 | sed -e 's/ //g'`
295                                TITLE="$NUM - $TITLE"
296                        fi
297
298                        if [ ! -z "$TITLE" ] && [ ! -z "$EXTRA" ];then
299                                TITLE="$TITLE ($EXTRA)"
300                        fi
301        #echo NEWPAGE $NEWPAGE
302        #echo NUM $NUM
303        #echo TITLE $TITLE
304        #echo EXTRA $EXTRA
305        #echo PIC $PIC
306        #exit
307
308                        if [ ! -z "$TITLE" ] && [ "$TITLE" != " " ] && [ ! -z "$NEWPAGE" ];then
309#                               LINE="$TITLE#$SRC $SRC hosterlist 0 0 $NEWPAGE#$PIC#foxx.jpg#$NAME#0"
310                                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"
311
312                                echo "$LINE" >> $TMP/$FILENAME.list
313                        fi
314                done 3<$TMP/cache.$FILENAME.2
315                rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
316        fi
317        echo $TMP/$FILENAME.list
318}
319
320
321hoster()
322{
323        if [ ! -e "$TMP/$FILENAME.list" ] ; then
324#               $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'
325                $curlbin $URL/res/links -X POST --data "$PAGE" -o $TMP/cache.$FILENAME.1
326                echo "curl hoster " $curlbin $URL/res/links -X POST --data "$PAGE" -o $TMP/cache.$FILENAME.1
327                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
328                rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
329        fi
330        cat $TMP/$FILENAME.list
331}
332
333#obi
334play()
335{
336        if [ -e "$TMP/$FILENAME.list" ] ; then
337                rm $TMP/$FILENAME.list
338        fi
339
340#       $curlbin $PAGE -o $TMP/cache.$FILENAME.1
341        $BIN /tmp/localhoster/cloudflare.py "$PAGE" > $TMP/cache.$FILENAME.1
342
343        cat $TMP/cache.$FILENAME.1 | grep -E ^"<iframe src=" | sed -e 's/<iframe src\=//g' | cut -d '"' -f2 >$TMP/cache.$FILENAME.2
344        TEMP=$(cat $TMP/cache.$FILENAME.2)
345        $curlbin $TEMP -o $TMP/cache.$FILENAME.3
346        cat $TMP/cache.$FILENAME.3 | grep -E "sources:*" >$TMP/cache.$FILENAME.4
347        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
348
349        cat $TMP/cache.$FILENAME.5 > $TMP/$PARSER.playlist.list
350
351        echo "$TMP/$PARSER.playlist.list"
352}
353
354case $INPUT in
355        init) $INPUT;;
356        mainmenu) $INPUT;;
357        new) $INPUT;;
358        search) $INPUT;;
359        page) $INPUT;;
360        season) $INPUT;;
361        episode) $INPUT;;
362        hosterlist) $INPUT;;
363        hoster) $INPUT;;
364        play) $INPUT;;
365esac
Note: See TracBrowser for help on using the repository browser.