source: titan/plugins/tithek/streamcloud.h @ 24424

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

fix

File size: 6.2 KB
Line 
1#ifndef STREAMCLOAD_H
2#define STREAMCLOAD_H
3
4char* streamcloud(char* link)
5{
6        debug(99, "link: %s", link);
7        int debuglevel = getconfigint("debuglevel", NULL);
8        char* tmphost = NULL, *tmppath = NULL, *tmpstr = NULL, *send = NULL, *id = NULL, *fname = NULL, *op = NULL, *hash = NULL, *cmd = NULL;
9        char* hashline = NULL, *hashlen = NULL, *referer = NULL, *usr_login = NULL, *imhuman = NULL, *ip = NULL, *cookie = NULL, *streamlink = NULL;
10
11        unlink("/tmp/streamcould1_get");
12        unlink("/tmp/streamcould2_post");
13        unlink("/tmp/streamcould3_streamlink");
14
15        if(link == NULL) return NULL;
16
17/////////////
18        char* tmplink = NULL, *pos = NULL, *path = NULL;
19
20        tmplink = ostrcat(link, NULL, 0, 0);
21
22        if(ostrstr(link, "/Out/?s=") != NULL)
23        {
24                tmplink = string_replace("/Out/?s=", "", tmplink, 1);
25                debug(99, "remove out string: %s", tmplink);
26        }
27       
28
29        if(tmplink == NULL || ostrncmp("http://", tmplink, 7))
30        {
31                textbox(_("Message"), _("Hoster Url not http://") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
32                goto end;
33        }
34
35        tmphost = string_replace("http://", "", tmplink, 0);
36        free(tmplink) , tmplink = NULL;
37
38        if(tmphost != NULL)
39                pos = strchr(tmphost, '/');
40        if(pos != NULL)
41        {
42                pos[0] = '\0';
43                path = pos + 1;
44        }
45
46        tmppath = ostrcat("/", path, 0, 0);
47//      free(path), path = NULL;
48
49/////////////
50
51
52/*
53        tmphost = ostrcat(host, NULL, 0, 0);
54        tmppath = ostrcat("/", file, 0, 0);
55
56        debug(99, "tmphost: %s", tmphost);
57        ip = get_ip(tmphost);
58        debug(99, "ip: %s", ip);
59        debug(99, "tmppath: %s", tmppath);
60*/
61        send = ostrcat(send, "GET ", 1, 0);
62        send = ostrcat(send, tmppath, 1, 0);
63        send = ostrcat(send, " HTTP/1.1\r\nHost: ", 1, 0);
64        send = ostrcat(send, tmphost, 1, 0);
65        send = ostrcat(send, "\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);
66        debug(99, "send: %s", send);
67
68        tmpstr = gethttpreal(tmphost, tmppath, 80, NULL, NULL, NULL, 0, send, NULL, 5000, 1);
69        free(send), send = NULL;
70        debug(99, "tmpstr: %s", tmpstr);
71
72        waitmsgbar(20, 0, "wait 20 seconds", 1);
73       
74        titheklog(debuglevel, "/tmp/streamcould1_get", NULL, tmpstr);
75
76        if(tmpstr == NULL)
77        {
78                textbox(_("Message"), _("The page is temporarily unavailable") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
79                goto end;
80        }
81
82        cookie = string_resub("Set-Cookie: afc=", ";", tmpstr, 0);     
83        debug(99, "cookie: %s", cookie);
84
85        //get hash from tmpstr
86        char* pos1 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"fname\" value=");
87        fname = getxmlentry(pos1, "value=");
88        debug(99, "fname: %s", fname);
89        if(fname == NULL)
90        {
91                textbox(_("Message"), _("The page is temporarily unavailable") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
92                goto end;
93        }
94
95        char* pos2 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"id\" value=");
96        id = getxmlentry(pos2, "value=");
97        debug(99, "id: %s", id);
98        if(id == NULL) goto end;
99
100        char* pos3 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"op\" value=");
101        op = getxmlentry(pos3, "value=");
102        debug(99, "op1: %s", op);
103        op = string_replace_all("download2", "download1", op, 1);
104        debug(99, "op2: %s", op);
105
106        char* pos4 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"hash\" value=");
107        hashline = getxmlentry(pos4, "value=");
108
109        char* pos5 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"referer\" value=");
110        referer = getxmlentry(pos5, "value=");
111
112        char* pos6 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"imhuman\" value=");
113        imhuman = getxmlentry(pos6, "value=");
114
115        char* pos7 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"usr_login\" value=");
116        usr_login = getxmlentry(pos7, "value=");
117       
118        free(tmpstr); tmpstr = NULL;
119        debug(99, "op: %s", op);
120        if(op == NULL)
121        {
122                textbox(_("Message"), _("The page is temporarily unavailable") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
123                goto end;
124        }
125
126        hash = ostrcat(hash, "hash=", 1, 0);
127        hash = ostrcat(hash, hashline, 1, 0);
128        hash = ostrcat(hash, "&imhuman=Weiter+zum+Video", 1, 0);
129        hash = ostrcat(hash, "&usr_login=", 1, 0);     
130        hash = ostrcat(hash, usr_login, 1, 0);
131        hash = ostrcat(hash, "&referer=", 1, 0);
132        hash = ostrcat(hash, referer, 1, 0);
133        hash = ostrcat(hash, "&fname=", 1, 0);
134        hash = ostrcat(hash, fname, 1, 0);
135        hash = ostrcat(hash, "&id=", 1, 0);     
136        hash = ostrcat(hash, id, 1, 0);
137        hash = ostrcat(hash, "&op=", 1, 0);
138        hash = ostrcat(hash, op, 1, 0);
139        debug(99, "hash: %s", hash);
140        hashlen = oitoa(strlen(hash));
141
142        send = ostrcat(send, "POST ", 1, 0);
143        send = ostrcat(send, tmppath, 1, 0);
144        send = ostrcat(send, " HTTP/1.1\r\nContent-Length: ", 1, 0);
145        send = ostrcat(send, hashlen, 1, 0);
146        send = ostrcat(send, "\r\nAccept-Encoding: gzip\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.99 Safari/535.1\r\nHost: ", 1, 0);
147        send = ostrcat(send, tmphost, 1, 0);
148        send = ostrcat(send, "\r\nCookie: afc=", 1, 0);
149        send = ostrcat(send, cookie, 1, 0);
150        send = ostrcat(send, "\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n", 1, 0);
151        send = ostrcat(send, hash, 1, 0);
152        debug(99, "send: %s", send);
153
154        tmpstr = gethttpreal(tmphost, tmppath, 80, NULL, NULL, NULL, 0, send, NULL, 5000, 1);
155        free(send), send = NULL;
156        debug(99, "tmpstr: %s", tmpstr);
157        titheklog(debuglevel, "/tmp/streamcould2_post", NULL, tmpstr);
158
159        if(tmpstr == NULL)
160        {
161                textbox(_("Message"), _("The page is temporarily unavailable") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
162                goto end;
163        }
164
165//      streamlink = oregex(".*file: \".*(http:.*video.mp4).*\".*", tmpstr);
166        streamlink = string_resub("file: \"", "\"", tmpstr, 0);
167        titheklog(debuglevel, "/tmp/streamcould3_streamlink", NULL, streamlink);
168
169end:
170
171        free(tmphost); tmphost = NULL;
172        free(tmppath); tmppath = NULL;
173        free(tmpstr); tmpstr = NULL;
174        free(send); send = NULL;
175        free(hash), hash = NULL;
176        free(hashlen), hashlen = NULL;
177        free(op), op = NULL;
178        free(id), id = NULL;
179        free(fname), fname = NULL;
180        free(ip); ip = NULL;
181        free(cookie); cookie = NULL;
182        free(cmd); cmd = NULL; 
183        return streamlink;
184}
185
186#endif
Note: See TracBrowser for help on using the repository browser.