source: titan/mediathek/localparser_secret/beeg.sh @ 37152

Last change on this file since 37152 was 37152, checked in by obi, 5 years ago

optimize localhoster

  • Property svn:executable set to *
File size: 7.6 KB
Line 
1#!/bin/bash
2# box parser for titannit
3
4SRC=$1
5INPUT=$2
6PARAM=$3
7URL="https://beeg.com/api/v5/"
8PARSER=`echo $SRC | tr '/' '\n' | tail -n1 | sed 's/.sh//'`
9NAME=`echo -n ${PARSER:0:1} | tr '[a-z]' '[A-Z]'`${PARSER:1}
10
11debuglevel=`cat /mnt/config/titan.cfg | grep debuglevel | cut -d"=" -f2`
12curlbin='curl -k -s -L --cookie /mnt/network/cookies --cookie-jar /mnt/network/cookies'
13if [ "$debuglevel" == "99" ]; then curlbin="$curlbin -v"; fi
14
15wgetbin="wget -q -T2"
16TMP=/tmp/localcache
17
18rm -rf $TMP > /dev/null 2>&1
19mkdir $TMP > /dev/null 2>&1
20
21if [ `echo $SRC | grep ^"/mnt/parser" |wc -l` -gt 0 ];then
22        TYPE="$SRC - Shell script"
23elif [ `echo $SRC | grep ^"/var/swap" | wc -l` -gt 0 ];then
24        TYPE="Swap - Shell script"
25elif [ `echo $SRC | grep ^"/mnt/swapextensions" | wc -l` -gt 0 ];then
26        TYPE="Mnt - Shell script"
27else
28        TYPE="Flash - Shell script"
29fi
30
31init()
32{
33        echo "$NAME ($TYPE)#$SRC $SRC mainmenu#http://atemio.dyndns.tv/mediathek/menu/$PARSER.jpg#$PARSER.jpg#TiThek#1000"
34}
35
36mainmenu()
37{
38        echo "Sorted by date#$SRC $SRC videos index/main/0/pc#http://atemio.dyndns.tv/mediathek/menu/all-newfirst.jpg#all-newfirst.jpg#$NAME#0" >/tmp/tithek/$PARSER.list
39        echo "Popular Tags#$SRC $SRC tags popular#http://atemio.dyndns.tv/mediathek/menu/category.jpg#category.jpg#$NAME#0" >>/tmp/tithek/$PARSER.list
40        echo "All Tags#$SRC $SRC tags nonpopular#http://atemio.dyndns.tv/mediathek/menu/category.jpg#category.jpg#$NAME#0" >>/tmp/tithek/$PARSER.list
41        echo "Long Videos#$SRC $SRC videos tag/0/pc?tag=long+videos#http://atemio.dyndns.tv/mediathek/menu/category.jpg#category.jpg#$NAME#0" >>/tmp/tithek/$PARSER.list
42        echo "Search#$SRC $SRC videos index/search/0/pc?query=#http://atemio.dyndns.tv/mediathek/menu/search.jpg#search.jpg#$NAME#112" >>/tmp/tithek/$PARSER.list
43        echo "/tmp/tithek/$PARSER.list"
44}
45
46videos()
47{
48        $curlbin -o - $URL$PARAM | sed -e 's/{/{\n/g' -e 's/,/,\n/g' -e 's/\[/\[\n/g' -e 's/\}/\n\}/g' -e 's/\]/\n\]/g' | awk -v SRC=$SRC -v PARSER=$PARSER -v NAME=$NAME '
49BEGIN { table = ""
50        title = ""
51        id = ""
52      }
53/\"/  { m = 1
54        while (m == 1) {
55           s = $0
56           i = gsub("[\"]", "x", s)
57           m = i % 2
58           if (m == 1) {
59              getline l
60              $0 = $0 l
61           }
62        }
63      }
64/^\{/ { next
65      }
66/\[$/ { split($0, a, "\"")
67        table = a[2]
68        next
69      }
70/^\}/ { if (table == "videos") {
71           print title "#" SRC " " SRC " play video/" id "#https://img.beeg.com/236x177/" id ".jpg#" PARSER "_" id ".jpg#" NAME "#111"
72           title = ""
73           id = ""
74        }   
75        next
76      }
77/^\]/ { table = ""
78        next
79      }
80      { if (table == "videos") {
81           split($0, a, "\"")
82           if (a[3] ==":") {
83              value = a[4]
84           }
85           else {
86              value = substr(a[3], 2, length(a[3]) - 2)
87           }
88           if (a[2] == "title") {
89              title = value
90           }
91           else {
92              if (a[2] == "id") {
93                 id = value
94              }
95           }
96        }
97      }
98' >/tmp/tithek/$PARSER.list
99        echo "/tmp/tithek/$PARSER.list"
100}
101
102play()
103{
104        $curlbin -o - $URL$PARAM | sed -e 's/{/{\n/g' -e 's/,/,\n/g' -e 's/\[/\[\n/g' -e 's/\}/\n\}/g' -e 's/\]/\n\]/g' | awk -v PARSER=$PARSER -v NAME=$NAME '
105BEGIN { table = ""
106        title = ""
107        id = ""
108        v720p = ""
109        v480p = ""
110        v240p = ""
111        h2d = "0123456789ABCDEF"
112        for (i = 0; i <= 255; i++) {
113           ord[sprintf("%c", i)] = i
114        }
115        crc = "5ShMcIQlssOd7zChAIOlmeTZDaUxULbJRnywYaiB"
116      }
117/\"/  { m = 1
118        while (m == 1) {
119           s = $0
120           i = gsub("[\"]", "x", s)
121           m = i % 2
122           if (m == 1) {
123              getline l
124              $0 = $0 l
125           }
126        }
127      }
128/^\{/ { next
129      }
130/\[$/ { split($0, a, "\"")
131        table = a[2]
132        next
133      }
134/^\}/ { if (v720p == "null") {
135           if (v480p == "null") {
136              video = decrypt_url(v240p)
137           }
138           else {
139              video = decrypt_url(v480p)
140           }
141        }
142        else {
143           video = decrypt_url(v720p)
144        }
145        if (video != "null") {
146#           print title "#https:" video "#https://img.beeg.com/236x177/" id ".jpg#" PARSER "_" id ".jpg#" NAME "#2"
147           print "https:" video
148           }
149        title = ""
150        id = ""
151        v720p = ""
152        v480p = ""
153        v240p = ""
154        next
155      }
156/^\]/ { table = ""
157        next
158      }
159      { split($0, a, "\"")
160        if (a[3] ==":") {
161           value = a[4]
162        }
163        else {
164           value = substr(a[3], 2, length(a[3]) - 2)
165        }
166        if (a[2] == "title") {
167           title = value
168        }
169        else {
170           if (a[2] == "id") {
171              id = value
172           }
173           else {
174              if (a[2] == "240p") {
175                 v240p = value
176              }
177              else {
178                 if (a[2] == "480p") {
179                    v480p = value
180                 }
181                 else {
182                    if (a[2] == "720p") {
183                       v720p = value
184                    }
185                 }
186              }
187           }
188        }
189      }
190
191function decrypt_url(url)
192      { print "URL1: " url >>"/mnt/parser/beeg.log"
193        sub(/\{DATA_MARKERS\}/, "", url)
194        key_von = match(url, /\/key=/) + 5
195        print "URL2: " url >>"/mnt/parser/beeg.log"
196        key_bis = match(url, /\%2Cend/)
197        key_len = key_bis - key_von
198        key = ""
199        for (i = key_von; i < key_bis; i++) {
200           s = substr(url, i , 1)
201           if (s == "%") {
202              n = (index(h2d, toupper(substr(url, i + 1, 1))) - 1) * 16
203              n = n + (index(h2d, toupper(substr(url, i + 2, 1))) - 1)
204              if (n != 194) {
205                 s = sprintf("%c", n)
206              }
207              else {
208                 s = ""
209              }
210              i = i + 2
211           }
212           key = key s
213        }
214        print "KEY1: " key >>"/mnt/parser/beeg.log"
215        o = ""
216        for (i = 1; i <= length(key); i++) {
217           o = o sprintf("%c", ord[substr(key, i, 1)] - (ord[substr(crc, i % length(crc), 1)] % 21))
218        }
219        print "KEY2: " o >>"/mnt/parser/beeg.log"
220        r = ""
221        for (i = length(o) - 2; i > -3; i = i - 3) {
222           if (i > 0) {
223              r = r substr(o, i, 3)A
224           }
225           else {
226              r = r substr(o, 1, 2 - i)
227           }
228        }
229        print "KEY3: " r >>"/mnt/parser/beeg.log"
230        return substr(url, 1, key_von - 1) r substr(url, key_bis)
231      }
232' >/tmp/tithek/$PARSER.list
233#       echo "/tmp/tithek/$PARSER.list"
234        cat "/tmp/tithek/$PARSER.list"
235}
236
237tags()
238{
239        $curlbin -o - ${URL}index/main/0/pc | sed -e 's/{DATA_MARKERS}/data=pc.XX/g' -e 's/{/{\n/g' -e 's/,/,\n/g' -e 's/\[/\[\n/g' -e 's/\}/\n\}/g' -e 's/\]/\n\]/g' | awk -v PARAM=$PARAM -v SRC=$SRC -v NAME=$NAME '
240BEGIN { table = ""
241      }
242/\"/  { m = 1
243        while (m == 1) {
244           s = $0
245           i = gsub("[\"]", "x", s)
246           m = i % 2
247           if (m == 1) {
248              getline l
249              $0 = $0 l
250           }
251        }
252      }
253/^\{/ { next
254      }
255/\[$/ { split($0, a, "\"")
256        table = a[2]
257        next
258      }
259/^\}/ { next
260      }
261/^\]/ { table = ""
262        next
263      }
264      { if (table == PARAM) {
265           split($0, a, "\"")
266           title = a[2]
267           tag = title
268           gsub(/ /, "%20", tag)
269           print title "#" SRC " " SRC " videos index/tag/0/pc?tag=" tag "#http://atemio.dyndns.tv/mediathek/menu/" tag ".jpg#" tag ".jpg#" NAME "#0"
270        }
271      }
272' >/tmp/tithek/$PARSER.list
273        echo "/tmp/tithek/$PARSER.list"
274}
275
276case $INPUT in
277        init) $INPUT;;
278        mainmenu) $INPUT;;
279        videos) $INPUT;;
280        play) $INPUT;;
281        tags) $INPUT;;
282        page) $INPUT;;
283esac
284
Note: See TracBrowser for help on using the repository browser.