source: titan/plugins/tithek/tithek_global.h @ 41465

Last change on this file since 41465 was 41465, checked in by obi, 3 years ago

tithek disable unneeded stuff

M plugins/tithek/tithek.c
M plugins/tithek/tithek.h
M plugins/tithek/tithek_global.h
M plugins/tithek/tithek_header.h
M plugins/tithek/tithek_settings.h
M titan/play.h

File size: 49.8 KB
Line 
1#ifndef TITHEK_GLOBAL_H
2#define TITHEK_GLOBAL
3
4#include <curl/curl.h>
5
6char* hoster(char* url)
7{
8        debug(99, "url: %s", url);
9        char* streamurl = NULL, *tmplink = NULL, *tmpstr = NULL;
10        struct skin* load = getscreen("loading");
11
12        if(!ostrncmp("//", url, 2))
13                tmplink = ostrcat("http:", url, 0, 0);
14        else
15                tmplink = ostrcat(url, NULL, 0, 0);
16       
17        tmpstr = ostrcat(tmplink, NULL, 0, 0);
18        string_tolower(tmplink);
19
20        char* cmd = NULL;
21        cmd = ostrcat("/tmp/localhoster/hoster.sh get \"", tmpstr, 0, 0);
22        cmd = ostrcat(cmd, "\"", 1, 0);
23        streamurl = command(cmd);
24        streamurl = string_newline(streamurl);
25        debug(99, "Streamurl1: %s", streamurl);
26
27        free(cmd), cmd = NULL;
28        int skip = 0;
29
30        if(streamurl == NULL)
31        {
32                if(ostrstr(tmplink, "streamcloud") != NULL)
33                {
34                        streamurl = streamcloud(tmpstr);
35                        skip = 1;
36                }
37/*
38                if(ostrstr(tmplink, "sockshare") != NULL)
39                        streamurl = putlocker(url);
40                else if(ostrstr(tmplink, "putlocker") != NULL)
41                        streamurl = firedrive(url);
42                else if(ostrstr(tmplink, "filenuke") != NULL)
43                        streamurl = filenuke(url);
44                else if(ostrstr(tmplink, "streamcloud") != NULL)
45                        streamurl = streamcloud(url);
46                else if(ostrstr(tmplink, "vidstream") != NULL)
47                        streamurl = vidstream(url);
48                else if(ostrstr(tmplink, "flashx_disable") != NULL)
49                        streamurl = flashx(url);
50                else if(ostrstr(tmplink, "xvidstage") != NULL)
51                        streamurl = xvidstage(url);
52                else if(ostrstr(tmplink, "nowvideo") != NULL)
53                        streamurl = nowvideo(url);
54                else if(ostrstr(tmplink, "movshare") != NULL || ostrstr(tmplink, "wholecloud") != NULL)
55                        streamurl = movshare(url);
56                else if(ostrstr(tmplink, "movreel") != NULL)
57                        streamurl = movreel(url);
58                else if(ostrstr(tmplink, "novamov") != NULL || ostrstr(tmplink, "auroravid") != NULL)
59                        streamurl = novamov(url);
60                else if(ostrstr(tmplink, "divxstage") != NULL || ostrstr(tmplink, "cloudtime") != NULL)
61                        streamurl = divxstage(url);
62                else if(ostrstr(tmplink, "primeshare") != NULL)
63                        streamurl = primeshare(url);
64                else if(ostrstr(tmplink, "faststream") != NULL || ostrstr(tmplink, "fastvideo") != NULL)
65                        streamurl = faststream(url);
66                else if(ostrstr(tmplink, "played") != NULL)
67                        streamurl = played(url);
68                else if(ostrstr(tmplink, "videoweed") != NULL)
69                        streamurl = videoweed(url);
70                else if(ostrstr(tmplink, "firedrive") != NULL)
71                        streamurl = firedrive(url);
72                else if(ostrstr(tmplink, "shared") != NULL)
73                        streamurl = shared(url);
74                else if(ostrstr(tmplink, "thefile") != NULL)
75                        streamurl = thefile(url);
76                else if(ostrstr(tmplink, "youtu_disable") != NULL)
77                        streamurl = youtube(url);
78                else if(ostrstr(tmplink, "myvideo") != NULL)
79                        streamurl = myvideo(url);
80                else if(ostrstr(tmplink, "promptfile") != NULL)
81                        streamurl = promptfile(url);
82                else if(ostrstr(tmplink, "letwatch") != NULL || ostrstr(tmplink, "realvid") != NULL)
83                        streamurl = letwatch(url);
84                else if(ostrstr(tmplink, "vidbull") != NULL)
85                        streamurl = vidbull(url);
86                else if(ostrstr(tmplink, "vodlocker") != NULL)
87                        streamurl = vodlocker(url);
88                else if(ostrstr(tmplink, "vidto") != NULL)
89                        streamurl = vidto(url);
90                else if(ostrstr(tmplink, "amazon") != NULL)
91                        streamurl = amazon(url);
92                else if(ostrstr(tmplink, "thevideo") != NULL)
93                        streamurl = thevideo(url);
94                else if(ostrstr(tmplink, "mightyupload") != NULL)
95                        streamurl = mightyupload(url);
96                else if(ostrstr(tmplink, "cloudzilla") != NULL)
97                        streamurl = cloudzilla(url);
98                else if(ostrstr(tmplink, "vivo") != NULL)
99                        streamurl = vivo(url);
100                else if(ostrstr(tmplink, "streamlive") != NULL)
101                        streamurl = streamlive(url, -1);
102                else if(ostrstr(tmplink, "cricfree") != NULL)
103                        streamurl = cricfree(url, 0);
104                else if(ostrstr(tmplink, "zerocast") != NULL)
105                        streamurl = zerocast(url, 0);
106                else if(ostrstr(tmplink, "p2pcast") != NULL)
107                        streamurl = p2pcast(url);
108                else if(ostrstr(tmplink, "vidzi") != NULL)
109                        streamurl = vidzi(url);
110                else if(ostrstr(tmplink, "vid.ag") != NULL)
111                        streamurl = vidag(url);
112*/
113                debug(99, "Streamurl2: %s", streamurl);
114        }
115
116        if(streamurl == NULL && skip == 0)
117        {
118                if(!file_exist("/tmp/localhoster"))
119                        localparser_init("http://atemio.dyndns.tv/mediathek/mainmenu.list", "mainmenu.local.list", 1);
120
121                drawscreen(load, 0, 0);
122
123                cmd = ostrcat("/tmp/localhoster/hoster.sh youtube_dl \"", tmpstr, 0, 0);
124                cmd = ostrcat(cmd, "\"", 1, 0);
125                streamurl = command(cmd);
126                streamurl = string_newline(streamurl);
127                debug(99, "Streamurl3: %s", streamurl);
128       
129                free(cmd), cmd = NULL;
130
131                clearscreen(load);
132
133////////////
134                if(streamurl == NULL)
135                {
136                        if(ostrstr(tmplink, "sockshare") != NULL)
137                                streamurl = putlocker(tmpstr);
138                        else if(ostrstr(tmplink, "putlocker") != NULL)
139                                streamurl = firedrive(tmpstr);
140                        else if(ostrstr(tmplink, "filenuke") != NULL)
141                                streamurl = filenuke(tmpstr);
142                        else if(ostrstr(tmplink, "streamcloud") != NULL)
143                                streamurl = streamcloud(tmpstr);
144                        else if(ostrstr(tmplink, "vidstream") != NULL)
145                                streamurl = vidstream(tmpstr);
146                        else if(ostrstr(tmplink, "flashx_disable") != NULL)
147                                streamurl = flashx(tmpstr);
148                        else if(ostrstr(tmplink, "xvidstage") != NULL)
149                                streamurl = xvidstage(tmpstr);
150                        else if(ostrstr(tmplink, "nowvideo") != NULL)
151                                streamurl = nowvideo(tmpstr);
152                        else if(ostrstr(tmplink, "movshare") != NULL || ostrstr(tmplink, "wholecloud") != NULL)
153                                streamurl = movshare(tmpstr);
154                        else if(ostrstr(tmplink, "movreel") != NULL)
155                                streamurl = movreel(tmpstr);
156                        else if(ostrstr(tmplink, "novamov") != NULL || ostrstr(tmplink, "auroravid") != NULL)
157                                streamurl = novamov(tmpstr);
158                        else if(ostrstr(tmplink, "divxstage") != NULL || ostrstr(tmplink, "cloudtime") != NULL)
159                                streamurl = divxstage(tmpstr);
160                        else if(ostrstr(tmplink, "primeshare") != NULL)
161                                streamurl = primeshare(tmpstr);
162                        else if(ostrstr(tmplink, "faststream") != NULL || ostrstr(tmplink, "fastvideo") != NULL)
163                                streamurl = faststream(tmpstr);
164                        else if(ostrstr(tmplink, "played") != NULL)
165                                streamurl = played(tmpstr);
166                        else if(ostrstr(tmplink, "videoweed") != NULL)
167                                streamurl = videoweed(tmpstr);
168                        else if(ostrstr(tmplink, "firedrive") != NULL)
169                                streamurl = firedrive(tmpstr);
170                        else if(ostrstr(tmplink, "shared") != NULL)
171                                streamurl = shared(tmpstr);
172                        else if(ostrstr(tmplink, "thefile") != NULL)
173                                streamurl = thefile(tmpstr);
174/*
175                        else if(ostrstr(tmplink, "youtu_disable") != NULL)
176                                streamurl = youtube(tmpstr);
177*/
178/*
179                        else if(ostrstr(tmplink, "myvideo") != NULL)
180                                streamurl = myvideo(tmpstr);
181*/
182                        else if(ostrstr(tmplink, "promptfile") != NULL)
183                                streamurl = promptfile(tmpstr);
184                        else if(ostrstr(tmplink, "letwatch") != NULL || ostrstr(tmplink, "realvid") != NULL)
185                                streamurl = letwatch(tmpstr);
186                        else if(ostrstr(tmplink, "vidbull") != NULL)
187                                streamurl = vidbull(tmpstr);
188                        else if(ostrstr(tmplink, "vodlocker") != NULL)
189                                streamurl = vodlocker(tmpstr);
190                        else if(ostrstr(tmplink, "vidto") != NULL)
191                                streamurl = vidto(tmpstr);
192/*
193                        else if(ostrstr(tmplink, "amazon") != NULL)
194                                streamurl = amazon(tmpstr);
195*/
196/*
197                        else if(ostrstr(tmplink, "thevideo") != NULL)
198                                streamurl = thevideo(tmpstr);
199*/
200                        else if(ostrstr(tmplink, "mightyupload") != NULL)
201                                streamurl = mightyupload(tmpstr);
202                        else if(ostrstr(tmplink, "cloudzilla") != NULL)
203                                streamurl = cloudzilla(tmpstr);
204                        else if(ostrstr(tmplink, "vivo") != NULL)
205                                streamurl = vivo(tmpstr);
206                        else if(ostrstr(tmplink, "streamlive") != NULL)
207                                streamurl = streamlive(tmpstr, -1);
208                        else if(ostrstr(tmplink, "cricfree") != NULL)
209                                streamurl = cricfree(tmpstr, 0);
210                        else if(ostrstr(tmplink, "zerocast") != NULL)
211                                streamurl = zerocast(tmpstr, 0);
212                        else if(ostrstr(tmplink, "p2pcast") != NULL)
213                                streamurl = p2pcast(tmpstr);
214                        else if(ostrstr(tmplink, "vidzi") != NULL)
215                                streamurl = vidzi(tmpstr);
216                        else if(ostrstr(tmplink, "vid.ag") != NULL)
217                                streamurl = vidag(tmpstr);
218                        debug(99, "Streamurl4: %s", streamurl);
219                }
220////////////
221
222                if(streamurl == NULL)
223                        textbox(_("Message"), _("The hoster is not yet supported !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 5, 0);
224
225        }
226
227        debug(99, "Streamurl1: %s", streamurl);
228
229        streamurl = string_replace_all("amp;", "", streamurl, 1);
230        debug(99, "Streamurl4: %s", streamurl);
231
232        free(tmplink), tmplink = NULL;
233/*
234        if(ostrncmp("http", streamurl, 4) && ostrncmp("rtmp", streamurl, 4) && ostrncmp("mms", streamurl, 3) && ostrncmp("rtsp", streamurl, 4))
235        {
236                printf("Streamurl3: not http*|rtmp*|mms*|rtsp* Streamurl: %s\n", streamurl);
237                free(streamurl),streamurl = NULL;
238        }
239*/
240        return streamurl;
241}
242
243struct MemoryStruct {
244  char *memory;
245  size_t size;
246};
247
248static size_t
249WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp)
250{
251  size_t realsize = size * nmemb;
252  struct MemoryStruct *mem = (struct MemoryStruct *)userp;
253 
254  mem->memory = realloc(mem->memory, mem->size + realsize + 1);
255  if(mem->memory == NULL) {
256    /* out of memory! */ 
257    printf("not enough memory (realloc returned NULL)\n");
258    return 0;
259  }
260 
261  memcpy(&(mem->memory[mem->size]), contents, realsize);
262  mem->size += realsize;
263  mem->memory[mem->size] = 0;
264 
265  return realsize;
266}
267
268// flag = 0 (without header in output)
269// flag = 1 (with header in output)
270char* gethttps(char* url, char* localfile, char* data, char* user, char* pass, char* referer, int flag)
271{
272        debug(99, "url: %s", url);
273
274        int debuglevel = getconfigint("debuglevel", NULL);
275
276        char* tmpstr = NULL;
277    FILE *fp;
278
279        CURL *curl_handle;
280        CURLcode res;
281       
282        struct MemoryStruct chunk;
283       
284        chunk.memory = malloc(1);  /* will be grown as needed by the realloc above */ 
285        chunk.size = 0;    /* no data at this point */
286       
287        curl_global_init(CURL_GLOBAL_ALL);
288
289        /* init the curl session */ 
290        curl_handle = curl_easy_init();
291        if(curl_handle)
292        {
293            if(localfile != NULL)
294                    fp = fopen(localfile,"wb");
295               
296                /* specify URL to get */
297                curl_easy_setopt(curl_handle, CURLOPT_URL, url);
298
299                if(user != NULL && pass != NULL)
300                {
301                        curl_easy_setopt(curl_handle, CURLOPT_USERNAME, user);
302                        curl_easy_setopt(curl_handle, CURLOPT_PASSWORD, pass);
303                        curl_easy_setopt(curl_handle, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
304                }
305                if(data == NULL)
306                        curl_easy_setopt(curl_handle, CURLOPT_HTTPGET, 1L);
307                else
308                {
309                        curl_easy_setopt(curl_handle, CURLOPT_POST, 1);
310                        curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDS, data);
311
312                        /* example.com is redirected, so we tell libcurl to send POST on 301, 302 and
313                     303 HTTP response codes */
314                        curl_easy_setopt(curl_handle, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
315                }
316                if(flag == 1)
317                        curl_easy_setopt(curl_handle, CURLOPT_HEADER, 1L);
318                curl_easy_setopt(curl_handle, CURLOPT_CONNECTTIMEOUT, 5);
319                curl_easy_setopt(curl_handle, CURLOPT_TIMEOUT, 3);
320//              curl_easy_setopt(curl_handle, CURLOPT_RETURNTRANSFER, 1);
321
322                /* send all data to this function  */
323            if(localfile == NULL)
324                        curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
325                else
326                        curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, NULL);
327
328                /* we pass our 'chunk' struct to the callback function */
329            if(localfile == NULL)
330                        curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&chunk);
331                else
332                        curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, fp);
333
334                /* some servers don't like requests that are made without a user-agent field, so we provide one */
335//              curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "libcurl-agent/1.0");
336                curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "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");
337
338                // This is occassionally required to stop CURL from verifying the peers certificate.
339                // CURLOPT_SSL_VERIFYHOST may also need to be TRUE or FALSE if
340                // CURLOPT_SSL_VERIFYPEER is disabled (it defaults to 2 - check the existence of a
341                // common name and also verify that it matches the hostname provided)
342#ifdef MIPSEL
343                curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 1L);
344#else
345                curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 0L);
346#endif
347
348                curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYHOST, 0L);
349                if(debuglevel == 99)
350                        curl_easy_setopt(curl_handle, CURLOPT_VERBOSE, 1);
351                curl_easy_setopt(curl_handle, CURLOPT_COOKIEFILE, "/mnt/network/cookies");
352                curl_easy_setopt(curl_handle, CURLOPT_COOKIEJAR, "/mnt/network/cookies");
353                /* enable redirect following */
354                curl_easy_setopt(curl_handle, CURLOPT_FOLLOWLOCATION, 1L);
355                /* allow three redirects */
356                curl_easy_setopt(curl_handle, CURLOPT_MAXREDIRS, 3L);
357
358                /* enable all supported built-in compressions */
359                curl_easy_setopt(curl_handle, CURLOPT_ACCEPT_ENCODING, "");
360 
361                if(referer == NULL)
362                        curl_easy_setopt(curl_handle, CURLOPT_AUTOREFERER, 1L);
363                else
364                        curl_easy_setopt(curl_handle, CURLOPT_REFERER, referer);
365
366                /* get it! */
367                res = curl_easy_perform(curl_handle);
368                /* check for errors */
369                if(res != CURLE_OK)
370                {
371                        err("failed: %s", curl_easy_strerror(res));
372                        printf("curl error\n");
373                }
374                else
375                {
376                        /*
377                         * Now, our chunk.memory points to a memory block that is chunk.size
378                         * bytes big and contains the remote file.
379                         *
380                         * Do something nice with it!
381                         */
382                        printf("%lu bytes retrieved\n", (long)chunk.size);
383                }
384               
385                /* cleanup curl stuff */
386                curl_easy_cleanup(curl_handle);
387                if(localfile != NULL)
388                        fclose(fp);
389        }
390
391        tmpstr = ostrcat(chunk.memory, NULL, 0, 0);
392        free(chunk.memory);
393        /* we're done with libcurl, so clean it up */
394        curl_global_cleanup();
395
396        if(localfile != NULL) 
397                free(tmpstr), tmpstr = NULL;
398        return tmpstr;
399}
400
401char* string_decode3(char* input)
402{
403        if(input == NULL) return input;
404
405        input = string_replace_all("&#196;", "Ä", input, 1);
406        input = string_replace_all("&#228;", "ä", input, 1);
407        input = string_replace_all("&#201;", "É", input, 1);
408        input = string_replace_all("&#233;", "é", input, 1);
409        input = string_replace_all("&#214;", "Ö", input, 1);
410        input = string_replace_all("&#246;", "ö", input, 1);
411        input = string_replace_all("&#220;", "Ü", input, 1);
412        input = string_replace_all("&#252;", "ü", input, 1);
413        input = string_replace_all("&#223;", "ß", input, 1);
414        input = string_replace_all("&#38;", "&", input, 1);
415
416        input = string_replace_all("&Auml;", "Ä", input, 1);
417        input = string_replace_all("&auml;", "ä", input, 1);
418        input = string_replace_all("&Eacute;", "É", input, 1);
419        input = string_replace_all("&eacute;", "é", input, 1);
420        input = string_replace_all("&Ouml;", "Ö", input, 1);
421        input = string_replace_all("&ouml;", "ö", input, 1);
422        input = string_replace_all("&Uuml;", "Ü", input, 1);
423        input = string_replace_all("&uuml;", "ü", input, 1);
424        input = string_replace_all("&szlig;", "ß", input, 1);
425        input = string_replace_all("&amp;", "&", input, 1);
426
427        return input;
428}
429
430char* getfilekey(char* w, char* i, char* s, char* e)
431{
432        char* ret = NULL;
433
434        if(w == NULL || i == NULL || s == NULL || e == NULL)
435                return NULL;
436
437        int a = 0, b = 0, c = 0;
438        int a1 = 0, b1 = 0;
439
440        int lw = strlen(w);
441        int li = strlen(i);
442        int ls = strlen(s);
443       
444        if(lw < 5 || li < 5 || ls < 5)
445                return NULL;
446
447        char ca[lw + li + ls - 14];
448        char cb[16];
449
450        ca[lw + li + ls - 15] = '\0';
451        cb[15] = '\0';
452       
453        while(1)
454        {
455                if(a < 5)
456                {
457                        cb[b1] = w[a];
458                        b1++;
459                }
460                else if(a < lw)
461                {
462                        ca[a1] = w[a];
463                        a1++;
464                }
465                a++;
466               
467                if(b < 5)
468                {
469                        cb[b1] = i[b];
470                        b1++;
471                }
472                else if(b < li)
473                {
474                        ca[a1] = i[b];
475                        a1++;
476                }
477                b++;
478               
479                if(c < 5)
480                {
481                        cb[b1] = s[c];
482                        b1++;
483                }
484                else if(c < ls)
485                {
486                        ca[a1] = s[c];
487                        a1++;
488                }
489                c++;
490               
491                if(lw + li + ls == a1 + b1)
492                        break;
493        }
494
495        b = 0;
496        int d = 0;
497        char cc[a1 / 2 + 1];
498        char casub[3] = {'\0'};
499        cc[a1 / 2] = '\0';
500       
501        for(a = 0; a < a1; a += 2)
502        {
503                int c = -1;
504               
505                if(cb[b] % 2) c = 1;
506
507                casub[0] = ca[a];
508                casub[1] = ca[a + 1];
509
510                cc[d] = strtol(casub, '\0', 36) - c;
511                b++; d++;
512                if(b >= b1) b = 0;
513        }
514
515        char* r1 = NULL, *r2 = NULL, *r3 = NULL, *r4 = NULL;
516        char* pos = ostrstr(cc, ");}('");
517        if(pos != NULL)
518        {
519                r1 = string_resub(");}('", "'", pos, 0);
520                pos = ostrstr(pos + 5, ",'");
521                if(pos != NULL)
522                {
523                        r2 = string_resub(",'", "'", pos, 0);
524                        pos = ostrstr(pos + 2, ",'");
525                        if(pos != NULL)
526                        {
527                                r3 = string_resub(",'", "'", pos, 0);
528                                pos = ostrstr(pos + 2, ",'");
529                                if(pos != NULL)
530                                {
531                                        r4 = string_resub(",'", "'", pos, 0);
532                                        ret = getfilekey(r1, r2, r3, r4);
533                                }
534                        }
535                }
536        }
537        else
538        {
539                ret = string_resub("ll=\"", "\"", cc, 0);
540                if(ret == NULL)
541                        ret = string_resub("filekey=\"", "\"", cc, 0); 
542        }
543
544  free(r1); r1 = NULL;
545        free(r2); r2 = NULL;
546        free(r3); r3 = NULL;
547        free(r4); r4 = NULL;
548                                       
549        return ret;
550}
551
552int screenlistbox(struct skin* grid, struct skin* listbox,struct skin* countlabel, char* title, char* titheklink, int* pagecount, int* tithekexit, int* oaktpage, int* oaktline, int* ogridcol, int flag, int cflag)
553{
554        char* tmpstr = NULL, *tmpstr1 = NULL, *tmpstr2 = NULL;
555
556        *oaktpage = listbox->aktpage;
557        *oaktline = listbox->aktline;
558        *ogridcol = listbox->gridcol;
559        tmpstr = ostrcat(((struct tithek*)listbox->select->handle)->link, NULL, 0, 0);
560
561        if(title != NULL)
562                tmpstr1 = ostrcat(title, " - ", 0, 0);
563        else
564                tmpstr1 = ostrcat(((struct tithek*)listbox->select->handle)->menutitle, " - ", 0, 0);   
565       
566        tmpstr2 = ostrcat(tmpstr1, ((struct tithek*)listbox->select->handle)->title, 1, 0);
567        screentithekplay(tmpstr, tmpstr2, flag);
568        free(tmpstr); tmpstr = NULL;
569        free(tmpstr2); tmpstr2 = NULL;
570
571        *pagecount = createtithekplay(titheklink, grid, listbox, countlabel, tmpstr1, cflag);
572//      if(pagecount == 0 || tithekexit == 1) break;
573        if(*pagecount == 0 || *tithekexit == 1) return 0;
574       
575        listbox->aktpage = *oaktpage;
576        listbox->aktline = *oaktline;
577        listbox->gridcol = *ogridcol;
578        addscreenrc(grid, listbox);
579
580        return 1;
581}
582
583//char* crea(char* title, struct skin* listbox)
584char* createfilename1(char* title, char* title2)
585{
586        char* filename = NULL;
587        char* tmpstr2 = NULL;
588
589        filename = ostrcat(title, "_", 0, 0);
590
591        tmpstr2 = ostrcat(_("Tithek - Mainmenu - Favoriten"), " - ", 0, 0);
592        filename = string_replace_all(tmpstr2, "", filename, 1);
593        free(tmpstr2); tmpstr2 = NULL;
594
595        tmpstr2 = ostrcat(_("Tithek - Mainmenu"), " - ", 0, 0);
596        filename = string_replace_all(tmpstr2, "", filename, 1);
597        free(tmpstr2); tmpstr2 = NULL;
598
599        filename = string_replace_all("Tips und Tricks - ", "", filename, 1);
600        filename = string_replace_all("Internet TV - ", "", filename, 1);
601        filename = string_replace_all("Internet Radio - ", "", filename, 1);
602        filename = string_replace_all("ARD - ", "", filename, 1);
603        filename = string_replace_all("ZDF - ", "", filename, 1);
604        filename = string_replace_all("FilmOn - ", "", filename, 1);
605        filename = string_replace_all("MyVideo - ", "", filename, 1);
606        filename = string_replace_all("Netzkino - ", "", filename, 1);
607        filename = string_replace_all("KinoX - ", "", filename, 1);
608        filename = string_replace_all("Movie4k - ", "", filename, 1);
609        filename = string_replace_all("Movie2k - ", "", filename, 1);
610
611        filename = string_replace_all("Beeg ", "", filename, 1);
612        filename = string_replace_all("Burning Series ", "", filename, 1);
613        filename = string_replace_all("CricFree ", "", filename, 1);
614        filename = string_replace_all("Giga ", "", filename, 1);
615        filename = string_replace_all("KKiste ", "", filename, 1);
616        filename = string_replace_all("NBA-On-Demand ", "", filename, 1);
617        filename = string_replace_all("StreamLive ", "", filename, 1);
618        filename = string_replace_all("TheSolarMovie ", "", filename, 1);
619        filename = string_replace_all("Youtube ", "", filename, 1);
620
621        tmpstr2 = ostrcat(_("Category"), " - ", 0, 0);
622        filename = string_replace_all(tmpstr2, "", filename, 1);
623        free(tmpstr2); tmpstr2 = NULL;
624
625        tmpstr2 = ostrcat(_("Search (local)"), " - ", 0, 0);
626        filename = string_replace_all(tmpstr2, "", filename, 1);
627        free(tmpstr2); tmpstr2 = NULL;
628
629        tmpstr2 = ostrcat(_("Search (20)"), " - ", 0, 0);
630        filename = string_replace_all(tmpstr2, "", filename, 1);
631        free(tmpstr2); tmpstr2 = NULL;
632
633        tmpstr2 = ostrcat(_("Search Cast"), " - ", 0, 0);
634        filename = string_replace_all(tmpstr2, "", filename, 1);
635        free(tmpstr2); tmpstr2 = NULL;
636
637        tmpstr2 = ostrcat(_("Search"), " - ", 0, 0);
638        filename = string_replace_all(tmpstr2, "", filename, 1);
639        free(tmpstr2); tmpstr2 = NULL;
640
641        tmpstr2 = ostrcat(_("All Sorted"), " - ", 0, 0);
642        filename = string_replace_all(tmpstr2, "", filename, 1);
643        free(tmpstr2); tmpstr2 = NULL;
644
645        tmpstr2 = ostrcat(_("A-Z"), " - ", 0, 0);
646        filename = string_replace_all(tmpstr2, "", filename, 1);
647        free(tmpstr2); tmpstr2 = NULL;
648
649        filename = string_replace_all("(Flash - Shell script) - ", "", filename, 1);
650        filename = string_replace_all("Genres - ", "", filename, 1);
651        filename = string_replace_all("All Series - ", "", filename, 1);
652        filename = string_replace_all("Channels - ", "", filename, 1);
653        filename = string_replace_all("Kinofilme - ", "", filename, 1);
654        filename = string_replace_all("Neue Filme - ", "", filename, 1);
655        filename = string_replace_all("Movies (Year) - ", "", filename, 1);
656        filename = string_replace_all("Movies (Genre) - ", "", filename, 1);
657        filename = string_replace_all("Series - ", "", filename, 1);
658
659//      filename = ostrcat(filename, ((struct tithek*)listbox->select->handle)->title, 1, 0);
660        filename = ostrcat(filename, title2, 1, 0);
661
662        filename = ostrcat(filename, ".mp4", 1, 0);
663        filename = string_replace_all(" ", ".", filename, 1);
664        filename = string_replace_all("-", "_", filename, 1);
665        filename = string_replace_all("._.", "_", filename, 1);
666        filename = string_replace_all(".._", "_", filename, 1);
667
668        return filename;
669}
670/*
671                        printf("flag=%d\n", titheknode->flag);
672                        printf("title=%s\n", titheknode->title);
673                        printf("menutitle=%s\n", titheknode->menutitle);
674                        printf("skin title=%s\n", title);
675                        printf("titheklink=%s\n", titheklink);
676
677                        if(title != NULL)
678                                tmpstr1 = ostrcat(title, " - ", 0, 0);
679                        else
680                                tmpstr1 = ostrcat(titheknode->menutitle, " - ", 0, 0);
681
682                        tmpstr1 = ostrcat(tmpstr1, titheknode->title, 1, 0);
683//                      tmpstr1 = ostrcat(tmpstr1, ".mp4", 1, 0);
684
685                        tmpstr1 = string_replace_all(" - ", "_", tmpstr1, 1);
686
687                        tmpstr1 = string_replace_all(") (", ")_(", tmpstr1, 1);
688                        tmpstr1 = string_replace_all(" ", "-", tmpstr1, 1);
689                        printf("tmpstr1=%s\n", tmpstr1);
690
691                        tmpstr2 = ostrcat("/mnt/swapextensions/player/", tmpstr1, 0, 0);
692                        free(tmpstr1), tmpstr1 = NULL;
693*/
694
695//char* createfilename(char* title, struct skin* listbox)
696char* createfilename(char* title, char* title2, int flag)
697{
698        debug(99, "title: %s title2: %s", title, title2);
699        char* filename = NULL;
700        char* tmpstr = NULL;
701        char* tmpstr2 = NULL;
702
703        if(title2 != NULL)
704        {
705                tmpstr = ostrcat(title, " - ", 0, 0);
706                tmpstr = ostrcat(tmpstr, title2, 1, 0);
707        }
708        else
709                tmpstr = ostrcat(title, NULL, 0, 0);
710
711        if(flag >= 1)
712        {
713                tmpstr2 = ostrcat(_("Tithek - Mainmenu - Favoriten"), " - ", 0, 0);
714                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
715                free(tmpstr2); tmpstr2 = NULL;
716
717                tmpstr2 = ostrcat(_("Tithek - Mainmenu"), " - ", 0, 0);
718                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
719                free(tmpstr2); tmpstr2 = NULL;
720
721                tmpstr = string_replace_all("Tips und Tricks - ", "", tmpstr, 1);
722                tmpstr = string_replace_all("Internet TV - ", "", tmpstr, 1);
723                tmpstr = string_replace_all("Internet Radio - ", "", tmpstr, 1);
724                tmpstr = string_replace_all("ARD - ", "", tmpstr, 1);
725                tmpstr = string_replace_all("ZDF - ", "", tmpstr, 1);
726                tmpstr = string_replace_all("FilmOn - ", "", tmpstr, 1);
727                tmpstr = string_replace_all("MyVideo - ", "", tmpstr, 1);
728                tmpstr = string_replace_all("Netzkino - ", "", tmpstr, 1);
729                tmpstr = string_replace_all("KinoX - ", "", tmpstr, 1);
730                tmpstr = string_replace_all("Movie4k - ", "", tmpstr, 1);
731                tmpstr = string_replace_all("Movie2k - ", "", tmpstr, 1);
732
733                tmpstr = string_replace_all("Beeg ", "", tmpstr, 1);
734                tmpstr = string_replace_all("Burning Series ", "", tmpstr, 1);
735                tmpstr = string_replace_all("CricFree ", "", tmpstr, 1);
736                tmpstr = string_replace_all("Giga ", "", tmpstr, 1);
737                tmpstr = string_replace_all("KKiste ", "", tmpstr, 1);
738                tmpstr = string_replace_all("NBA-On-Demand ", "", tmpstr, 1);
739                tmpstr = string_replace_all("StreamLive ", "", tmpstr, 1);
740                tmpstr = string_replace_all("TheSolarMovie ", "", tmpstr, 1);
741                tmpstr = string_replace_all("Youtube ", "", tmpstr, 1);
742
743                tmpstr2 = ostrcat(_("Category"), " - ", 0, 0);
744                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
745                free(tmpstr2); tmpstr2 = NULL;
746
747                tmpstr2 = ostrcat(_("Cine Films"), " - ", 0, 0);
748                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
749                free(tmpstr2); tmpstr2 = NULL;
750
751                tmpstr2 = ostrcat(_("Search (local)"), " - ", 0, 0);
752                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
753                free(tmpstr2); tmpstr2 = NULL;
754
755                tmpstr2 = ostrcat(_("Search (20)"), " - ", 0, 0);
756                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
757                free(tmpstr2); tmpstr2 = NULL;
758
759                tmpstr2 = ostrcat(_("Search Cast"), " - ", 0, 0);
760                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
761                free(tmpstr2); tmpstr2 = NULL;
762
763                tmpstr2 = ostrcat(_("Search"), " - ", 0, 0);
764                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
765                free(tmpstr2); tmpstr2 = NULL;
766
767                tmpstr2 = ostrcat(_("All Sorted"), " - ", 0, 0);
768                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
769                free(tmpstr2); tmpstr2 = NULL;
770
771                tmpstr2 = ostrcat(_("A-Z"), " - ", 0, 0);
772                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
773                free(tmpstr2); tmpstr2 = NULL;
774
775                tmpstr = string_replace_all("(Flash - Shell script) - ", "", tmpstr, 1);
776                tmpstr = string_replace_all("Genres - ", "", tmpstr, 1);
777                tmpstr = string_replace_all("All Series - ", "", tmpstr, 1);
778                tmpstr = string_replace_all("Channels - ", "", tmpstr, 1);
779                tmpstr = string_replace_all("Kinofilme - ", "", tmpstr, 1);
780                tmpstr = string_replace_all("Neue Filme - ", "", tmpstr, 1);
781                tmpstr = string_replace_all("Movies (Year) - ", "", tmpstr, 1);
782                tmpstr = string_replace_all("Movies (Genre) - ", "", tmpstr, 1);
783                tmpstr = string_replace_all("Series - ", "", tmpstr, 1);
784
785        //      tmpstr = ostrcat(tmpstr, ((struct tithek*)listbox->select->handle)->title, 1, 0);
786        //      tmpstr = ostrcat(tmpstr, title2, 1, 0);
787
788                tmpstr = ostrcat(tmpstr, ".mp4", 1, 0);
789                tmpstr = string_replace_all("/", ".", tmpstr, 1);
790                tmpstr = string_replace_all(" ", ".", tmpstr, 1);
791                tmpstr = string_replace_all("-", "_", tmpstr, 1);
792                tmpstr = string_replace_all("._.", "_", tmpstr, 1);
793                tmpstr = string_replace_all(".._", "_", tmpstr, 1);
794                tmpstr = string_replace_all("..", ".", tmpstr, 1);
795        }
796        else
797        {
798                tmpstr = string_replace_all(" - ", "_", tmpstr, 1);
799        //      filename = string_replace_all(") (", ")_(", filename, 1);
800                tmpstr = string_replace_all(" ", ".", tmpstr, 1);
801                tmpstr = string_replace_all("(", "", tmpstr, 1);
802                tmpstr = string_replace_all(")", "", tmpstr, 1);
803                tmpstr = string_replace_all("/", ".", tmpstr, 1);
804
805        }
806
807        if(flag == 0)
808                filename = ostrcat("/mnt/swapextensions/player/", tmpstr, 0, 0);
809        else if(flag == 1)
810                filename = ostrcat("/mnt/swapextensions/player/FAV_", tmpstr, 0, 0);
811        else
812                filename = ostrcat(tmpstr, NULL, 0, 0);
813
814        free(tmpstr), tmpstr = NULL;
815        debug(99, "filename: %s", filename);
816
817        return filename;
818}
819
820
821
822int all_search_local(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title, char* searchstr, int flag)
823{
824        char* tmpstr = NULL, *tmpstr1 = NULL, *line = NULL, *menu = NULL, *search = NULL;
825        int ret = 1, count = 0, i = 0;
826
827        if(listbox == NULL || listbox->select == NULL || listbox->select->handle == NULL)
828                return ret;
829
830        if(searchstr == NULL)
831                search = textinputhist(_("Search"), " ", "searchhist");
832        else
833                search = textinputhist(_("Search"), searchstr, "searchhist");
834
835        if(search != NULL)
836        {
837                drawscreen(load, 0, 0);
838
839                strstrip(search);
840                string_tolower(search);
841
842                tmpstr = gethttp("atemio.dyndns.tv", "/mediathek/all/all-sorted.list", 80, NULL, HTTPAUTH, 5000, NULL, 0);
843
844                struct splitstr* ret1 = NULL;
845                ret1 = strsplit(tmpstr, "\n", &count);
846
847                if(ret1 != NULL)
848                {
849                        int max = count;
850                        for(i = 0; i < max; i++)
851                        {
852                       
853                                tmpstr1 = ostrcat(ret1[i].part, NULL, 0, 0);
854                                tmpstr1 = stringreplacecharonce(tmpstr1, '#', '\0');
855                                string_tolower(tmpstr1);
856
857                                if(ostrstr(tmpstr1, search) != NULL)
858                                {
859                                        printf("found: %s\n", ret1[i].part);
860                                        int rcret = waitrc(NULL, 10, 0);
861                                        if(rcret == getrcconfigint("rcexit", NULL)) break;
862
863                                        line = ostrcat(line, ret1[i].part, 1, 0);
864                                        line = ostrcat(line, "\n", 0, 0);
865                                }
866                                free(tmpstr1), tmpstr1 = NULL;                         
867                        }
868                        free(ret1), ret1 = NULL;
869
870                        if(line != NULL)
871                        {
872                                line = string_replace_all("http://atemio.dyndns.tv/", "http://imageshack.us/md/up/grd/", line, 1);
873                                menu = ostrcat("/tmp/tithek/all.search.list", NULL, 0, 0);
874                                writesys(menu, line, 0);
875                                struct tithek* tnode = (struct tithek*)listbox->select->handle;
876                                createtithek(tnode, tnode->title, menu, tnode->pic, tnode->localname, tnode->menutitle, tnode->flag);
877                                ret = 0;
878                        }
879                }
880                free(tmpstr), tmpstr = NULL;
881        }
882        free(search), search = NULL;
883        return ret;
884}
885
886char* jsunpack(char* input)
887{
888        int debuglevel = getconfigint("debuglevel", NULL);
889
890        if(input == NULL) return input;
891
892        char* b36code = NULL, *search = NULL, *charlist = NULL, *base = NULL, *tmpstr2 = NULL, *tmpstr3 = NULL, *tmpstr = NULL, *packed = NULL;
893
894        unlink("/tmp/jsunpack1_packed");
895        unlink("/tmp/jsunpack2_tmpstr");
896        unlink("/tmp/jsunpack3_b36code");
897        unlink("/tmp/jsunpack4_tmpstr_last");
898
899//eval(function(p,a,c,k,e,d){while(c--)if(k[c])p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k[c]);return p}('1k.1j(\'<c 13="1i"1h="1g:1f-1e-1d-1c-1b"u="t"s="r"1a="3://h.9.g/f/19.18"><2 1="y"0="x"/><2 1="w"0="v"/><2 1="a"0="3://8.7.6.5/i/q/p.o"/><2 1="l"0="4"><2 1="m"0="4"/><2 1="k"0="j"/><2 1="n"0="4"/><2 1="12"0="3://8.7.6.5:11/d/10/b.z"/><e 13="17"16="b/9"12="3://8.7.6.5:11/d/10/b.z"y="x"w="v"u="t"s="r"a="3://8.7.6.5/i/q/p.o"n="4"m="4"a=""l="4"k="j"15="3://h.9.g/f/14/"></e></c>\');',36,57,'value|name|param|http|false|240|30|56|185|divx|previewImage|video|object||embed|plugin|com|go||Play|previewMessage|allowContextMenu|bannerEnabled|autoPlay|jpg|rezh7ogkvg6b|00004|380|height|715|width|transparent|wmode|Stage6|custommode|mkv|s4umuuk7gii5uaadrm5a76s7fd4bjlcti2r3v6bsa5d6yryt4dawmiqg|182|src|id|download|pluginspage|type|np_vid|cab|DivXBrowserPlugin|codebase|CC0F21721616|9C46|41fa|D0AB|67DABFBF|clsid|classid|ie_vid|write|document'.split('|')))
900
901//eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('3.2(\'<0 4\'.1(\'8="\'+\'/5\'.1(\'/\'+7+\'">\\6/0>\')))',9,9,'script|concat|write|document|s|jwv|x3C|mpri_Key|rc'.split('|'),0,{}))
902
903        while(ostrstr(input, "eval(function(p,a,c,k,e,d){") != NULL)
904        {
905                packed = string_resub("eval(function(p,a,c,k,e,d){", "}))", input, 0);
906                if(packed == NULL)
907                        packed = string_resub("eval(function(p,a,c,k,e,d){", "))", input, 0);
908
909                titheklog(debuglevel, "/tmp/jsunpack1_packed", NULL, NULL, NULL, packed);       
910       
911//              tmpstr = string_resub(";return p}('", ");'", packed, 0);
912//              tmpstr = oregex(".*;return p}(.*)',[0-9]{2,2},[0-9]{2,2},'.*'.split.*", packed);
913//              tmpstr = oregex(".*;return p}(.*)',[0-9]{1,3},[0-9]{1,3},'.*'.split.*", packed);
914                tmpstr = oregex(".*return p}(.*)',[0-9]{1,3},[0-9]{1,3},'.*'.split.*", packed);
915
916                debug(99, "tmpstr: %s", tmpstr);
917                titheklog(debuglevel, "/tmp/jsunpack2_packed_tmpstr", NULL, NULL, NULL, tmpstr);
918       
919//              b36code = oregex(".*;',[0-9]{2,2},[0-9]{2,2},'(.*)'.split.*", packed);
920                b36code = oregex(".*',[0-9]{1,3},[0-9]{1,3},'(.*)'.split.*", packed);
921               
922                b36code = string_replace_all("||", "| |", b36code, 1);
923                debug(99, "b36code: %s", b36code);
924                titheklog(debuglevel, "/tmp/jsunpack3_packed_b36code", NULL, NULL, NULL, b36code);
925
926                if(!ostrncmp("|", b36code, 1))
927                        b36code = ostrcat(" ", b36code, 0, 1);
928
929                struct splitstr* ret1 = NULL;
930                int count = 0;
931                int i = 0;
932                ret1 = strsplit(b36code, "|", &count);
933       
934                charlist = ostrcat(charlist, "\"", 1, 0);
935                charlist = ostrcat(charlist, "|", 1, 0);
936                charlist = ostrcat(charlist, "'", 1, 0);
937                charlist = ostrcat(charlist, "|", 1, 0);
938                charlist = ostrcat(charlist, ".", 1, 0);
939                charlist = ostrcat(charlist, "|", 1, 0);
940                charlist = ostrcat(charlist, ";", 1, 0);
941                charlist = ostrcat(charlist, "|", 1, 0);
942                charlist = ostrcat(charlist, ":", 1, 0);
943                charlist = ostrcat(charlist, "|", 1, 0);
944                charlist = ostrcat(charlist, "=", 1, 0);
945                charlist = ostrcat(charlist, "|", 1, 0);
946                charlist = ostrcat(charlist, ",", 1, 0);
947                charlist = ostrcat(charlist, "|", 1, 0);
948                charlist = ostrcat(charlist, " ", 1, 0);
949                charlist = ostrcat(charlist, "|", 1, 0);
950                charlist = ostrcat(charlist, "\\", 1, 0);
951                charlist = ostrcat(charlist, "|", 1, 0);
952                charlist = ostrcat(charlist, "/", 1, 0);
953                charlist = ostrcat(charlist, "|", 1, 0);
954                charlist = ostrcat(charlist, "(", 1, 0);
955                charlist = ostrcat(charlist, "|", 1, 0);
956                charlist = ostrcat(charlist, ")", 1, 0);
957                charlist = ostrcat(charlist, "'", 1, 0);
958                charlist = ostrcat(charlist, "%", 1, 0);
959       
960                for(i = 0; i < count; i++)
961                {
962                        if(ostrstr((&ret1[i])->part, " ") != NULL)
963                        {
964                                printf("continue\n");
965                                continue;
966                        }
967                        char* x = oltostr(i, 36);
968       
969                        struct splitstr* ret2 = NULL;
970                        int count2 = 0;
971                        int i2 = 0;
972                        tmpstr2 = ostrcat(charlist, NULL, 0, 0);
973                        ret2 = strsplit(tmpstr2, "|", &count2);
974                        for(i2 = 0; i2 < count2; i2++)
975                        {
976                                struct splitstr* ret3 = NULL;
977                                int count3 = 0;
978                                int i3 = 0;
979                                tmpstr3 = ostrcat(charlist, NULL, 0, 0);
980                                ret3 = strsplit(tmpstr3, "|", &count3);
981                                for(i3 = 0; i3 < count3; i3++)
982                                {
983                                        debug(99, "-----------------------------------------------");
984                                        debug(99, "replace %s%s%s <> %s%s%s",(&ret2[i2])->part, x, (&ret3[i3])->part, (&ret2[i2])->part, (&ret1[i])->part, (&ret3[i3])->part);
985       
986                                        base = ostrcat(base, (&ret2[i2])->part, 1, 0);
987                                        base = ostrcat(base, x, 1, 0);
988                                        base = ostrcat(base, (&ret3[i3])->part, 1, 0);         
989                                        search = ostrcat(search, (&ret2[i2])->part, 1, 0);
990                                        search = ostrcat(search, (&ret1[i])->part, 1, 0);
991                                        search = ostrcat(search, (&ret3[i3])->part, 1, 0);
992                                        tmpstr = string_replace_all(base, search, tmpstr, 1);
993                                        free(base), base = NULL;
994                                        free(search), search = NULL;
995                                }
996                                free(ret3), ret3 = NULL;
997                                free(tmpstr3), tmpstr3 = NULL;
998                        }
999                        free(ret2), ret2 = NULL;
1000                        free(tmpstr2), tmpstr2 = NULL;
1001                        free(x);
1002                }
1003                free(ret1), ret1 = NULL;
1004       
1005                titheklog(debuglevel, "/tmp/jsunpack4_packed_tmpstr_last", NULL, NULL, NULL, tmpstr);
1006
1007                if(tmpstr == NULL)
1008                        input = string_replace("eval(function(p,a,c,k,e,d){", "eval(function(p,a,c,k,e,d-extracted-error){", input, 1);
1009                else
1010                {
1011                        input = string_replace("eval(function(p,a,c,k,e,d){", "eval(function(p,a,c,k,e,d-extracted){", input, 1);
1012                        input = string_replace(packed, tmpstr, input, 1);
1013                }
1014                free(tmpstr),tmpstr = NULL;
1015                free(packed), packed = NULL;
1016                free(b36code), b36code = NULL;
1017                free(charlist), charlist = NULL;
1018        }
1019
1020//eval(function(p,a,c,k,e,r){e=function(c){return c.toString(36)};if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'[2-9k-t]'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('k p(a){5 b="s=1",c="t=l";7(a&&a.8&&a.8.9>0)6(5 d=0;d<a.8.9;d++){5 e=a.8[d],f=["r","m"];6(5 g n f){5 h=f[g];7(e&&e[h])6(5 i=e[h],j=0;j<i.9;j++)i[j]&&i[j].2&&(i[j].2+=(-1==i[j].2.o("?")?"?":"&")+"4=3&"+b+"&"+c)}}q a}',[],30,'||file|false|direct|var|for|if|playlist|length|||||||||||function|g2wppbatyvegydjngpim4hp5rl6ammlhkneq3sdgfqh5woiym753qlis6o6737kceon73boksojlkppwz744cta5i2kpzwwdsh3hrjqq3eiwcysqmy6aerlaeszaptrregtvpdfsdaiy4idwqdlack4abotyacmth2a253x5lrvvul7dxs6kligge5dufn6eofjjxex7vzljmvrrv4dnb4xlbn3hvb67c2pgc7y|httpfallback|in|indexOf|jwConfig|return|sources|ua|vt'.split('|'),0,{}))
1021
1022        while(ostrstr(input, "eval(function(p,a,c,k,e,r){") != NULL)
1023        {
1024                packed = string_resub("eval(function(p,a,c,k,e,r){", "))", input, 0);
1025                titheklog(debuglevel, "/tmp/jsunpack1_packed", NULL, NULL, NULL, packed);       
1026       
1027//              tmpstr = string_resub(";return p}('", ");'", packed, 0);
1028//              tmpstr = oregex(".*;return p}(.*)',[0-9]{2,2},[0-9]{2,2},'.*'.split.*", packed);
1029                tmpstr = oregex(".*;return p}(.*)',[0-9]{1,3},[0-9]{1,3},'.*'.split.*", packed);
1030
1031                debug(99, "tmpstr: %s", tmpstr);
1032                titheklog(debuglevel, "/tmp/jsunpack2_packed_tmpstr", NULL, NULL, NULL, tmpstr);
1033       
1034//              b36code = oregex(".*;',[0-9]{2,2},[0-9]{2,2},'(.*)'.split.*", packed);
1035                b36code = oregex(".*',[0-9]{1,3},[0-9]{1,3},'(.*)'.split.*", packed);
1036               
1037                b36code = string_replace_all("||", "| |", b36code, 1);
1038                debug(99, "b36code: %s", b36code);
1039                titheklog(debuglevel, "/tmp/jsunpack3_packed_b36code", NULL, NULL, NULL, b36code);
1040
1041                if(!ostrncmp("|", b36code, 1))
1042                        b36code = ostrcat(" ", b36code, 0, 1);
1043
1044                struct splitstr* ret1 = NULL;
1045                int count = 0;
1046                int i = 0;
1047                ret1 = strsplit(b36code, "|", &count);
1048       
1049                charlist = ostrcat(charlist, "\"", 1, 0);
1050                charlist = ostrcat(charlist, "|", 1, 0);
1051                charlist = ostrcat(charlist, "'", 1, 0);
1052                charlist = ostrcat(charlist, "|", 1, 0);
1053                charlist = ostrcat(charlist, ".", 1, 0);
1054                charlist = ostrcat(charlist, "|", 1, 0);
1055                charlist = ostrcat(charlist, ";", 1, 0);
1056                charlist = ostrcat(charlist, "|", 1, 0);
1057                charlist = ostrcat(charlist, ":", 1, 0);
1058                charlist = ostrcat(charlist, "|", 1, 0);
1059                charlist = ostrcat(charlist, "=", 1, 0);
1060                charlist = ostrcat(charlist, "|", 1, 0);
1061                charlist = ostrcat(charlist, ",", 1, 0);
1062                charlist = ostrcat(charlist, "|", 1, 0);
1063                charlist = ostrcat(charlist, " ", 1, 0);
1064                charlist = ostrcat(charlist, "|", 1, 0);
1065                charlist = ostrcat(charlist, "\\", 1, 0);
1066                charlist = ostrcat(charlist, "|", 1, 0);
1067                charlist = ostrcat(charlist, "/", 1, 0);
1068                charlist = ostrcat(charlist, "|", 1, 0);
1069                charlist = ostrcat(charlist, "(", 1, 0);
1070                charlist = ostrcat(charlist, "|", 1, 0);
1071                charlist = ostrcat(charlist, ")", 1, 0);
1072                charlist = ostrcat(charlist, "'", 1, 0);
1073                charlist = ostrcat(charlist, "%", 1, 0);
1074       
1075                for(i = 0; i < count; i++)
1076                {
1077                        if(ostrstr((&ret1[i])->part, " ") != NULL)
1078                        {
1079                                printf("continue\n");
1080                                continue;
1081                        }
1082                        char* x = oltostr(i, 36);
1083       
1084                        struct splitstr* ret2 = NULL;
1085                        int count2 = 0;
1086                        int i2 = 0;
1087                        tmpstr2 = ostrcat(charlist, NULL, 0, 0);
1088                        ret2 = strsplit(tmpstr2, "|", &count2);
1089                        for(i2 = 0; i2 < count2; i2++)
1090                        {
1091                                struct splitstr* ret3 = NULL;
1092                                int count3 = 0;
1093                                int i3 = 0;
1094                                tmpstr3 = ostrcat(charlist, NULL, 0, 0);
1095                                ret3 = strsplit(tmpstr3, "|", &count3);
1096                                for(i3 = 0; i3 < count3; i3++)
1097                                {
1098                                        debug(99, "-----------------------------------------------");
1099                                        debug(99, "replace %s%s%s <> %s%s%s",(&ret2[i2])->part, x, (&ret3[i3])->part, (&ret2[i2])->part, (&ret1[i])->part, (&ret3[i3])->part);
1100       
1101                                        base = ostrcat(base, (&ret2[i2])->part, 1, 0);
1102                                        base = ostrcat(base, x, 1, 0);
1103                                        base = ostrcat(base, (&ret3[i3])->part, 1, 0);         
1104                                        search = ostrcat(search, (&ret2[i2])->part, 1, 0);
1105                                        search = ostrcat(search, (&ret1[i])->part, 1, 0);
1106                                        search = ostrcat(search, (&ret3[i3])->part, 1, 0);
1107                                        tmpstr = string_replace_all(base, search, tmpstr, 1);
1108                                        free(base), base = NULL;
1109                                        free(search), search = NULL;
1110                                }
1111                                free(ret3), ret3 = NULL;
1112                                free(tmpstr3), tmpstr3 = NULL;
1113                        }
1114                        free(ret2), ret2 = NULL;
1115                        free(tmpstr2), tmpstr2 = NULL;
1116                        free(x);
1117                }
1118                free(ret1), ret1 = NULL;
1119       
1120                titheklog(debuglevel, "/tmp/jsunpack4_packed_tmpstr_last", NULL, NULL, NULL, tmpstr);
1121
1122                if(tmpstr == NULL)
1123                        input = string_replace("eval(function(p,a,c,k,e,d){", "eval(function(p,a,c,k,e,d-extracted-error){", input, 1);
1124                else
1125                {
1126                        input = string_replace("eval(function(p,a,c,k,e,d){", "eval(function(p,a,c,k,e,d-extracted){", input, 1);
1127                        input = string_replace(packed, tmpstr, input, 1);
1128                }
1129                free(tmpstr),tmpstr = NULL;
1130                free(packed), packed = NULL;
1131                free(b36code), b36code = NULL;
1132                free(charlist), charlist = NULL;
1133        }
1134
1135        return input;
1136}
1137
1138void localparser_init(char* titheklink, char* tithekfile, int flag)
1139{
1140        char* tmpstr = NULL, *tmpstr1 = NULL, *tmpstr2 = NULL, *cmd = NULL, *line = NULL, *path = NULL;
1141        struct skin* load = getscreen("loading");
1142
1143        if(ostrcmp("http://atemio.dyndns.tv/mediathek/mainmenu.list", titheklink) == 0)
1144        {
1145                path = ostrcat("/tmp/localparser", NULL, 0, 0);
1146                drawscreen(load, 0, 0);
1147
1148                char* titheklocalfile = ostrcat("/tmp/tithek/mainmenu.local.list", NULL, 0, 0);
1149
1150                if(flag == 1)
1151                {
1152                        if(!file_exist("/tmp/localhoster"))
1153                                mkdir("/tmp/localhoster", 0777);
1154                        if(!file_exist("/mnt/parser"))
1155                                mkdir("/mnt/parser", 0777);
1156                        if(!file_exist(path))
1157                                mkdir(path, 0777);
1158       
1159                        gethttp("atemio.dyndns.tv", "/mediathek/parser_free.tar", 80, "/tmp/parser.tar", HTTPAUTH, 5000, NULL, 0);
1160       
1161                        cmd = ostrcat("tar -xf /tmp/parser.tar -C ", path, 0, 0);
1162                        printf("[tithek] start cmd: %s\n", cmd);
1163                        system(cmd);
1164                        printf("[tithek] ende cmd: %s\n", cmd);
1165                        free(cmd), cmd = NULL;
1166                        unlink("/tmp/parser.tar");
1167                        printf("[tithek] remove: /tmp/parser.tar\n");
1168       
1169                        if(file_exist("/mnt/swapextensions/etc/.codecpack") || file_exist("/var/swap/etc/.codecpack") || file_exist("/var/etc/.codecpack"))
1170                        {
1171                                gethttp("atemio.dyndns.tv", "/mediathek/parser_secret.tar", 80, "/tmp/parser.tar", HTTPAUTH, 5000, NULL, 0);
1172                                cmd = ostrcat("tar -xf /tmp/parser.tar -C ", path, 0, 0);
1173                                printf("[tithek] start cmd: %s\n", cmd);
1174                                system(cmd);
1175                                printf("[tithek] ende cmd: %s\n", cmd);
1176                                free(cmd), cmd = NULL;
1177                                printf("[tithek] remove: /tmp/parser.tar\n");
1178                                unlink("/tmp/parser.tar");
1179                        }
1180       
1181                        gethttp("atemio.dyndns.tv", "/mediathek/hoster.tar", 80, "/tmp/hoster.tar", HTTPAUTH, 5000, NULL, 0);
1182                        cmd = ostrcat("tar -xf /tmp/hoster.tar -C ", "/tmp/localhoster", 0, 0);
1183                        printf("[tithek] start cmd: %s\n", cmd);
1184                        system(cmd);
1185                        printf("[tithek] ende cmd: %s\n", cmd);
1186                        free(cmd), cmd = NULL;
1187                        printf("[tithek] remove: /tmp/hoster.tar\n");
1188                        unlink("/tmp/hoster.tar");
1189
1190                        //dnode is freed in thread
1191                        struct download* dnode = calloc(1, sizeof(struct download));
1192                        if(dnode != NULL)
1193                        {
1194                                dnode->host = ostrcat("atemio.dyndns.tv", NULL, 0, 0);
1195                                dnode->page = ostrcat("/mediathek/python.tar", NULL, 0, 0);     
1196                                dnode->port = 80;
1197                                dnode->filename = ostrcat("/tmp/python.tar", NULL, 0, 0);
1198
1199                                printf("[tithek] getfreespace start\n");
1200       
1201                                if(getfreespace("/mnt") / 1024 > 102400) //100mb
1202                                {
1203                                        mkdir("/mnt/.tithek", 0777);
1204                                        if(file_exist("/mnt/.tithek"))
1205                                                dnode->filename = ostrcat("/mnt/.tithek/python.tar", NULL, 0, 0);
1206                                        dnode->page = ostrcat("/mediathek/python_full.tar", NULL, 0, 0);
1207                                        symlink("/mnt/.tithek/lib", "/tmp/localhoster/lib");
1208                                }
1209                                else if(file_exist("/media/hdd") && getfreespace("/media/hdd") / 1024 > 102400)
1210                                {
1211                                        mkdir("/media/hdd/.tithek", 0777);
1212                                        if(file_exist("/media/hdd/.tithek"))
1213                                                dnode->filename = ostrcat("/media/hdd/.tithek/python.tar", NULL, 0, 0);
1214                                        dnode->page = ostrcat("/mediathek/python_full.tar", NULL, 0, 0);
1215                                        symlink("/media/hdd/.tithek/lib", "/tmp/localhoster/lib");
1216                                }
1217                                else if(file_exist("/var/swap") && getfreespace("/var/swap") / 1024 > 102400)
1218                                {
1219                                        mkdir("/var/swap/.tithek", 0777);
1220                                        if(file_exist("/var/swap/.tithek"))
1221                                                dnode->filename = ostrcat("/var/swap/.tithek/python.tar", NULL, 0, 0);
1222                                        dnode->page = ostrcat("/mediathek/python_full.tar", NULL, 0, 0);
1223                                        symlink("/var/swap/.tithek/lib", "/tmp/localhoster/lib");
1224                                }
1225                                else if(getfreespace("/tmp") / 1024 > 102400)
1226                                {
1227                                        dnode->filename = ostrcat("/tmp/python.tar", NULL, 0, 0);
1228                                        dnode->page = ostrcat("/mediathek/python_full.tar", NULL, 0, 0);                                                       
1229                                }
1230                                printf("[tithek] getfreespace end\n");
1231
1232//                              if(ostrcmp(dnode->page, "/tmp/python.tar") == 0 || getconfigint("tithek_autoupdate", NULL) == 1)
1233                                if(getconfigint("tithek_autoupdate", NULL) == 1)
1234                                {
1235                                        if(file_exist(dnode->filename))
1236                                        {
1237                                                printf("[tithek] remove before download: %s\n", dnode->page);
1238                                                unlink(dnode->filename);
1239                                        }
1240                                }
1241                       
1242                                dnode->auth = ostrcat(HTTPAUTH, NULL, 0, 0);
1243                                dnode->connfd = -1;
1244                                dnode->ret = -1;
1245                                dnode->timeout = 10000;
1246                                addtimer(&tithekdownloadthread, START, 100, 1, (void*)dnode, NULL, NULL);
1247                        }
1248
1249                        cmd = ostrcat("chmod -R 755 ", path, 0, 0);
1250                        system(cmd);
1251                        free(cmd), cmd = NULL;
1252       
1253                        cmd = ostrcat("chmod -R 755 /mnt/parser", NULL, 0, 0);
1254                        system(cmd);
1255                        free(cmd), cmd = NULL;
1256       
1257                        cmd = ostrcat("chmod -R 755 /tmp/localhoster", NULL, 0, 0);
1258                        system(cmd);
1259                        free(cmd), cmd = NULL;
1260//                      }
1261       
1262                        cmd = ostrcat("ls -1 ", path, 0, 0);
1263                        cmd = ostrcat(cmd, "/*.sh", 1, 0);
1264       
1265                        free(path), path = NULL;
1266                        tmpstr1 = command("ls -1 /mnt/parser/*.sh");
1267                        tmpstr2 = command(cmd);
1268                        free(cmd), cmd = NULL;
1269                        tmpstr = ostrcat(tmpstr1, "\n", 0, 0);
1270                        tmpstr = ostrcat(tmpstr, tmpstr2, 1, 0);
1271       
1272                        int count = 0, i = 0;
1273                        struct splitstr* ret1 = NULL;
1274                        ret1 = strsplit(tmpstr, "\n", &count);
1275               
1276                        int max = count;
1277                        for(i = 0; i < max; i++)
1278                        {
1279                                if(file_exist(ret1[i].part) && cmpfilenameext(ret1[i].part, ".sh") == 0)
1280                                {
1281                                        cmd = ostrcat(ret1[i].part, " ", 0, 0);
1282                                        cmd = ostrcat(cmd, ret1[i].part, 1, 0);
1283                                        cmd = ostrcat(cmd, " init", 1, 0);
1284                                        line = command(cmd);
1285                                        line = string_newline(line);
1286                                        printf("[tithek] cmd: %s\n", cmd);
1287                                        debug(99, "add main menuentry: %s", line);
1288                                        writesys(titheklocalfile, line, 3);
1289                                        free(cmd), cmd = NULL;
1290                                        free(line), line = NULL;
1291                                }
1292                        }
1293                        free(ret1), ret1 = NULL;
1294                        free(tmpstr), tmpstr = NULL;
1295                        free(tmpstr1), tmpstr1 = NULL;
1296                        free(tmpstr2), tmpstr2 = NULL;
1297                }
1298
1299                line = readfiletomem(titheklocalfile, 1);
1300                free(titheklocalfile), titheklocalfile = NULL;
1301                writesys(tithekfile, line, 3);
1302
1303                clearscreen(load);
1304        }
1305
1306}
1307
1308char* list_hoster_streams(char* input)
1309{
1310        char* streamurl = NULL, *tmpstr = NULL, *nummer = NULL, *title = NULL, *pic = NULL, *filename = NULL;
1311
1312        int count = 0, i = 0;   
1313
1314        filename = ostrcat(input, NULL, 0, 0); 
1315
1316        if(ostrncmp("/tmp/", filename, 5) && ostrncmp("/mnt/", filename, 5))
1317                return filename;
1318        else
1319        {
1320                debug(10, "Streamfile found: %s", input);
1321                debug(99, "Streamfile found: %s", input);
1322        }
1323
1324//      tmpstr = ostrcat(link, NULL, 0, 0);
1325        tmpstr = readfiletomem(filename, 1);
1326
1327        struct splitstr* ret1 = NULL;
1328        struct menulist* mlist = NULL, *mbox = NULL;
1329//      ret1 = strsplit(string_decode(tmpstr2, 0), "\n", &count);
1330        ret1 = strsplit(tmpstr, "\n", &count);
1331        for(i = 0; i < count; i++)
1332        {
1333//              if(ret1[i].part != NULL && ostrstr(ret1[i].part, "_quality") != NULL)
1334                if(ret1[i].part != NULL)
1335                {
1336               
1337                        if(ostrstr(ret1[i].part, "f4m") != NULL)
1338                                pic = ostrcat("f4m.png", NULL, 0, 0);
1339                        else if(ostrstr(ret1[i].part, "mp4") != NULL)
1340                                pic = ostrcat("mp4.png", NULL, 0, 0);
1341                        else if(ostrstr(ret1[i].part, "3gp") != NULL)
1342                                pic = ostrcat("3gp.png", NULL, 0, 0);
1343                        else if(ostrstr(ret1[i].part, "flv") != NULL)
1344                                pic = ostrcat("flv.png", NULL, 0, 0);
1345                        else if(ostrstr(ret1[i].part, "hls") != NULL)
1346                                pic = ostrcat("hls.png", NULL, 0, 0);
1347                        else if(ostrstr(ret1[i].part, "mkv") != NULL)
1348                                pic = ostrcat("mkv.png", NULL, 0, 0);
1349
1350                        if(ostrstr(ret1[i].part, "1080p") != NULL)
1351                                nummer = ostrcat("1080p", NULL, 0, 0);
1352                        else if(ostrstr(ret1[i].part, "1080i") != NULL)
1353                                nummer = ostrcat("1080i", NULL, 0, 0);
1354                        else if(ostrstr(ret1[i].part, "1080") != NULL)
1355                                nummer = ostrcat("1080", NULL, 0, 0);
1356                        else if(ostrstr(ret1[i].part, "720p") != NULL)
1357                                nummer = ostrcat("720p", NULL, 0, 0);
1358                        else if(ostrstr(ret1[i].part, "720") != NULL)
1359                                nummer = ostrcat("720", NULL, 0, 0);
1360                        else if(ostrstr(ret1[i].part, "360p") != NULL)
1361                                nummer = ostrcat("360p", NULL, 0, 0);
1362                        else if(ostrstr(ret1[i].part, "360") != NULL)
1363                                nummer = ostrcat("360", NULL, 0, 0);
1364                        else if(ostrstr(ret1[i].part, "hls") != NULL)
1365                                nummer = ostrcat("hls", NULL, 0, 0);
1366                        else if(ostrstr(ret1[i].part, "auto") != NULL)
1367                                nummer = ostrcat("auto", NULL, 0, 0);
1368
1369                        title = ostrcat(ret1[i].part, NULL, 0, 0);
1370                        title = stringreplacecharonce(title, ':', '\0');
1371                        string_toupper(title);
1372                        title = ostrcat(title, " Stream", 1, 0);
1373
1374                        streamurl = ostrcat(ret1[i].part, NULL, 0, 0);
1375                        if(nummer != NULL)
1376                        {
1377                                title = ostrcat(title, " (", 1, 0);
1378                                title = ostrcat(title, nummer, 1, 0);
1379                                title = ostrcat(title, ")", 1, 0);
1380                        }
1381                        debug(99, "(%d) title: %s streamurl: %s\n", i, title, streamurl);                                                                                                                                                                                                       
1382                        addmenulist(&mlist, title, streamurl, pic, 0, 0);
1383
1384                        free(title), title = NULL;
1385                        free(pic), pic = NULL;
1386                        free(nummer), nummer = NULL;
1387                        free(streamurl), streamurl = NULL;
1388                }
1389        }
1390        free(ret1), ret1 = NULL;
1391
1392        if(mlist != NULL)
1393        {
1394                mbox = menulistbox(mlist, NULL, _("Stream Menu"), _("Choose your Streaming Format from the following list"), NULL, NULL, 1, 0);
1395                if(mbox != NULL)
1396                {
1397                        free(streamurl), streamurl = NULL;
1398
1399                        debug(99, "mbox->name %s", mbox->name);
1400                        debug(99, "mbox->text %s", mbox->text);
1401                        streamurl = ostrcat(mbox->text, NULL, 0, 0);
1402                }
1403        }
1404        free(tmpstr); tmpstr = NULL;
1405
1406        if(streamurl == NULL)
1407        {
1408                debug(10, "Streamfile choice canceld by USER set Streamurl to skip");
1409                debug(99, "Streamfile choice canceld by USER set Streamurl to skip");
1410
1411                streamurl = ostrcat("skip", NULL, 0, 0);
1412        }
1413
1414        return streamurl;
1415}
1416
1417char* localparser_hoster(char* link)
1418{
1419        debug(99, "link: %s", link);
1420        int ret = 1;
1421        char* tmpstr = NULL, *streamurl = NULL;
1422
1423        tmpstr = command(link);
1424        tmpstr = string_newline(tmpstr);
1425        debug(99, "tmpstr: %s", tmpstr);
1426
1427        if(ostrstr(tmpstr, "gethoster2") != NULL)
1428        {
1429                tmpstr = string_replace_all("gethoster2 ", "", tmpstr, 1);
1430                streamurl = hoster(tmpstr);
1431        }
1432        else if(ostrstr(link, ".sh play ") != NULL)
1433                streamurl = ostrcat(tmpstr, NULL, 0, 0);
1434        else if(ostrstr(link, ".sh hoster ") != NULL)
1435                streamurl = hoster(tmpstr);
1436
1437        free(tmpstr), tmpstr = NULL;
1438        return streamurl;
1439}
1440
1441int localparser_search(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title, char* searchstr, int flag)
1442{
1443        char* tmpstr = NULL, *menu = NULL, *search = NULL, *cmd = NULL;
1444        int ret = 1;
1445
1446        if(listbox == NULL || listbox->select == NULL || listbox->select->handle == NULL)
1447                return ret;
1448
1449        if(searchstr == NULL)
1450                search = textinputhist(_("Search"), " ", "searchhist");
1451        else
1452                search = textinputhist(_("Search"), searchstr, "searchhist");
1453
1454        if(search != NULL)
1455        {
1456                drawscreen(load, 0, 0);
1457
1458                strstrip(search);
1459                string_tolower(search);
1460                search = stringreplacechar(search, ' ', '+');
1461
1462                cmd = ostrcat(link, NULL, 0, 0);
1463
1464                if(ostrstr(cmd, "%search%") != NULL)
1465                        cmd = string_replace_all("%search%", search, cmd, 1);
1466                else
1467                        cmd = ostrcat(link, search, 0, 0);
1468
1469                debug(99, "cmd: %s", cmd);
1470                char* filename = command(cmd);
1471                filename = string_newline(filename);
1472                tmpstr = readfiletomem(filename, 1);
1473                free(cmd), cmd = NULL;
1474
1475                if(tmpstr != NULL)
1476                {
1477                        tmpstr = string_replace_all("http://atemio.dyndns.tv/", "http://imageshack.us/md/up/grd/", tmpstr, 1);
1478                        menu = ostrcat(filename, NULL, 0, 0);
1479//                      writesys(menu, tmpstr, 0);
1480                        struct tithek* tnode = (struct tithek*)listbox->select->handle;
1481                        createtithek(tnode, tnode->title, menu, tnode->pic, tnode->localname, tnode->menutitle, tnode->flag);
1482                        ret = 0;
1483                }
1484
1485                free(filename), filename = NULL;
1486                free(tmpstr), tmpstr = NULL;
1487        }
1488        free(search), search = NULL;
1489        return ret;
1490}
1491
1492#endif
Note: See TracBrowser for help on using the repository browser.