source: titan/plugins/tithek/movie4k.h

Last change on this file was 38016, checked in by obi, 4 years ago

fix

File size: 39.0 KB
Line 
1#ifndef MOVIE4K_H
2#define MOVIE4K_H
3
4// flag 1 = putlocker/sockshare
5// flag 2 = filenuke
6
7char* movie4k(char* link)
8{
9        debug(99, "link: %s", link);
10        int debuglevel = getconfigint("debuglevel", NULL);
11        char* tmpstr = NULL, *tmpstr1 = NULL, *tmpstr2 = NULL, *url = NULL, *streamurl = NULL, *tmppath = NULL, *tmphost = NULL, *pos = NULL;
12        titheklog(debuglevel, "/tmp/movie4k_streamurl_url0", NULL, NULL, NULL, link);
13
14        if(link == NULL || ostrncmp("http://", link, 7)) return NULL;
15
16        tmphost = string_replace("http://", "", (char*)link, 0);
17
18        if(tmphost != NULL)
19                pos = strchr(tmphost, '/');
20        if(pos != NULL)
21        {
22                pos[0] = '\0';
23                tmppath = pos + 1;
24        }
25
26//      tmpstr1 = gethttp(tmphost, tmppath, 80, NULL, NULL, 10000, NULL, 0);
27        tmpstr1 = gethttps(link, NULL, NULL, NULL, NULL, NULL, 1);
28
29        titheklog(debuglevel, "/tmp/movie4k_streamurl_tmpstr1_a", NULL, NULL, NULL, tmpstr1);
30
31        tmpstr = string_resub("question.png", "underplayer", tmpstr1, 0);
32        titheklog(debuglevel, "/tmp/movie4k_streamurl_tmpstr1_b", NULL, NULL, NULL, tmpstr);
33
34        free(tmpstr1), tmpstr1 = NULL;
35
36        if(tmpstr == NULL)
37        {
38                textbox(_("Message"), _("Connection Error, try again later.") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
39                goto end;
40        }
41               
42        url = string_resub("<a target=\"_blank\" href=\"", "\"><", tmpstr, 0);
43        titheklog(debuglevel, "/tmp/movie4k_streamurl_url1", NULL, NULL, NULL, url);
44
45        if(url == NULL)
46                url = string_resub("<iframe src=\"", "\"", tmpstr, 0);
47
48        if(url == NULL)
49                url = oregex(".*src=\"(http://.*)&.*", tmpstr);
50//              url = oregex(".*src=\"(http://.*)\".*", tmpstr);
51
52        if(url == NULL)
53                url = oregex(".*src=\"(https://.*)&.*", tmpstr);
54
55        if(url == NULL)
56                url = oregex(".*src=\"(https://.*)\".*", tmpstr);
57
58        if(url == NULL)
59        {
60                textbox(_("Message"), _("Can not parse Main Stream URL, try again later.") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
61                goto end;
62        }
63       
64        if(ostrstr(url, "http") == NULL)
65        {
66                free(url), url = NULL;
67                url = string_resub("<iframe src=", "\" width", tmpstr, 0);
68
69                tmpstr2 = ostrcat("<iframe src=", url, 0, 0);
70                tmpstr2 = ostrcat(tmpstr2, "\" width", 1, 0);
71                tmpstr = string_replace_all(tmpstr2, "", tmpstr, 1);
72
73                titheklog(debuglevel, "/tmp/movie4k_streamurl_tmpstr2", NULL, NULL, NULL, tmpstr);
74                titheklog(debuglevel, "/tmp/movie4k_streamurl_url2", NULL, NULL, NULL, url);
75        }
76       
77        if(ostrstr(url, "http://www.facebook.com") != NULL)
78        {
79                free(url), url = NULL;
80                url = oregex(".*<iframe width=.*(http://.*)&width.*", tmpstr);
81                titheklog(debuglevel, "/tmp/movie4k_streamurl_url3", NULL, NULL, NULL, url);
82        }       
83
84        if(ostrstr(url, "http://clkrev.com") != NULL)
85        {
86                free(url), url = NULL;
87                url = string_resub("<iframe src=\"", "\" width", tmpstr, 0);
88                titheklog(debuglevel, "/tmp/movie4k_streamurl_url4", NULL, NULL, NULL, url);
89        }
90       
91        url = string_replace_all("/embed/", "/file/", url, 1);
92        url = string_replace_all("\"", "", url, 1);
93
94        if(url == NULL)
95        {
96                free(url), url = NULL;
97                url = oregex(".*<iframe width=\".*(http://.*)&width=600&height=480\".*", tmpstr);
98                titheklog(debuglevel, "/tmp/movie4k_streamurl_url5", NULL, NULL, NULL, url);
99        }
100        titheklog(debuglevel, "/tmp/movie4k_streamurl_url6", NULL, NULL, NULL, url);
101
102        if(url == NULL)
103        {
104                textbox(_("Message"), _("Can not parse Stream URL, try again later.") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
105                goto end;
106        }
107
108        streamurl = hoster(url);
109        titheklog(debuglevel, "/tmp/movie4k_streamurl_url7", NULL, NULL, NULL, url);
110end:
111        free(url), url = NULL;
112        free(tmpstr), tmpstr = NULL;
113        free(tmpstr2), tmpstr2 = NULL;
114        free(tmphost), tmphost = NULL;
115
116        return streamurl;
117}
118
119int movie4k_search(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title, char* searchstr, int flag)
120{
121        int ret = 1, maxlen = 0, bigpos = 0;
122        int incount = 0;
123        char* tmpstr = NULL;
124        char* from = NULL;
125        char* folgen = NULL;
126        char* folgentmp = NULL;
127        char* name = NULL;
128        char* lang = NULL;
129        char* season = NULL;
130        char* episode = NULL;
131        char* line = NULL;
132        char* menu = NULL;
133        char* str = NULL;
134        char* pic = NULL;
135        char* type = NULL;
136
137        int debuglevel = getconfigint("debuglevel", NULL);
138
139        if(listbox == NULL || listbox->select == NULL || listbox->select->handle == NULL)
140                return ret;
141
142        char* search = NULL;
143        if(flag == 0)
144        {
145                if(searchstr == NULL)
146                        search = textinputhist(_("Search"), " ", "searchhist");
147                else
148                        search = textinputhist(_("Search"), searchstr, "searchhist");
149        }
150        else
151                search = ostrcat(link, NULL, 0, 0);
152
153        if(search != NULL)
154        {
155                drawscreen(load, 0, 0);
156                search = strstrip(search);
157                search = stringreplacechar(search, ' ', '+');
158                debug(99, "search: %s", search);
159
160                char* send = NULL;
161                send = ostrcat(send, "GET /searchAutoCompleteNew.php?search=the HTTP/1.1\r\n", 1, 0);
162                send = ostrcat(send, "Accept-Encoding: identity\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n", 1, 0);
163                send = ostrcat(send, "Host: movie4k.to\r\nAccept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4\r\n", 1, 0);
164                send = ostrcat(send, "Connection: close\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3\r\n\r\n", 1, 0);
165                debug(99, "send: %s", send);
166
167                tmpstr = gethttpreal("www.movie4k.to", "/searchAutoCompleteNew.php?search=the", 80, NULL, NULL, NULL, 0, send, NULL, 5000, 1);
168                free(send); send = NULL;
169                debug(99, "tmpstr: %s", tmpstr);
170                titheklog(debuglevel, "/tmp/movie4k_search", NULL, NULL, NULL, tmpstr);
171
172                char* key = string_resub("securekey=", "&search", tmpstr, 0);
173                debug(99, "key: %s", key);
174
175                send = ostrcat(send, "GET /movies.php?list=search&securekey=", 1, 0);
176                send = ostrcat(send, key, 1, 0);
177                send = ostrcat(send, "&search=", 1, 0);
178                send = ostrcat(send, search, 1, 0);
179                send = ostrcat(send, " HTTP/1.1\r\nAccept-Encoding: identity\r\n", 1, 0);
180                send = ostrcat(send, "Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4\r\n", 1, 0);
181                send = ostrcat(send, "Host: movie4k.to\r\n", 1, 0);
182                send = ostrcat(send, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3\r\n", 1, 0);
183                send = ostrcat(send, "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n", 1, 0);
184                send = ostrcat(send, "Connection: close\r\nCookie: xxx2=ok;\r\n\r\n", 1, 0);
185                debug(99, "send: %s", send);
186
187                free(tmpstr), tmpstr = NULL;
188                tmpstr = gethttpreal("movie4k.to", "/", 80, NULL, NULL, NULL, 0, send, NULL, 5000, 1);
189
190                folgen = string_resub("<TABLE id=\"tablemoviesindex\">", "</TABLE>", tmpstr, 0);
191                folgen = string_replace_all("1000\r\n", "", folgen, 1);
192                folgen = string_replace_all("2000\r\n", "", folgen, 1);
193                stringreplacechar(folgen, '\n', ' ');
194                stringreplacechar(folgen, '\t', ' ');
195                string_strip_whitechars(folgen);
196                folgen = string_replace_all("</TD> </TR> <TR id=\"coverPreview", "</TD> </TR>\n<TR id=\"cover1Preview", folgen, 1);
197                if(folgen != NULL)
198                {
199                        int count = 0;
200                        int j;
201                        struct splitstr* ret1 = NULL;
202                        ret1 = strsplit(folgen, "\n", &count);
203
204                        if(ret1 != NULL && count > 0)
205                        {
206                                int max = count;
207                                for(j = 0; j < max; j++)
208                                {
209                                        int rcret = waitrc(NULL, 10, 0);
210                                        if(rcret == getrcconfigint("rcexit", NULL)) break;
211
212                                        incount++;
213                                        link = string_resub("<a href=\"", "\">", ret1[j].part, 0);
214                                        name = string_resub(".html\">", "</a>", ret1[j].part, 0);
215                                        char* id = string_resub("online-film-", ".html", link, 0);
216                                        if(id == NULL)
217                                                id = string_resub("watch-movie-", ".html", link, 0);
218                                        if(id == NULL)
219                                                id = oregex(".*tvshows-(.*[0-9]{4,10})-.*", link);
220
221
222                                        from = ostrcat("#coverPreview", id, 0, 0);
223                                        pic = string_resub(from, from, tmpstr, 0);     
224                                        pic = string_resub("<img src='", "' alt=", pic, 1);     
225                                        if(pic == NULL)
226                                                pic = ostrcat("http://atemio.dyndns.tv/mediathek/menu/default.jpg", NULL, 0, 0);
227
228                                        if(ostrstr(link, "online-serie-") != NULL)
229                                                type = ostrcat("40", NULL, 0, 0);
230                                        else
231                                                type = ostrcat("34", NULL, 0, 0);
232
233
234                                        if(ostrstr(ret1[j].part, "us_ger_small.png") != NULL)
235                                                lang = ostrcat(" (de)", NULL, 0, 0);
236                                        else if(ostrstr(ret1[j].part, "us_flag_small.png") != NULL)
237                                                lang = ostrcat(" (en)", NULL, 0, 0);
238                                        else
239                                                lang = ostrcat(" (\?\?)", NULL, 0, 0);
240                                       
241                                        ostrcatbig(&line, name, &maxlen, &bigpos);
242                                        ostrcatbig(&line, lang, &maxlen, &bigpos);
243                                        ostrcatbig(&line, "#http://movie4k.to/", &maxlen, &bigpos);
244                                        ostrcatbig(&line, link, &maxlen, &bigpos);
245                                        ostrcatbig(&line, "#", &maxlen, &bigpos);
246                                        ostrcatbig(&line, pic, &maxlen, &bigpos);
247                                        ostrcatbig(&line, "#movie4k_search_", &maxlen, &bigpos);
248                                        char* cincount = oitoa(incount + time(NULL));
249                                        ostrcatbig(&line, cincount, &maxlen, &bigpos);
250                                        free(cincount); cincount = NULL;
251                                        ostrcatbig(&line, ".jpg#Movie4k - Search#", &maxlen, &bigpos);
252                                        ostrcatbig(&line, type, &maxlen, &bigpos);
253                                        ostrcatbig(&line, "\n", &maxlen, &bigpos); 
254
255                                        free(str), str = NULL;
256                                                                                       
257                                        free(name), name = NULL;
258                                        free(lang), lang = NULL;
259                                        free(season), season = NULL;
260                                        free(episode), episode = NULL;
261                                        free(from), from = NULL;
262                                        free(pic), pic = NULL;
263                                        free(type), type = NULL;
264                                        if(j == 60)
265                                                break;
266                                }
267                        }
268                        free(ret1), ret1 = NULL;
269                }                               
270                free(from), from = NULL;
271                free(folgen), folgen = NULL;
272                free(folgentmp), folgentmp = NULL;             
273
274                if(line != NULL)
275                {
276                        line = string_replace_all("http://atemio.dyndns.tv/", "http://imageshack.us/md/up/grd/", line, 1);
277                        menu = ostrcat("/tmp/tithek/movie4k.search.", oitoa(time(NULL)), 0, 1);
278                        menu = ostrcat(menu, ".list", 1, 0);
279                        writesys(menu, line, 0);
280                        free(line); line = NULL;
281                       
282                        struct tithek* tnode = (struct tithek*)listbox->select->handle;
283                        createtithek(tnode, tnode->title,  menu, tnode->pic, tnode->localname, tnode->menutitle, tnode->flag);
284                        ret = 0;
285                        free(menu); menu = NULL;
286                }
287
288                free(tmpstr), tmpstr = NULL;
289        }
290        free(search), search = NULL;
291        return ret;
292}
293
294int movie4k_search_local(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title, char* searchstr, int flag)
295{
296        char* tmpstr = NULL, *tmpstr1 = NULL, *line = NULL, *menu = NULL, *search = NULL;
297        int ret = 1, count = 0, i = 0;
298
299        if(listbox == NULL || listbox->select == NULL || listbox->select->handle == NULL)
300                return ret;
301
302        if(searchstr == NULL)
303                search = textinputhist(_("Search"), " ", "searchhist");
304        else
305                search = textinputhist(_("Search"), searchstr, "searchhist");
306
307        if(search != NULL)
308        {
309                drawscreen(load, 0, 0);
310
311                strstrip(search);
312                string_tolower(search);
313
314                tmpstr = gethttp("atemio.dyndns.tv", "/mediathek/movie4k/streams/movie4k.all-sorted.list", 80, NULL, HTTPAUTH, 5000, NULL, 0);
315
316                struct splitstr* ret1 = NULL;
317                ret1 = strsplit(tmpstr, "\n", &count);
318
319                if(ret1 != NULL)
320                {
321                        int max = count;
322                        for(i = 0; i < max; i++)
323                        {
324                       
325                                tmpstr1 = ostrcat(ret1[i].part, NULL, 0, 0);
326                                tmpstr1 = stringreplacecharonce(tmpstr1, '#', '\0');
327                                string_tolower(tmpstr1);
328
329                                if(ostrstr(tmpstr1, search) != NULL)
330                                {
331                                        printf("found: %s\n", ret1[i].part);
332                                        int rcret = waitrc(NULL, 10, 0);
333                                        if(rcret == getrcconfigint("rcexit", NULL)) break;
334
335                                        line = ostrcat(line, ret1[i].part, 1, 0);
336                                        line = ostrcat(line, "\n", 0, 0);
337                                }
338                                free(tmpstr1), tmpstr1 = NULL;                         
339                        }
340                        free(ret1), ret1 = NULL;
341
342                        if(line != NULL)
343                        {
344                                line = string_replace_all("http://atemio.dyndns.tv/", "http://imageshack.us/md/up/grd/", line, 1);
345                                menu = ostrcat("/tmp/tithek/movie4k.search.", oitoa(time(NULL)), 0, 1);
346                                menu = ostrcat(menu, ".list", 1, 0);
347                                writesys(menu, line, 0);
348                                struct tithek* tnode = (struct tithek*)listbox->select->handle;
349                                createtithek(tnode, tnode->title, menu, tnode->pic, tnode->localname, tnode->menutitle, tnode->flag);
350                                ret = 0;
351                        }
352                }
353                free(tmpstr), tmpstr = NULL;
354        }
355        free(search), search = NULL;
356        return ret;
357}
358
359int movie4k_hoster(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title)
360{
361        debug(99, "link: %s", link);
362        int debuglevel = getconfigint("debuglevel", NULL);
363        int ret = 1, maxlen = 0, bigpos = 0;
364        char* extra = NULL, *pos3 = NULL, *ip = NULL, *pos = NULL, *path = NULL, *tmpstr = NULL, *line = NULL, *url = NULL, *url2 = NULL;
365        char* url3 = NULL, *url4 = NULL, *pathnew = NULL, *id = NULL, *logfile = NULL, *tmphname = NULL, *hnamein = NULL, *nolinks = NULL;
366        char* tmpid = NULL, *pichname = NULL;
367        if(listbox == NULL || listbox->select == NULL || listbox->select->handle == NULL)
368                return ret;
369               
370        drawscreen(load, 0, 0);
371
372        ip = string_replace("http://", "", (char*)link, 0);
373
374        if(ip != NULL)
375                pos = strchr(ip, '/');
376        if(pos != NULL)
377        {
378                pos[0] = '\0';
379                path = pos + 1;
380        }
381
382        tmpstr = gethttp(ip, path, 80, NULL, NULL, 10000, NULL, 0);
383        titheklog(debuglevel, "/tmp/movie4k2_tmpstr", NULL, NULL, NULL, tmpstr);
384        int a = 0;
385
386        if(tmpstr != NULL)
387        {       
388                int countj = 0;
389                char* cpart = ostrstr(tmpstr, "&part=");
390                if(cpart != NULL)
391                {
392                        if(ostrstr(cpart, "&part=4") != NULL)
393                                countj = 4;
394                        else if(ostrstr(cpart, "&part=3") != NULL)
395                                countj = 3;
396                        else if(ostrstr(cpart, "&part=2") != NULL)
397                                countj = 2;
398                        else if(ostrstr(cpart, "&part=1") != NULL)
399                                countj = 1;
400                               
401                        tmpid = string_resub("movie.php?id=", "&part=", tmpstr, 0);
402                }
403                       
404                if(ostrstr(tmpstr, "links\[") == NULL)
405                {
406//                      hnamein = string_resub("width=\"16\"> &nbsp;", "</a></td><td align=", tmpstr, 0);
407                        hnamein = string_resub("width=\"16\"> &nbsp;", "</a></td>", tmpstr, 0);
408                        nolinks = ostrcat(tmpstr, NULL, 0, 0);
409                        if(ostrstr(tmpstr, "set a cookie which will expire in 3 days and be accessible site wide") != NULL)
410                        {
411                                textbox(_("Message"), _("set a cookie which will expire in 3 days and be accessible site wide") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
412                                writesys("/tmp/movie4k.error.cookie.list", tmpstr, 1);
413                                return ret;
414                        }
415                }
416                else
417                {
418                        unlink("/tmp/movie4k.list");
419                        writesys("/tmp/movie4k.list", tmpstr, 1);
420                        char* tmpstr1 = command("cat /tmp/movie4k.list | grep ^links");
421                        tmpstr = ostrcat(tmpstr1, NULL, 1, 0);
422                        char* cmd = ostrcat("cat /tmp/movie4k.list | grep ^'</SCRIPT>' | sed 's!</SCRIPT>!\\nlinks[!g' | sed 's!</td></tr>!\\nlinks[!g' | grep ^'links\\[<' | grep -v ^'links\\[<SCRIPT'", NULL, 0, 0);
423                        printf("cmd: %s\n",cmd);
424                        tmpstr1 = command(cmd);
425                        free(cmd), cmd = NULL;
426                        tmpstr = ostrcat(tmpstr, tmpstr1, 1, 0);
427                }
428
429                titheklog(debuglevel, "/var/usr/local/share/titan/plugins/tithek/thefile1_tmp", NULL, NULL, NULL, tmpstr);
430
431
432                int count = 0;
433                int incount = 0;
434                int i;
435                struct splitstr* ret1 = NULL;
436                ret1 = strsplit(tmpstr, "\n", &count);         
437
438                if(ret1 != NULL && count > 0)
439                {
440                        int max = count;
441                        for(i = 0; i < max; i++)
442                        {
443printf("ret1[i].part: %s\n",ret1[i].part);
444
445                                if((!ostrncmp("links", ret1[i].part, 5) && nolinks == NULL) || nolinks != NULL)
446                                {
447                                        if(nolinks == NULL)
448                                        {
449                                                a++;
450//                                              ret1[i].part = string_replace_all("</a>&nbsp;</td>", "</a></td>", ret1[i].part, 1);
451
452                                                pathnew = string_resub("<a href=\\\"", "\\", ret1[i].part, 0);
453                                                if(pathnew == NULL)
454                                                        pathnew = string_resub("<a href=\"", "\"", ret1[i].part, 0);
455
456                                                tmphname = string_resub("title=\\\"", " ", ret1[i].part, 0);
457                                                if(tmphname == NULL)
458                                                        tmphname = string_resub("title=\"", " ", ret1[i].part, 0);
459                                               
460                                                if(tmphname == NULL)
461                                                        tmphname = string_resub("&nbsp;", "</a", ret1[i].part, 0);
462
463                                                pos3 = ostrstr(ret1[i].part, "Movie quality");
464                                                extra = getxmlentry(pos3, "quality ");
465
466                                                id = oregex(".*-online-film-(.*[0-9]{4,10}).html.*", pathnew);                                                 
467                                                if(id == NULL)
468                                                        id = string_resub("watch-movie-", ".html", pathnew, 0);
469                                                if(id == NULL)
470                                                        id = oregex(".*tvshows-(.*[0-9]{4,10})-.*", pathnew);
471                                                if(id == NULL)
472                                                        id = ostrcat(tmpid, NULL, 0, 0);
473
474                                                debug(99, "(%d/%d/%d) pathnew: %s hname: %s id: %s",a ,i ,max ,pathnew , tmphname, id);
475
476                                                if(ostrstr(pathnew, "tvshows-") != NULL)
477                                                {
478                                                        pathnew = string_replace("tvshows-", "", pathnew, 1);
479                                                        pathnew = string_replace(id, "", pathnew, 1);
480                                                        pathnew = string_replace("-", "", pathnew, 1);
481                                                        pathnew = string_replace(".html", "", pathnew, 1);
482                                                        pathnew = ostrcat(pathnew, "-online-serie-", 1, 0);
483                                                        pathnew = ostrcat(pathnew, id, 1, 0);
484                                                        pathnew = ostrcat(pathnew, ".html", 1, 0);
485                                                        debug(99, "(%d/%d/%d) pathnew: %s hname: %s id: %s",a ,i ,max ,pathnew, tmphname, id);
486                                                }       
487
488                                                if(ostrstr(pathnew, "tvshow-") != NULL)
489                                                {
490                                                        pathnew = string_replace("tvshow-", "", pathnew, 1);
491                                                        pathnew = string_replace(id, "", pathnew, 1);
492                                                        pathnew = string_replace("-", "", pathnew, 1);
493                                                        pathnew = string_replace(".html", "", pathnew, 1);
494                                                        pathnew = ostrcat(pathnew, "-online-serie-", 1, 0);
495                                                        pathnew = ostrcat(pathnew, id, 1, 0);
496                                                        pathnew = ostrcat(pathnew, ".html", 1, 0);
497                                                        debug(99, "(%d/%d/%d) pathnew: %s hname: %s id: %s",a ,i ,max ,pathnew, tmphname, id);
498                                                }
499
500//                                              logfile = ostrcat("/tmp/movie4k4_pathnew1", id, 0, 0);
501//                                              logfile = ostrcat(logfile, "_", 1, 0);
502//                                              titheklog(debuglevel, logfile, tmphname, NULL, NULL, pathnew);
503//                                              free(logfile), logfile= NULL;
504                                               
505                                                url = ostrcat(pathnew, NULL, 0, 0);
506                                        }
507                                        else
508                                        {
509                                                id = oregex(".*-online-film-(.*[0-9]{4,10}).html.*", path);                                                     
510                                                if(id == NULL)
511                                                        id = string_resub("watch-movie-", ".html", path, 0);
512                                                if(id == NULL)
513                                                        id = oregex(".*tvshows-(.*[0-9]{4,10})-.*", path);
514                                                if(id == NULL)
515                                                        id = oregex(".*tvshow-(.*[0-9]{4,10})-.*", path);
516                                                if(id == NULL)
517                                                        id = oregex(".*tvshows-(.*[0-9]{4,10})..*", path);
518                                                if(id == NULL)
519                                                        id = oregex(".*tvshow-(.*[0-9]{4,10})..*", path);
520                                                if(id == NULL)
521                                                        id = ostrcat(tmpid, NULL, 0, 0);
522                                                tmphname = ostrcat(hnamein, NULL, 0, 0);
523
524                                                pos3 = ostrstr(ret1[i].part, "Movie quality");
525                                                extra = getxmlentry(pos3, "quality ");
526
527                                                pathnew = ostrcat(path, NULL, 0, 0);
528                                                if(ostrstr(pathnew, "tvshows-") != NULL)
529                                                {
530                                                        pathnew = string_replace("tvshows-", "", pathnew, 1);
531                                                        pathnew = string_replace(id, "", pathnew, 1);
532                                                        pathnew = string_replace("-", "", pathnew, 1);
533                                                        pathnew = string_replace(".html", "", pathnew, 1);
534                                                        pathnew = ostrcat(pathnew, "-online-serie-", 1, 0);
535                                                        pathnew = ostrcat(pathnew, id, 1, 0);
536                                                        pathnew = ostrcat(pathnew, ".html", 1, 0);
537                                                        debug(99, "(%d/%d/%d) pathnew: %s hname: %s id: %s",a ,i ,max ,pathnew, tmphname, id);
538                                                }       
539
540                                                if(ostrstr(pathnew, "tvshow-") != NULL)
541                                                {
542                                                        pathnew = string_replace("tvshow-", "", pathnew, 1);
543                                                        pathnew = string_replace(id, "", pathnew, 1);
544                                                        pathnew = string_replace("-", "", pathnew, 1);
545                                                        pathnew = string_replace(".html", "", pathnew, 1);
546                                                        pathnew = ostrcat(pathnew, "-online-serie-", 1, 0);
547                                                        pathnew = ostrcat(pathnew, id, 1, 0);
548                                                        pathnew = ostrcat(pathnew, ".html", 1, 0);
549                                                        debug(99, "(%d/%d/%d) pathnew: %s hname: %s id: %s",a ,i ,max ,pathnew, tmphname, id);
550                                                }
551                                                url = ostrcat(pathnew, NULL, 0, 0);
552                                        }       
553
554                                        pichname = ostrcat(tmphname, NULL, 0, 0);
555                                        string_tolower(pichname);
556                                        pichname = stringreplacecharonce(pichname, '.', '\0');
557
558                                        if(id != NULL)
559                                        {
560                                                if(countj >= 1)
561                                                {       
562                                                        free(url), url = NULL;
563                                                        free(pathnew), pathnew = NULL;
564                                                        pathnew = ostrcat("movie.php?id=", id, 0, 0);
565                                                        pathnew = ostrcat(pathnew, "&part=1", 1, 0);
566                                                        url = ostrcat(pathnew, NULL, 0, 0);
567                                                }
568                                                if(countj >= 2)
569                                                {
570                                                        free(pathnew), pathnew = NULL;
571                                                        pathnew = ostrcat("movie.php?id=", id, 0, 0);
572                                                        pathnew = ostrcat(pathnew, "&part=2", 1, 0);
573                                                        url2 = ostrcat(pathnew, NULL, 0, 0);
574                                                }
575                                                if(countj >= 3)
576                                                {
577                                                        free(pathnew), pathnew = NULL;
578                                                        pathnew = ostrcat("movie.php?id=", id, 0, 0);
579                                                        pathnew = ostrcat(pathnew, "&part=3", 1, 0);
580                                                        url3 = ostrcat(pathnew, NULL, 0, 0);
581
582                                                }                                               
583                                                if(countj >= 4)
584                                                {
585                                                        free(pathnew), pathnew = NULL;
586                                                        pathnew = ostrcat("movie.php?id=", id, 0, 0);
587                                                        pathnew = ostrcat(pathnew, "&part=4", 1, 0);
588                                                        url4 = ostrcat(pathnew, NULL, 0, 0);
589                                                }
590                                        }
591
592                                        int type = 41;
593                                       
594                                        if(ostrcmp(url, url2) != 0)
595                                        {
596                                                debug(99, "(%d/%d/%d) %s (Part1) extra: %s url: %s",a ,i ,max ,tmphname, extra, url);
597                                        }
598                                        else
599                                        {
600                                                debug(99, "(%d/%d/%d) %s extra: %s url: %s",a ,i ,max ,tmphname, extra, url);
601                                        }
602                                        incount += 1;
603                                        ostrcatbig(&line, tmphname, &maxlen, &bigpos);
604                                        if(url2 != NULL && ostrcmp(url, url2) != 0)
605                                                ostrcatbig(&line, " (Part1)", &maxlen, &bigpos);
606/*
607                                        if(extra != NULL)
608                                        {
609                                                ostrcatbig(&line, " (", &maxlen, &bigpos);
610                                                ostrcatbig(&line, extra, &maxlen, &bigpos);
611                                                ostrcatbig(&line, ")", &maxlen, &bigpos);                                       
612                                        }
613*/
614                                        ostrcatbig(&line, "#http://movie4k.to/", &maxlen, &bigpos);
615                                        ostrcatbig(&line, url, &maxlen, &bigpos);
616                                        ostrcatbig(&line, "#http://atemio.dyndns.tv/mediathek/menu/", &maxlen, &bigpos);
617                                        ostrcatbig(&line, pichname, &maxlen, &bigpos);
618                                        ostrcatbig(&line, ".jpg#movie4k_", &maxlen, &bigpos);
619                                        ostrcatbig(&line, pichname, &maxlen, &bigpos);
620                                        ostrcatbig(&line, ".jpg#Movie4k - ", &maxlen, &bigpos);
621                                        ostrcatbig(&line, title, &maxlen, &bigpos);
622                                        ostrcatbig(&line, "#", &maxlen, &bigpos);
623                                        char* ctype = oitoa(type);
624                                        ostrcatbig(&line, ctype, &maxlen, &bigpos);
625                                        free(ctype); ctype = NULL;
626                                        ostrcatbig(&line, "\n", &maxlen, &bigpos);
627
628                                        if(url2 != NULL && ostrcmp(url, url2) != 0)
629                                        {                                               
630                                                int type = 41;
631       
632                                                debug(99, "-------------------------------");
633                                                debug(99, "(%d/%d/%d) %s (Part2) extra: %s url: %s",a ,i ,max ,tmphname, extra, url2);
634                               
635                                                incount += 1;
636                                                ostrcatbig(&line, tmphname, &maxlen, &bigpos);
637                                                ostrcatbig(&line, " (Part2)", &maxlen, &bigpos);
638/*
639                                                if(extra != NULL)
640                                                {
641                                                        ostrcatbig(&line, " (", &maxlen, &bigpos);
642                                                        ostrcatbig(&line, extra, &maxlen, &bigpos);
643                                                        ostrcatbig(&line, ")", &maxlen, &bigpos);                                       
644                                                }
645*/
646                                                ostrcatbig(&line, "#http://movie4k.to/", &maxlen, &bigpos);
647                                                ostrcatbig(&line, url2, &maxlen, &bigpos);
648                                                ostrcatbig(&line, "#http://atemio.dyndns.tv/mediathek/menu/", &maxlen, &bigpos);
649                                                ostrcatbig(&line, pichname, &maxlen, &bigpos);
650                                                ostrcatbig(&line, ".jpg#kinox_", &maxlen, &bigpos);
651                                                ostrcatbig(&line, pichname, &maxlen, &bigpos);
652                                                ostrcatbig(&line, ".jpg#Movie4k - ", &maxlen, &bigpos);
653                                                ostrcatbig(&line, title, &maxlen, &bigpos);
654                                                ostrcatbig(&line, "#", &maxlen, &bigpos);
655                                                char* ctype = oitoa(type);
656                                                ostrcatbig(&line, ctype, &maxlen, &bigpos);
657                                                free(ctype); ctype = NULL;
658                                                ostrcatbig(&line, "\n", &maxlen, &bigpos);
659                                        }
660                                        if(url3 != NULL && ostrcmp(url, url3) != 0)
661                                        {
662                                                int type = 41;
663                                                                                                                               
664                                                debug(99, "-------------------------------");
665                                                debug(99, "(%d/%d/%d) %s (Part3) extra: %s url: %s",a ,i ,max ,tmphname, extra, url3);
666                       
667                                                incount += 1;
668                                                ostrcatbig(&line, tmphname, &maxlen, &bigpos);
669                                                ostrcatbig(&line, " (Part3)", &maxlen, &bigpos);
670/*
671                                                if(extra != NULL)
672                                                {
673                                                        ostrcatbig(&line, " (", &maxlen, &bigpos);
674                                                        ostrcatbig(&line, extra, &maxlen, &bigpos);
675                                                        ostrcatbig(&line, ")", &maxlen, &bigpos);                                       
676                                                }
677*/
678                                                ostrcatbig(&line, "#http://movie4k.to/", &maxlen, &bigpos);
679                                                ostrcatbig(&line, url3, &maxlen, &bigpos);
680                                                ostrcatbig(&line, "#http://atemio.dyndns.tv/mediathek/menu/", &maxlen, &bigpos);
681                                                ostrcatbig(&line, pichname, &maxlen, &bigpos);
682                                                ostrcatbig(&line, ".jpg#movie4k_", &maxlen, &bigpos);
683                                                ostrcatbig(&line, pichname, &maxlen, &bigpos);
684                                                ostrcatbig(&line, ".jpg#Movie4k - ", &maxlen, &bigpos);
685                                                ostrcatbig(&line, title, &maxlen, &bigpos);
686                                                ostrcatbig(&line, "#", &maxlen, &bigpos);
687                                                char* ctype = oitoa(type);
688                                                ostrcatbig(&line, ctype, &maxlen, &bigpos);
689                                                free(ctype); ctype = NULL;
690                                                ostrcatbig(&line, "\n", &maxlen, &bigpos);
691                                        }
692                                        if(url4 != NULL && ostrcmp(url, url4) != 0)
693                                        {
694                                                int type = 41;
695       
696                                                debug(99, "-------------------------------");
697                                                debug(99, "(%d/%d/%d) %s (Part4) extra: %s url: %s",a ,i ,max ,tmphname, extra, url4);
698                                                                                       
699                                                incount += 1;
700                                                ostrcatbig(&line, tmphname, &maxlen, &bigpos);
701                                                ostrcatbig(&line, " (Part4)", &maxlen, &bigpos);
702/*
703                                                if(extra != NULL)
704                                                {
705                                                        ostrcatbig(&line, " (", &maxlen, &bigpos);
706                                                        ostrcatbig(&line, extra, &maxlen, &bigpos);
707                                                        ostrcatbig(&line, ")", &maxlen, &bigpos);                                       
708                                                }
709*/
710                                                ostrcatbig(&line, "#http://movie4k.to/", &maxlen, &bigpos);
711                                                ostrcatbig(&line, url4, &maxlen, &bigpos);
712                                                ostrcatbig(&line, "#http://atemio.dyndns.tv/mediathek/menu/", &maxlen, &bigpos);
713                                                ostrcatbig(&line, pichname, &maxlen, &bigpos);
714                                                ostrcatbig(&line, ".jpg#movie4k_", &maxlen, &bigpos);
715                                                ostrcatbig(&line, pichname, &maxlen, &bigpos);
716                                                ostrcatbig(&line, ".jpg#Movie4k - ", &maxlen, &bigpos);
717                                                ostrcatbig(&line, title, &maxlen, &bigpos);
718                                                ostrcatbig(&line, "#", &maxlen, &bigpos);
719                                                char* ctype = oitoa(type);
720                                                ostrcatbig(&line, ctype, &maxlen, &bigpos);
721                                                free(ctype); ctype = NULL;
722                                                ostrcatbig(&line, "\n", &maxlen, &bigpos);
723                                        }
724                                        free(tmphname), tmphname = NULL;
725                                        free(extra), extra = NULL;
726                                        free(pichname), pichname = NULL;
727
728                                        if(nolinks != NULL)
729                                        {
730                                                printf("break\n");
731                                               
732                                                free(url); url = NULL;
733                                                free(url2); url2 = NULL;
734                                                free(url3); url3 = NULL;
735                                                free(url4); url4 = NULL;
736                                                free(pathnew); pathnew = NULL;
737                                                free(logfile); logfile = NULL;
738                                                free(id); id = NULL;
739                                                break;
740                                        }
741                                }
742printf("77777777\n");
743
744                                free(url); url = NULL;
745                                free(url2); url2 = NULL;
746                                free(url3); url3 = NULL;
747                                free(url4); url4 = NULL;
748                                free(pathnew); pathnew = NULL;
749                                free(logfile); logfile = NULL;
750                                free(id); id = NULL;                                   
751                        }
752                }
753                free(ret1); ret1 = NULL;
754        }
755printf("88888888\n");
756
757        free(tmpid); tmpid = NULL;
758        free(tmpstr); tmpstr = NULL;   
759
760        if(line != NULL)
761        {
762                line = string_replace_all("http://atemio.dyndns.tv/", "http://imageshack.us/md/up/grd/", line, 1);
763                tmpstr = ostrcat("/tmp/tithek/movie4k.hoster.", oitoa(time(NULL)), 0, 1);
764                tmpstr = ostrcat(tmpstr, ".list", 1, 0);
765
766                writesys(tmpstr, line, 0);
767                free(line); line = NULL;
768                                       
769                struct tithek* tnode = (struct tithek*)listbox->select->handle;
770                createtithek(tnode, tnode->title,  tmpstr, tnode->pic, tnode->localname, tnode->menutitle, tnode->flag);
771                ret = 0;
772        }
773
774        return ret;
775}
776
777int movie4k_hoster_series(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title)
778{
779        debug(99, "link: %s", link);
780        int debuglevel = getconfigint("debuglevel", NULL);
781        int ret = 1, series = 0, maxlen = 0, bigpos = 0;
782        char* ip = NULL, *pos = NULL, *id = NULL, *tpath = NULL, *path = NULL, *tmpstr = NULL, *line = NULL, *episode = NULL;
783        char* from = NULL;
784        char* folgen = NULL;
785        char* folgentmp = NULL;
786
787        if(listbox == NULL || listbox->select == NULL || listbox->select->handle == NULL)
788                return ret;
789               
790        drawscreen(load, 0, 0);
791
792        ip = string_replace("http://", "", (char*)link, 0);
793
794        if(ip != NULL)
795                pos = strchr(ip, '/');
796        if(pos != NULL)
797        {
798                pos[0] = '\0';
799                path = pos + 1;
800        }
801
802        if(!ostrncmp("tvshows-", path, 8))
803        {
804                debug(99, "path: %s",path);
805                tpath = ostrcat(path, NULL, 0, 0);
806                id = oregex(".*tvshows-(.*[0-9]{4,10})-.*", path);
807                tpath = string_replace("tvshows-season-", "", tpath, 1);
808                tpath = string_replace(".html", "", tpath, 1);
809                tpath = ostrcat(tpath, "-online-serie-", 1, 0);
810                tpath = ostrcat(tpath, id, 1, 0);
811                tpath = ostrcat(tpath, ".html", 1, 0);
812                debug(99, "convertpath: %s",tpath);
813        }
814        else
815                tpath = ostrcat(path, NULL, 0, 0);
816
817        tmpstr = gethttp(ip, tpath, 80, NULL, NULL, 10000, NULL, 0);
818        free(tpath), tpath = NULL;
819        titheklog(debuglevel, "/tmp/movie4k2_tmpstr", NULL, NULL, NULL, tmpstr);
820
821        if(tmpstr != NULL)
822        {
823                if(ostrstr(tmpstr, "episodeform") != NULL)
824                {
825                        int i;
826                        for(i = 1; i < 30; i++)
827                        {
828                                from = ostrcat(from, "<FORM name=\"episodeform", 1, 0);
829                                from = ostrcat(from, oitoa(i), 1, 1);
830                                from = ostrcat(from, "\">", 1, 0);
831                                folgen = string_resub(from, "</FORM>", tmpstr, 0);
832                                folgen = string_resub("<OPTION></OPTION>", "</SELECT>", folgen, 1);
833                                folgen = string_replace_all("><", ">\n<", folgen, 1);
834                                folgentmp = ostrcat(folgen, NULL, 0, 0);
835
836                                if(folgen != NULL)
837                                {
838                                        int count = 0;
839                                        int incount = 0;
840                                        int j;
841                                        struct splitstr* ret1 = NULL;
842                                        ret1 = strsplit(folgen, "\n", &count);
843                                               
844                                        if(ret1 != NULL && count > 0)
845                                        {
846                                                int max = count + 1;
847                                                for(j = 1; j < max; j++)
848                                                {
849                                                        link = string_resub("<OPTION value=\"", "\"", ret1[j-1].part, 0);
850                                                        id = oregex(".*tvshows-(.*[0-9]{4,10})-.*", link);
851                                                        episode = oregex(".*>Episode (.*[0-9]{1,10})</OPTION>.*", ret1[j-1].part);
852
853                                                        debug(99, "(S%d/E%s)(%d) link: %s id: %s", i, episode, j, link, id);
854                                                        link = string_replace("tvshows-", "", link, 1);
855                                                        link = string_replace(id, "", link, 1);
856                                                        link = string_replace("-", "", link, 1);
857                                                        link = string_replace(".html", "", link, 1);
858                                                        link = ostrcat(link, "-online-serie-", 1, 0);
859                                                        link = ostrcat(link, id, 1, 0);
860                                                        link = ostrcat(link, ".html", 1, 0);
861                                                        debug(99, "(S%d/E%d) convertlink: %s id: %s", i, j, link, id);
862
863                                                        incount += 1;
864                                                       
865                                                        char* ci = oitoa(i);
866//                                                      char* cj = oitoa(j);
867                                                        ostrcatbig(&line, _("Season"), &maxlen, &bigpos);
868                                                        ostrcatbig(&line, " ", &maxlen, &bigpos);
869                                                        ostrcatbig(&line, ci, &maxlen, &bigpos);
870                                                        ostrcatbig(&line, " ", &maxlen, &bigpos);
871                                                        ostrcatbig(&line, _("Episode"), &maxlen, &bigpos);
872                                                        ostrcatbig(&line, " ", &maxlen, &bigpos);                                                       
873//                                                      ostrcatbig(&line, cj, &maxlen, &bigpos);
874                                                        ostrcatbig(&line, episode, &maxlen, &bigpos);
875                                                        ostrcatbig(&line, "#http://movie4k.to/", &maxlen, &bigpos);
876                                                        ostrcatbig(&line, link, &maxlen, &bigpos);
877                                                        ostrcatbig(&line, "#http://atemio.dyndns.tv/mediathek/menu/s", &maxlen, &bigpos);
878                                                        ostrcatbig(&line, ci, &maxlen, &bigpos);
879                                                        ostrcatbig(&line, "e", &maxlen, &bigpos);
880//                                                      ostrcatbig(&line, cj, &maxlen, &bigpos);
881                                                        ostrcatbig(&line, episode, &maxlen, &bigpos);
882                                                        ostrcatbig(&line, ".jpg#movie4k_search_", &maxlen, &bigpos);
883                                                        ostrcatbig(&line, ci, &maxlen, &bigpos);
884                                                        ostrcatbig(&line, "e", &maxlen, &bigpos);
885//                                                      ostrcatbig(&line, cj, &maxlen, &bigpos);
886                                                        ostrcatbig(&line, episode, &maxlen, &bigpos);
887                                                        ostrcatbig(&line, ".jpg#Movie4k - ", &maxlen, &bigpos);
888                                                        ostrcatbig(&line, title, &maxlen, &bigpos);
889                                                        ostrcatbig(&line, "#34\n", &maxlen, &bigpos);
890
891                                                        free(id); id = NULL;
892                                                        free(episode); episode = NULL;
893                                                        free(ci); ci = NULL;
894//                                              free(cj); cj = NULL;
895                                                }
896                                        }
897                                        free(ret1), ret1 = NULL;
898                                }                               
899                                free(from), from = NULL;
900                                free(folgen), folgen = NULL;
901                                free(folgentmp), folgentmp = NULL;
902                        }
903                }
904        }
905        free(tmpstr), tmpstr = NULL;   
906
907        if(line != NULL)
908        {
909                line = string_replace_all("http://atemio.dyndns.tv/", "http://imageshack.us/md/up/grd/", line, 1);
910                if(series == 0)
911                {
912                        tmpstr = ostrcat("/tmp/tithek/movie4k.hoster.", oitoa(time(NULL)), 0, 1);
913                        tmpstr = ostrcat(tmpstr, ".list", 1, 0);
914                }
915                else
916                {
917                        tmpstr = ostrcat("/tmp/tithek/movie4k.hoster.ser.", oitoa(time(NULL)), 0, 1);
918                        tmpstr = ostrcat(tmpstr, ".list", 1, 0);
919                }
920                writesys(tmpstr, line, 0);
921
922                titheklog(debuglevel, "/tmp/movie4k8_line", NULL, NULL, NULL, line);
923                free(line); line = NULL;
924                                       
925                struct tithek* tnode = (struct tithek*)listbox->select->handle;
926                createtithek(tnode, tnode->title,  tmpstr, tnode->pic, tnode->localname, tnode->menutitle, tnode->flag);
927                ret = 0;
928        }
929        return ret;
930}
931
932int movie4k_series(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title)
933{
934        debug(99, "link: %s", link);
935        int debuglevel = getconfigint("debuglevel", NULL);
936        int ret = 1, maxlen = 0, bigpos = 0;
937        char* ip = NULL, *pos = NULL, *tpath = NULL, *path = NULL, *tmpstr = NULL, *line = NULL;
938        char* from = NULL;
939        char* folgen = NULL;
940        char* folgentmp = NULL;
941        char* name = NULL;
942        char* lang = NULL;
943        char* season = NULL;
944
945        if(listbox == NULL || listbox->select == NULL || listbox->select->handle == NULL)
946                return ret;
947               
948        drawscreen(load, 0, 0);
949
950        ip = string_replace("http://", "", (char*)link, 0);
951
952        if(ip != NULL)
953                pos = strchr(ip, '/');
954        if(pos != NULL)
955        {
956                pos[0] = '\0';
957                path = pos + 1;
958        }
959
960        tmpstr = gethttp(ip, path, 80, NULL, NULL, 10000, NULL, 0);
961        free(tpath), tpath = NULL;
962        titheklog(debuglevel, "/tmp/movie4k2_tmpstr", NULL, NULL, NULL, tmpstr);
963
964        if(tmpstr != NULL)
965        {
966                folgen = string_resub("<TABLE id=\"tablemoviesindex\">", "</TABLE>", tmpstr, 0);
967                folgen = string_replace_all("\n", "", folgen, 1);
968                folgen = string_replace_all("\t", "", folgen, 1);
969                string_strip_whitechars(folgen);
970                folgen = string_replace_all("</TD> </TR> <TR>", "</TD> </TR>\n<TR>", folgen, 1);
971
972                if(folgen != NULL)
973                {
974                        int count = 0;
975                        int j;
976                        struct splitstr* ret1 = NULL;
977                        ret1 = strsplit(folgen, "\n", &count);
978
979                        if(ret1 != NULL && count > 0)
980                        {
981                                int max = count;
982                                for(j = 0; j < max; j++)
983                                {
984                                        link = string_resub("<a href=\"", "\">", ret1[j].part, 0);
985
986                                        name = oregex(".*><a href=.*\">(.*)</a></TD>.*", ret1[j].part);
987
988                                        if(ostrstr(ret1[j].part, "us_ger_small.png") != NULL)
989                                                lang = ostrcat(" (de)", NULL, 0, 0);
990                                        else if(ostrstr(ret1[j].part, "us_flag_small.png") != NULL)
991                                                lang = ostrcat(" (en)", NULL, 0, 0);
992                                        else
993                                                lang = ostrcat(" (\?\?)", NULL, 0, 0);
994
995                                        season = oregex(".*Season:(.*[0-9]{1,3}).*", name);
996                                        season = strstrip(season);
997                                        debug(99, "(S%s) input: %s%s",season, name, lang);
998
999                                        ostrcatbig(&line, _("Season"), &maxlen, &bigpos);
1000                                        ostrcatbig(&line, " ", &maxlen, &bigpos);
1001                                        ostrcatbig(&line, season, &maxlen, &bigpos);
1002                                        ostrcatbig(&line, " ", &maxlen, &bigpos);
1003                                       
1004                                        ostrcatbig(&line, lang, &maxlen, &bigpos);
1005                                        ostrcatbig(&line, "#http://movie4k.to/", &maxlen, &bigpos);
1006                                        ostrcatbig(&line, link, &maxlen, &bigpos);
1007                                        ostrcatbig(&line, "#http://atemio.dyndns.tv/mediathek/menu/s", &maxlen, &bigpos);
1008                                        ostrcatbig(&line, season, &maxlen, &bigpos);
1009                                        ostrcatbig(&line, ".jpg#s", &maxlen, &bigpos);
1010                                        ostrcatbig(&line, season, &maxlen, &bigpos);
1011                                        ostrcatbig(&line, ".jpg#Movie4k - ", &maxlen, &bigpos);
1012                                        ostrcatbig(&line, title, &maxlen, &bigpos);
1013                                        ostrcatbig(&line, "#39\n", &maxlen, &bigpos);
1014
1015                                        free(name), name = NULL;
1016                                        free(lang), lang = NULL;
1017                                        free(season), season = NULL;
1018                                }
1019                        }
1020                        free(ret1), ret1 = NULL;
1021                }                               
1022                free(from), from = NULL;
1023                free(folgen), folgen = NULL;
1024                free(folgentmp), folgentmp = NULL;             
1025        }
1026        free(tmpstr), tmpstr = NULL;   
1027
1028        if(line != NULL)
1029        {
1030                line = string_replace_all("http://atemio.dyndns.tv/", "http://imageshack.us/md/up/grd/", line, 1);
1031                tmpstr = ostrcat("/tmp/tithek/movie4k.series.", oitoa(time(NULL)), 0, 1);
1032                tmpstr = ostrcat(tmpstr, ".list", 1, 0);
1033
1034                writesys(tmpstr, line, 0);
1035
1036                titheklog(debuglevel, "/tmp/movie4k8_line", NULL, NULL, NULL, line);
1037                free(line); line = NULL;
1038                                       
1039                struct tithek* tnode = (struct tithek*)listbox->select->handle;
1040                createtithek(tnode, tnode->title,  tmpstr, tnode->pic, tnode->localname, tnode->menutitle, tnode->flag);
1041                ret = 0;
1042        }
1043        return ret;
1044}
1045
1046int movie4k_series_listed(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title)
1047{
1048        debug(99, "link: %s", link);
1049        int debuglevel = getconfigint("debuglevel", NULL);
1050        int ret = 1, maxlen = 0, bigpos = 0;
1051        char* ip = NULL, *pos = NULL, *tpath = NULL, *path = NULL, *tmpstr = NULL, *line = NULL;
1052        char* from = NULL;
1053        char* folgen = NULL;
1054        char* folgentmp = NULL;
1055        char* name = NULL;
1056        char* lang = NULL;
1057        char* season = NULL;
1058        char* episode = NULL;
1059
1060        if(listbox == NULL || listbox->select == NULL || listbox->select->handle == NULL)
1061                return ret;
1062               
1063        drawscreen(load, 0, 0);
1064
1065        ip = string_replace("http://", "", (char*)link, 0);
1066
1067        if(ip != NULL)
1068                pos = strchr(ip, '/');
1069        if(pos != NULL)
1070        {
1071                pos[0] = '\0';
1072                path = pos + 1;
1073        }
1074
1075        tmpstr = gethttp(ip, path, 80, NULL, NULL, 10000, NULL, 0);
1076        free(tpath), tpath = NULL;
1077        titheklog(debuglevel, "/tmp/movie4k2_tmpstr", NULL, NULL, NULL, tmpstr);
1078
1079        if(tmpstr != NULL)
1080        {
1081                folgen = string_resub("<TABLE id=\"tablemoviesindex\">", "</TABLE>", tmpstr, 0);
1082                folgen = string_replace_all("\n", "", folgen, 1);
1083                folgen = string_replace_all("\t", "", folgen, 1);
1084                string_strip_whitechars(folgen);
1085                folgen = string_replace_all("</TD> </TR> <TR>", "</TD> </TR>\n<TR>", folgen, 1);
1086
1087                if(folgen != NULL)
1088                {
1089                        int count = 0;
1090                        int j;
1091                        struct splitstr* ret1 = NULL;
1092                        ret1 = strsplit(folgen, "\n", &count);
1093
1094                        if(ret1 != NULL && count > 0)
1095                        {
1096                                int max = count;
1097                                for(j = 0; j < max; j++)
1098                                {
1099                                        link = string_resub("<a href=\"", "\">", ret1[j].part, 0);
1100                                        name = oregex(".*><a href=.*\">(.*)</a></TD>.*", ret1[j].part);
1101
1102                                        if(ostrstr(ret1[j].part, "us_ger_small.png") != NULL)
1103                                                lang = ostrcat(" (de)", NULL, 0, 0);
1104                                        else if(ostrstr(ret1[j].part, "us_flag_small.png") != NULL)
1105                                                lang = ostrcat(" (en)", NULL, 0, 0);
1106                                        else
1107                                                lang = ostrcat(" (\?\?)", NULL, 0, 0);
1108
1109                                        season = oregex(".*Season:(.*),.*", name);
1110                                        season = strstrip(season);
1111                                        episode = oregex(".*Episode:(.*[0-9]{1,3}).*", name);
1112                                        episode = strstrip(episode);
1113                                        debug(99, "(S%s/E%s) input: %s%s",season, episode, name, lang);
1114
1115                                        ostrcatbig(&line, _("Season"), &maxlen, &bigpos);
1116                                        ostrcatbig(&line, " ", &maxlen, &bigpos);
1117                                        ostrcatbig(&line, season, &maxlen, &bigpos);
1118                                        ostrcatbig(&line, " ", &maxlen, &bigpos);
1119                                        ostrcatbig(&line, _("Episode"), &maxlen, &bigpos);
1120                                        ostrcatbig(&line, " ", &maxlen, &bigpos);
1121                                        ostrcatbig(&line, episode, &maxlen, &bigpos);
1122                                        ostrcatbig(&line, " ", &maxlen, &bigpos);
1123                                        ostrcatbig(&line, lang, &maxlen, &bigpos);
1124                                        ostrcatbig(&line, "#http://movie4k.to/", &maxlen, &bigpos);
1125                                        ostrcatbig(&line, link, &maxlen, &bigpos);
1126                                        ostrcatbig(&line, "#http://atemio.dyndns.tv/mediathek/menu/s", &maxlen, &bigpos);
1127                                        ostrcatbig(&line, season, &maxlen, &bigpos);
1128                                        ostrcatbig(&line, "e", &maxlen, &bigpos);
1129                                        ostrcatbig(&line, episode, &maxlen, &bigpos);
1130                                        ostrcatbig(&line, ".jpg#s", &maxlen, &bigpos);
1131                                        ostrcatbig(&line, season, &maxlen, &bigpos);
1132                                        ostrcatbig(&line, "e", &maxlen, &bigpos);
1133                                        ostrcatbig(&line, episode, &maxlen, &bigpos);
1134                                        ostrcatbig(&line, ".jpg#Movie4k - ", &maxlen, &bigpos);
1135                                        ostrcatbig(&line, title, &maxlen, &bigpos);
1136                                        ostrcatbig(&line, "#34\n", &maxlen, &bigpos); 
1137
1138                                        free(name), name = NULL;
1139                                        free(lang), lang = NULL;
1140                                        free(season), season = NULL;
1141                                        free(episode), episode = NULL;
1142                                }
1143                        }
1144                        free(ret1), ret1 = NULL;
1145                }                               
1146                free(from), from = NULL;
1147                free(folgen), folgen = NULL;
1148                free(folgentmp), folgentmp = NULL;             
1149        }
1150        free(tmpstr), tmpstr = NULL;   
1151
1152        if(line != NULL)
1153        {
1154                line = string_replace_all("http://atemio.dyndns.tv/", "http://imageshack.us/md/up/grd/", line, 1);
1155                tmpstr = ostrcat("/tmp/tithek/movie4k.series.listed.", oitoa(time(NULL)), 0, 1);
1156                tmpstr = ostrcat(tmpstr, ".list", 1, 0);
1157
1158                writesys(tmpstr, line, 0);
1159
1160                titheklog(debuglevel, "/tmp/movie4k8_line", NULL, NULL, NULL, line);
1161                free(line); line = NULL;
1162                                       
1163                struct tithek* tnode = (struct tithek*)listbox->select->handle;
1164                createtithek(tnode, tnode->title,  tmpstr, tnode->pic, tnode->localname, tnode->menutitle, tnode->flag);
1165                ret = 0;
1166        }
1167        return ret;
1168}
1169
1170
1171#endif
Note: See TracBrowser for help on using the repository browser.