source: titan/plugins/tithek/solarmovie.h @ 24309

Last change on this file since 24309 was 24309, checked in by obi, 7 years ago

[tithek] fix putlocker / sockshare

File size: 15.1 KB
Line 
1#ifndef SOLARMOVIE_H
2#define SOLARMOVIE_H
3
4// flag 1 = putlocker/sockshare
5// flag 2 = filenuke
6
7char* solarmovie(char* link)
8{
9        debug(99, "link11111111111: %s", link);
10        char* tmpstr = NULL, *tmpstr1 = NULL, *tmpstr2 = NULL, *path = NULL, *url = NULL, *streamurl = NULL, *id = NULL, *hname = NULL;
11//      char* cmd = NULL;
12
13        if(link == NULL) return NULL;
14
15        int count = 0;
16        struct splitstr* ret1 = NULL;
17        ret1 = strsplit(link, ";", &count);
18        if(ret1 != NULL && count >= 3)
19        {
20                unlink("/tmp/tithek/get");
21                unlink("/tmp/tithek/get_zcat");
22                unlink("/tmp/tithek/get_zcat1");
23
24                path = ostrcat(ret1[0].part, NULL, 0, 0);
25                debug(99, "path: %s", path);
26
27                id = ostrcat(ret1[1].part, NULL, 0, 0);
28                debug(99, "id: %s", id);
29
30                hname = ostrcat(ret1[2].part, NULL, 0, 0);
31                debug(99, "hname: %s", hname);
32
33                char* send = ostrcat("GET /link/play/", NULL, 0, 0);
34                send = ostrcat(send, id, 1, 0);
35                send = ostrcat(send, " HTTP/1.1\r\nHost: www.solarmovie.so\r\nUser-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.99 Safari/535.1\r\nConnection: close\r\nAccept-Encoding: gzip\r\n\r\n", 1, 0);   
36                debug(99, "send: %s", send);
37                unlink("/tmp/tithek/get1");
38                tmpstr = gethttpreal("www.solarmovie.so", path, 80, NULL, NULL, NULL, 0, send, NULL, 5000, 0);
39                debug(99, "tmpstr: %s", tmpstr);
40                free(send); send = NULL;
41
42                if(tmpstr != NULL)
43                {
44                        string_strip_whitechars(tmpstr);
45                        if(ostrstr(tmpstr, "<div class=\"thirdPartyEmbContainer\">") != NULL)
46                        {
47                                tmpstr1 = string_resub("<div class=\"thirdPartyEmbContainer\">", "</div>", tmpstr, 0);
48                                stringreplacechar(tmpstr1, '\n', ' ');
49                                url = string_resub("<center><iframe src=\"", "\"", tmpstr1, 0);
50                                if(url == NULL || ostrncmp("http://", url, 7) == 1)
51                                        url = oregex(".*src=\"(http://.*)&width.*", tmpstr1);
52                        }
53                        else
54                        {
55                                url = oregex(".*<iframe name=\"service_frame\" class=\"service_frame\" src=\"(http://.*)\".*", tmpstr);
56                                url = oregex("(http://.*)\".*", url);
57                                url = string_replace_all("embed", "file", url, 1);
58                        }
59
60                        tmpstr1 = ostrcat(url, NULL, 0, 0);
61               
62                        int count2 = 0;
63                        struct splitstr* ret2 = NULL;
64                        ret2 = strsplit(tmpstr1, "/", &count2);
65//                      ret2 = strsplit(tmpstr1, "= & / \"", &count2);
66               
67                        if(ret2 != NULL && count2 > 3 && ostrcmp(hname, "sockshare.com") == 0)
68                                streamurl = putlocker("Sockshare.com", ret2[3].part, url);
69                        else if(ret2 != NULL && count2 > 3 && ostrcmp(hname, "putlocker.com") == 0)
70                                streamurl = putlocker("Putlocker.com", ret2[3].part, url);
71                        else if(ret2 != NULL && count2 > 2 && ostrcmp(hname, "filenuke.com") == 0)
72                                streamurl = filenuke("FileNuke.com", ret2[2].part, url);
73                        else if(ret2 != NULL && count2 > 2 && ostrcmp(hname, "streamcloud.eu") == 0)
74                                streamurl = streamcloud("StreamCloud.eu", ret2[2].part, url);
75                        else if(ret2 != NULL && count2 > 2 && ostrcmp(hname, "streamcloud.eu") == 0)
76                                streamurl = streamcloud("StreamCloud.eu", ret2[2].part, url);
77                        else if(ret2 != NULL && count2 > 2 && ostrcmp(hname, "vidstream.in") == 0)
78                                streamurl = vidstream("VidStream.in", ret2[2].part, url);
79                        else if(ret2 != NULL && count2 > 3 && ostrcmp(hname, "flashx.tv") == 0)
80                                streamurl = flashx("FlashX.tv", ret2[3].part, url);
81                        else if(ret2 != NULL && count2 > 2 && ostrcmp(hname, "xvidstage.com") == 0)
82                                streamurl = xvidstage("XvidStage.com", ret2[2].part, url);
83                        else if(ret2 != NULL && count2 > 2 && ostrcmp(hname, "nowvideo.eu") == 0)
84                        {
85                                tmpstr2 = ostrcat(ret2[2].part, NULL, 0, 0);
86                                tmpstr2 = string_replace("embed.php?v=", "", tmpstr2, 1);
87                                streamurl = nowvideo("NowVideo.eu", tmpstr2, url);
88                        }
89                        else if(ret2 != NULL && count2 > 3 && ostrcmp(hname, "nowvideo.eu") == 0)
90                        {
91                                tmpstr2 = ostrcat(ret2[3].part, NULL, 0, 0);
92                                tmpstr2 = string_replace("embed.php?v=", "", tmpstr2, 1);
93                                debug(99, "tmpstr2: %s", tmpstr2, url); 
94                                streamurl = nowvideo("NowVideo.eu", tmpstr2, url);
95                        }
96                        free(ret2), ret2 = NULL;
97                }
98        }
99        free(ret1), ret1 = NULL;
100
101        free(url), url = NULL;
102        free(tmpstr), tmpstr = NULL;
103        free(tmpstr1), tmpstr1 = NULL;
104        free(tmpstr2), tmpstr2 = NULL;
105        free(path), path = NULL;
106        free(hname), hname = NULL;
107        free(id), id = NULL;
108
109        return streamurl;
110}
111
112int solarmovie_search(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title, char* searchstr, int flag)
113{
114        int debuglevel = getconfigint("debuglevel", NULL);
115        int ret = 1;
116        int incount = 0;
117               
118        if(listbox == NULL || listbox->select == NULL || listbox->select->handle == NULL)
119                return ret;
120
121        char* search = NULL;
122        if(searchstr == NULL)
123                search = textinputhist("Search", " ", "searchhist");
124        else
125                search = textinputhist("Search", searchstr, "searchhist");
126       
127        if(search != NULL)
128        {
129                drawscreen(load, 0, 0);
130                search = stringreplacechar(search, ' ', '+');
131                char* tmpstr = NULL;
132                char* tmpstr1 = NULL;
133                char* line = NULL;
134                char* pic = NULL;
135                char* title = NULL;
136                char* url = NULL;
137                char* ip = NULL;
138                char* path = NULL;
139                char* menu = NULL;
140                char* file = NULL;
141                char* file1 = NULL;
142
143                ip = ostrcat("www.solarmovie.so", NULL, 0, 0);
144                if(flag == 0)
145                        path = ostrcat("movie/search/", search, 0, 0);
146                else
147                        path = ostrcat("tv/search/", search, 0, 0);
148       
149                tmpstr = gethttp(ip, path, 80, NULL, NULL, 10000, NULL, 0);
150                titheklog(debuglevel, "/tmp/solarmovie_tmpstr", NULL, tmpstr);
151
152                while(ostrstr(tmpstr, "<div class=\"typicalGrey coverGroup\">") != NULL)
153                {
154                        int rcret = waitrc(NULL, 10, 0);
155                        if(rcret == getrcconfigint("rcexit", NULL)) break;
156
157                        incount += 1;
158                        if(debuglevel == 99)
159                        {
160                                file = ostrcat("/tmp/solarmovie_tmpstr", oitoa(incount), 0, 1);
161                                writesys(file, tmpstr, 0);
162                        }
163                               
164                        tmpstr1 = string_resub("<div class=\"typicalGrey coverGroup\">", "</div>", tmpstr, 0);
165
166                        if(debuglevel == 99)
167                        {
168                                file1 = ostrcat("/tmp/solarmovie_tmpstr_resub", oitoa(incount), 0, 1);
169                                writesys(file1, tmpstr1, 0);
170                        }
171
172                        path = string_resub("href=\"", "\"", tmpstr1, 0);
173                        pic = string_resub("<img src=\"", "\"", tmpstr1, 0);
174                        title = string_resub("<a title=\"", "\"", tmpstr1, 0);
175       
176                        url = ostrcat("http://www.solarmovie.so", path, 0, 0);
177       
178                        debug(99, "---------------------------");
179                        debug(99, "pic: %s", pic);
180                        debug(99, "title: %s", title);
181                        debug(99, "url: %s", url);                                     
182                        debug(99, "---------------------------");
183       
184                        if(url != NULL)
185                        {
186                                line = ostrcat(line, title, 1, 0);
187                                line = ostrcat(line, "#", 1, 0);
188                                line = ostrcat(line, url, 1, 0);
189                                line = ostrcat(line, "#", 1, 0);
190                                line = ostrcat(line, pic, 1, 0);
191                                line = ostrcat(line, "#solarmovie_search_", 1, 0);
192                                line = ostrcat(line, oitoa(incount + time(NULL)), 1, 0);
193                                line = ostrcat(line, ".jpg#SolarMovie - Search#28\n", 1, 0);
194                        }
195                        free(url), url = NULL;
196                        free(path), path = NULL;
197                        free(title), title = NULL;
198                        free(pic), pic = NULL;         
199                        free(file), file = NULL;
200                        free(file1), file1 = NULL;
201
202                        tmpstr = string_replace("typicalGrey coverGroup", "", tmpstr, 1);
203                        free(tmpstr1), tmpstr1 = NULL;
204                }
205
206                if(line != NULL)
207                {
208                        menu = ostrcat("/tmp/tithek/solarmovie.search.list", NULL, 0, 0);
209                        writesys(menu, line, 0);
210                        struct tithek* tnode = (struct tithek*)listbox->select->handle;
211                        createtithek(tnode, tnode->title,  menu, tnode->pic, tnode->localname, tnode->menutitle, tnode->flag);
212                        ret = 0;
213                }
214
215                free(tmpstr), tmpstr = NULL;
216                free(ip), ip = NULL;
217        }
218        free(search), search = NULL;
219        return ret;
220}
221
222int solarmovie_hoster(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title)
223{
224        debug(99, "link: %s", link);
225        int debuglevel = getconfigint("debuglevel", NULL);
226        int ret = 1, series = 0;
227        char* ip = NULL, *pos = NULL, *path = NULL, *etitle = NULL, *episode = NULL, *session = NULL, *update = NULL, *quality = NULL, *id = NULL, *line = NULL, *hname = NULL, *tmpstr = NULL, *cmd = NULL, *url = NULL, *tmpstr1 = NULL, *tmphost = NULL, *tmphname = NULL;
228
229        unlink("/tmp/tithek/get");
230        unlink("/tmp/tithek/get_zcat");
231        unlink("/tmp/tithek/get_zcat1");
232
233        if(listbox == NULL || listbox->select == NULL || listbox->select->handle == NULL)
234                return ret;
235
236        ip = string_replace("http://", "", (char*)link, 0);
237
238        if(ip != NULL)
239                pos = strchr(ip, '/');
240        if(pos != NULL)
241        {
242                pos[0] = '\0';
243                path = pos + 1;
244        }
245
246        tmpstr = gethttp(ip, path, 80, NULL, NULL, 10000, NULL, 0);
247       
248        if(tmpstr == NULL)
249        {
250                textbox(_("Message"), _("This file doesn't exist, or has been removed") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
251                goto end;
252        }
253//      if(debuglevel == 99) system("cp -a /tmp/tithek/get /tmp/solarmovie1_tmpstr_get");
254
255//      tmpstr = command("cat /tmp/tithek/get");
256        if(ostrstr(tmpstr, "<!DOCTYPE") == NULL)
257        {
258                cmd = ostrcat(cmd, "cat /tmp/tithek/get | zcat", 1, 0);
259                debug(99, "cmd: %s", cmd);
260                free(tmpstr), tmpstr = NULL;
261                tmpstr = command(cmd);
262               
263                writesys("/tmp/tithek/get_zcat", tmpstr, 0);
264                free(cmd), cmd = NULL;
265        }
266//      else
267//              system("cp -a /tmp/tithek/get /tmp/tithek/get_zcat");
268
269//      titheklog(debuglevel, "/tmp/solarmovie2_tmpstr_zcat", NULL, tmpstr);
270
271        drawscreen(load, 0, 0);
272        if(ostrstr(link, "/tv/") != NULL && ostrstr(link, "/season-") == NULL && ostrstr(link, "/episode-") == NULL)   
273                series = 1;
274        else
275                series = 0;
276
277        if(series == 0)
278        {
279                series = 0;
280                if(tmpstr != NULL)
281                {
282//                      free(tmpstr), tmpstr = NULL;
283//                      tmpstr = command("cat /tmp/tithek/get_zcat");
284                        char* tmpcat = string_resub("<tbody>", "</tbody>", tmpstr, 0);
285       
286                        char* ptmpcat = ostrstr(tmpcat, "<td class=\"qualit");
287                        int i = 0, incount = 0;
288                        while(ptmpcat != NULL)
289                        {
290                                i++;
291                                tmpstr1 = ostrcat(tmpstr1, string_resub("<td class=\"qualit", "<div class=\"linkDetails\">", ptmpcat, 0), 1, 1);
292                                ptmpcat += 5;
293                                ptmpcat = ostrstr(ptmpcat, "<td class=\"qualit");
294       
295                                if(ptmpcat != NULL)
296                                {
297                                        id = oregex(".*/link/show/(.*)/\">.*", tmpstr1);
298                                        quality = string_resub("yCell\">", "</td>", tmpstr1, 0);
299                                        update = string_resub("oddCell\">", "</td>", tmpstr1, 0);
300                                        string_remove_whitechars(quality);
301                                        strstrip(quality);
302                                        tmphname = oregex(".*/\">(.*)</a>.*", tmpstr1);
303                                        string_remove_whitechars(tmphname);
304                                        strstrip(tmphname);
305       
306                                        tmphost = ostrcat("www.solarmovie.so", NULL, 0, 0);
307                                        url = ostrcat("/link/play/", id, 0, 0);
308               
309                                        int type = 43;
310                                        if(ostrcmp(tmphname, "sockshare.com") == 0)
311                                                hname = ostrcat("Sockshare.com", NULL, 0, 0);
312                                        else if(ostrcmp(tmphname, "putlocker.com") == 0)
313                                                hname = ostrcat("Putlocker.com", NULL, 0, 0);
314                                        else if(ostrcmp(tmphname, "filenuke.com") == 0)
315                                                hname = ostrcat("FileNuke.com", NULL, 0, 0);
316                                        else if(ostrcmp(tmphname, "streamcloud.eu") == 0)
317                                                hname = ostrcat("StreamCloud.eu", NULL, 0, 0);
318                                        else if(ostrcmp(tmphname, "streamcloud") == 0)
319                                                hname = ostrcat("StreamCloud.eu", NULL, 0, 0);
320                                        else if(ostrcmp(tmphname, "vidstream.in") == 0)
321                                                hname = ostrcat("VidStream.in", NULL, 0, 0);
322                                        else if(ostrcmp(tmphname, "flashx.tv") == 0)
323                                                hname = ostrcat("FlashX.tv", NULL, 0, 0);
324                                        else if(ostrcmp(tmphname, "primeshare.tv") == 0)
325                                                hname = ostrcat("PrimeShare.tv", NULL, 0, 0);
326                                        else if(ostrcmp(tmphname, "xvidstage.com") == 0)
327                                                hname = ostrcat("XvidStage.com", NULL, 0, 0);
328                                        else if(ostrcmp(tmphname, "vidxden.com") == 0)
329                                                hname = ostrcat("vidxden.com", NULL, 0, 0);
330                                        else if(ostrcmp(tmphname, "nowvideo.eu") == 0)
331                                                hname = ostrcat("NowVideo.eu", NULL, 0, 0);
332                                        else
333                                        {
334                                                hname = ostrcat(tmphname, " (coming soon)", 0, 0);
335                                                type = 66;
336                                        }
337
338                                        debug(99, "hname: %s url: %s id: %s", hname, url, id);
339                                       
340                                        incount += 1;
341                                        line = ostrcat(line, hname, 1, 0);                             
342                                        line = ostrcat(line, "#", 1, 0);
343                                        line = ostrcat(line, url, 1, 0);
344                                        line = ostrcat(line, ";", 1, 0);
345                                        line = ostrcat(line, id, 1, 0);
346                                        line = ostrcat(line, ";", 1, 0);                               
347                                        line = ostrcat(line, tmphname, 1, 0);
348                                        line = ostrcat(line, "#", 1, 0);
349                                        line = ostrcat(line, "http://atemio.dyndns.tv/mediathek/menu/", 1, 0);
350                                        line = ostrcat(line, hname, 1, 0);
351                                        line = ostrcat(line, ".jpg#solarmovie_", 1, 0);
352                                        line = ostrcat(line, hname, 1, 0);
353                                        line = ostrcat(line, ".jpg#Solarmovie - ", 1, 0);
354                                        line = ostrcat(line, title, 1, 0);
355                                        line = ostrcat(line, "#", 1, 0);
356                                        line = ostrcat(line, oitoa(type), 1, 0);
357                                        line = ostrcat(line, "\n", 1, 0);
358                                        free(hname), hname = NULL;
359                                                                               
360                                        free(tmphname), tmphname = NULL;
361                                        free(id), id = NULL;           
362                                }
363                        }
364                        free(tmpcat); tmpcat = NULL;
365                }       
366        }
367        else
368        {
369                series = 1;
370                if(tmpstr != NULL)
371                {
372writesys("/tmp/tithek/get_zcat", tmpstr, 0);
373
374                        free(tmpstr), tmpstr = NULL;
375                        tmpstr = command("cat /tmp/tithek/get_zcat | grep episode- | grep -v Episode | grep -v 'linkCount typicalGrey'");
376                        writesys("/var/usr/local/share/titan/plugins/tithek/solarmovie8_tmpstr", tmpstr, 0);
377
378                        int count = 0;
379                        struct splitstr* ret1 = NULL;
380                        ret1 = strsplit(tmpstr, "\n", &count);
381                        int max = count;
382                        int i = 0, incount = 0;
383                        for(i = 0; i < max; i++)
384                        {
385//<a href="/tv/avatar-the-last-airbender-2005/season-3/episode-2/">The Headband</a>
386                                session = oregex(".*/season-([0-9]{1,2})/episode-.*", ret1[i].part);
387                                episode = oregex(".*/episode-([0-9]{1,2})/.*", ret1[i].part);
388                                etitle = oregex(".*>(.*)<.*", ret1[i].part);
389                                url = string_resub("\"", "\"", ret1[i].part, 0);
390
391                                incount += 1;
392                                line = ostrcat(line, _("Season"), 1, 0);
393                                line = ostrcat(line, " ", 1, 0);
394                                line = ostrcat(line, session, 1, 0);
395                                line = ostrcat(line, " ", 1, 0);
396                                line = ostrcat(line, _("Episode"), 1, 0);
397                                line = ostrcat(line, " ", 1, 0);
398                                line = ostrcat(line, episode, 1, 0);
399
400//                              line = ostrcat(line, "(s", 1, 0);
401//                              line = ostrcat(line, session, 1, 0);
402//                              line = ostrcat(line, "e", 1, 0);
403//                              line = ostrcat(line, episode, 1, 0);
404//                              line = ostrcat(line, ") ", 1, 0);
405//                              line = ostrcat(line, etitle, 1, 0);
406
407                                line = ostrcat(line, "#http://www.solarmovie.so", 1, 0);
408                                line = ostrcat(line, url, 1, 0);
409//                              line = ostrcat(line, ";", 1, 0);
410//                              line = ostrcat(line, session, 1, 0);
411//                              line = ostrcat(line, ";", 1, 0);
412//                              line = ostrcat(line, episode, 1, 0);
413                                line = ostrcat(line, "#", 1, 0);
414                                line = ostrcat(line, "http://atemio.dyndns.tv/mediathek/menu/s", 1, 0);
415                                line = ostrcat(line, session, 1, 0);
416                                line = ostrcat(line, "e", 1, 0);
417                                line = ostrcat(line, episode, 1, 0);
418                                line = ostrcat(line, ".jpg", 1, 0);                                                                                                                             
419                                line = ostrcat(line, "#s", 1, 0);
420                                line = ostrcat(line, session, 1, 0);
421                                line = ostrcat(line, "e", 1, 0);
422                                line = ostrcat(line, episode, 1, 0);
423                                line = ostrcat(line, ".jpg#Solarmovie - ", 1, 0);
424                                line = ostrcat(line, title, 1, 0);
425                                line = ostrcat(line, "#28\n", 1, 0);
426                                free(session), session = NULL;
427                                free(episode), episode = NULL;
428                                free(url), url = NULL; 
429                                free(etitle), etitle = NULL;   
430                        }
431                }
432        }
433        free(tmpstr), tmpstr = NULL;
434
435        if(line != NULL)
436        {
437                if(series == 0)
438                        tmpstr = ostrcat("/tmp/tithek/solarmovie.hoster.list", NULL, 0, 0);
439                else
440                        tmpstr = ostrcat("/tmp/tithek/solarmovie.hoster.ser.list", NULL, 0, 0);
441                writesys(tmpstr, line, 0);
442
443                titheklog(debuglevel, "/tmp/solarmovie8_line", NULL, line);
444                                       
445                struct tithek* tnode = (struct tithek*)listbox->select->handle;
446                createtithek(tnode, tnode->title,  tmpstr, tnode->pic, tnode->localname, tnode->menutitle, tnode->flag);
447                ret = 0;
448        }
449end:
450        free(ip), ip = NULL;
451                       
452        return ret;
453}
454#endif
Note: See TracBrowser for help on using the repository browser.