Changeset 32084
- Timestamp:
- 01/04/15 16:59:26 (8 years ago)
- Location:
- titan/plugins/tithek
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
titan/plugins/tithek/filenuke.h
r29534 r32084 26 26 tmplink = ostrcat(link, NULL, 0, 0); 27 27 28 debug(99, "tmplink: %s", tmplink); 29 30 char* referer = NULL; 31 // htmldecode(referer, tmplink); 32 referer = htmlencode(tmplink); 33 referer = string_replace_all("/", "%2F", referer, 1); 34 debug(99, "referer: %s", referer); 35 36 28 37 if(ostrstr(link, "/Out/?s=") != NULL) 29 38 { … … 64 73 debug(99, "tmppath: %s", tmppath); 65 74 */ 75 66 76 send = ostrcat(send, "GET ", 1, 0); 67 77 send = ostrcat(send, tmppath, 1, 0); 68 send = ostrcat(send, " HTTP/1.1\r\nAccept-Encoding: identity\r\n", 1, 0); 69 send = ostrcat(send, "Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4\r\n", 1, 0); 70 send = ostrcat(send, "Host: ", 1, 0); 78 send = ostrcat(send, " HTTP/1.0", 1, 0); 79 send = ostrcat(send, "\r\nHost: ", 1, 0); 71 80 send = ostrcat(send, tmphost, 1, 0); 72 send = ostrcat(send, "\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", 1, 0); 73 send = ostrcat(send, "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n", 1, 0); 74 send = ostrcat(send, "Connection: close\r\nCookie: xxx2=ok;\r\n\r\n", 1, 0); 81 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", 1, 0); 82 send = ostrcat(send, "\r\nConnection: close", 1, 0); 83 send = ostrcat(send, "\r\nAccept-Encoding: gzip", 1, 0); 84 send = ostrcat(send, "\r\n\r\n", 1, 0); 75 85 debug(99, "send: %s", send); 76 86 … … 114 124 fname = getxmlentry(pos1, "value="); 115 125 debug(99, "fname: %s", fname); 116 if(fname == NULL) goto end;126 // if(fname == NULL) goto end; 117 127 118 128 char* pos2 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"id\" value="); 119 129 id = getxmlentry(pos2, "value="); 120 130 debug(99, "id: %s", id); 121 if(id == NULL) goto end; 131 // if(id == NULL) goto end; 132 133 char* cokkie = string_resub("Set-Cookie: ", ";", tmpstr, 0); 122 134 123 135 char* pos3 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"op\" value="); … … 125 137 free(tmpstr); tmpstr = NULL; 126 138 debug(99, "op: %s", op); 127 if(op == NULL) goto end; 128 139 // if(op == NULL) goto end; 140 141 142 143 /* 129 144 hash = ostrcat(hash, "id=", 1, 0); 130 145 hash = ostrcat(hash, id, 1, 0); … … 134 149 hash = ostrcat(hash, op, 1, 0); 135 150 debug(99, "hash: %s", hash); 151 */ 152 hash = ostrcat(hash, "method_free=Free&referer=", 1, 0); 153 hash = ostrcat(hash, referer, 1, 0); 154 hash = ostrcat(hash, "&usr_login=&op=download1", 1, 0); 155 debug(99, "hash: %s", hash); 136 156 137 157 hashlen = oitoa(strlen(hash)); 138 158 139 159 //create send string 140 send = ostrcat(send, "POST /", 1, 0); 141 send = ostrcat(send, id, 1, 0); 160 // send = ostrcat(send, "POST /", 1, 0); 161 // send = ostrcat(send, id, 1, 0); 162 send = ostrcat(send, "POST ", 1, 0); 163 send = ostrcat(send, tmppath, 1, 0); 164 142 165 send = ostrcat(send, " HTTP/1.0\r\nContent-Length: ", 1, 0); 143 166 send = ostrcat(send, hashlen, 1, 0); 144 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); 167 send = ostrcat(send, "\r\nAccept-Encoding: gzip", 1, 0); 168 send = ostrcat(send, "\r\nHost: ", 1, 0); 145 169 send = ostrcat(send, tmphost, 1, 0); 146 send = ostrcat(send, "\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n", 1, 0); 170 send = ostrcat(send, "\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:30.0) Gecko/20100101 Firefox/30.0", 1, 0); 171 send = ostrcat(send, "\r\nConnection: close", 1, 0); 172 send = ostrcat(send, "\r\nReferer: ", 1, 0); 173 send = ostrcat(send, link, 1, 0); 174 send = ostrcat(send, "\r\nCookie: ", 1, 0); 175 send = ostrcat(send, cokkie, 1, 0); 176 send = ostrcat(send, "\r\nContent-Type: application/x-www-form-urlencoded", 1, 0); 177 send = ostrcat(send, "\r\n\r\n", 1, 0); 147 178 send = ostrcat(send, hash, 1, 0); 148 179 debug(99, "send: %s", send); 180 181 free(cokkie), cokkie = NULL; 149 182 150 183 post = gethttpreal(tmphost, tmppath, 80, NULL, NULL, NULL, 0, send, NULL, 5000, 0); … … 169 202 titheklog(debuglevel, "/tmp/filenuke4_post2", NULL, NULL, NULL, post); 170 203 171 free(tmpstr),tmpstr = NULL; 172 free(b36code),b36code = NULL; 173 tmpstr = string_resub(";return p}('", ");'", post, 0); 174 debug(99, "tmpstr: %s", tmpstr); 175 titheklog(debuglevel, "/tmp/filenuke5_tmpstr2", NULL, NULL, NULL, tmpstr); 176 177 b36code = oregex(".*;',[0-9]{2,2},[0-9]{2,2},'(.*)'.split.*", post); 178 179 b36code = string_replace_all("||", "| |", b36code, 1); 180 debug(99, "b36code: %s", b36code); 181 titheklog(debuglevel, "/tmp/filenuke6_b36code2", NULL, NULL, NULL, b36code); 182 183 struct splitstr* ret1 = NULL; 184 int count = 0; 185 int i = 0; 186 ret1 = strsplit(b36code, "|", &count); 187 188 charlist = ostrcat(charlist, "\"", 1, 0); 189 charlist = ostrcat(charlist, "|", 1, 0); 190 charlist = ostrcat(charlist, "'", 1, 0); 191 charlist = ostrcat(charlist, "|", 1, 0); 192 charlist = ostrcat(charlist, ".", 1, 0); 193 charlist = ostrcat(charlist, "|", 1, 0); 194 charlist = ostrcat(charlist, ";", 1, 0); 195 charlist = ostrcat(charlist, "|", 1, 0); 196 charlist = ostrcat(charlist, ":", 1, 0); 197 charlist = ostrcat(charlist, "|", 1, 0); 198 charlist = ostrcat(charlist, "=", 1, 0); 199 charlist = ostrcat(charlist, "|", 1, 0); 200 charlist = ostrcat(charlist, ",", 1, 0); 201 charlist = ostrcat(charlist, "|", 1, 0); 202 charlist = ostrcat(charlist, " ", 1, 0); 203 charlist = ostrcat(charlist, "|", 1, 0); 204 charlist = ostrcat(charlist, "\\", 1, 0); 205 charlist = ostrcat(charlist, "|", 1, 0); 206 charlist = ostrcat(charlist, "/", 1, 0); 207 charlist = ostrcat(charlist, "|", 1, 0); 208 charlist = ostrcat(charlist, "(", 1, 0); 209 charlist = ostrcat(charlist, "|", 1, 0); 210 charlist = ostrcat(charlist, ")", 1, 0); 211 212 for(i = 0; i < count; i++) 213 { 214 if(ostrstr((&ret1[i])->part, " ") != NULL) 204 streamlink = string_resub("var lnk1 = '", "';", post, 0); 205 if(streamlink != NULL) 206 streamlink = ostrcat(streamlink, "|User-Agent=Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:30.0) Gecko/20100101 Firefox/30.0", 1, 0); 207 else 208 { 209 free(tmpstr),tmpstr = NULL; 210 free(b36code),b36code = NULL; 211 tmpstr = string_resub(";return p}('", ");'", post, 0); 212 debug(99, "tmpstr: %s", tmpstr); 213 titheklog(debuglevel, "/tmp/filenuke5_tmpstr2", NULL, NULL, NULL, tmpstr); 214 215 b36code = oregex(".*;',[0-9]{2,2},[0-9]{2,2},'(.*)'.split.*", post); 216 217 b36code = string_replace_all("||", "| |", b36code, 1); 218 debug(99, "b36code: %s", b36code); 219 titheklog(debuglevel, "/tmp/filenuke6_b36code2", NULL, NULL, NULL, b36code); 220 221 struct splitstr* ret1 = NULL; 222 int count = 0; 223 int i = 0; 224 ret1 = strsplit(b36code, "|", &count); 225 226 charlist = ostrcat(charlist, "\"", 1, 0); 227 charlist = ostrcat(charlist, "|", 1, 0); 228 charlist = ostrcat(charlist, "'", 1, 0); 229 charlist = ostrcat(charlist, "|", 1, 0); 230 charlist = ostrcat(charlist, ".", 1, 0); 231 charlist = ostrcat(charlist, "|", 1, 0); 232 charlist = ostrcat(charlist, ";", 1, 0); 233 charlist = ostrcat(charlist, "|", 1, 0); 234 charlist = ostrcat(charlist, ":", 1, 0); 235 charlist = ostrcat(charlist, "|", 1, 0); 236 charlist = ostrcat(charlist, "=", 1, 0); 237 charlist = ostrcat(charlist, "|", 1, 0); 238 charlist = ostrcat(charlist, ",", 1, 0); 239 charlist = ostrcat(charlist, "|", 1, 0); 240 charlist = ostrcat(charlist, " ", 1, 0); 241 charlist = ostrcat(charlist, "|", 1, 0); 242 charlist = ostrcat(charlist, "\\", 1, 0); 243 charlist = ostrcat(charlist, "|", 1, 0); 244 charlist = ostrcat(charlist, "/", 1, 0); 245 charlist = ostrcat(charlist, "|", 1, 0); 246 charlist = ostrcat(charlist, "(", 1, 0); 247 charlist = ostrcat(charlist, "|", 1, 0); 248 charlist = ostrcat(charlist, ")", 1, 0); 249 250 for(i = 0; i < count; i++) 215 251 { 216 printf("continue\n"); 217 continue; 252 if(ostrstr((&ret1[i])->part, " ") != NULL) 253 { 254 printf("continue\n"); 255 continue; 256 } 257 char* x = oltostr(i, 36); 258 259 struct splitstr* ret2 = NULL; 260 int count2 = 0; 261 int i2 = 0; 262 tmpstr2 = ostrcat(charlist, NULL, 0, 0); 263 ret2 = strsplit(tmpstr2, "|", &count2); 264 for(i2 = 0; i2 < count2; i2++) 265 { 266 struct splitstr* ret3 = NULL; 267 int count3 = 0; 268 int i3 = 0; 269 tmpstr3 = ostrcat(charlist, NULL, 0, 0); 270 ret3 = strsplit(tmpstr3, "|", &count3); 271 for(i3 = 0; i3 < count3; i3++) 272 { 273 debug(99, "-----------------------------------------------"); 274 debug(99, "replace %s%s%s <> %s%s%s",(&ret2[i2])->part, x, (&ret3[i3])->part, (&ret2[i2])->part, (&ret1[i])->part, (&ret3[i3])->part); 275 276 base = ostrcat(base, (&ret2[i2])->part, 1, 0); 277 base = ostrcat(base, x, 1, 0); 278 base = ostrcat(base, (&ret3[i3])->part, 1, 0); 279 search = ostrcat(search, (&ret2[i2])->part, 1, 0); 280 search = ostrcat(search, (&ret1[i])->part, 1, 0); 281 search = ostrcat(search, (&ret3[i3])->part, 1, 0); 282 tmpstr = string_replace_all(base, search, tmpstr, 1); 283 free(base), base = NULL; 284 free(search), search = NULL; 285 } 286 free(ret3), ret3 = NULL; 287 free(tmpstr3), tmpstr3 = NULL; 288 } 289 free(ret2), ret2 = NULL; 290 free(tmpstr2), tmpstr2 = NULL; 291 free(x); 218 292 } 219 char* x = oltostr(i, 36); 220 221 struct splitstr* ret2 = NULL; 222 int count2 = 0; 223 int i2 = 0; 224 tmpstr2 = ostrcat(charlist, NULL, 0, 0); 225 ret2 = strsplit(tmpstr2, "|", &count2); 226 for(i2 = 0; i2 < count2; i2++) 227 { 228 struct splitstr* ret3 = NULL; 229 int count3 = 0; 230 int i3 = 0; 231 tmpstr3 = ostrcat(charlist, NULL, 0, 0); 232 ret3 = strsplit(tmpstr3, "|", &count3); 233 for(i3 = 0; i3 < count3; i3++) 234 { 235 debug(99, "-----------------------------------------------"); 236 debug(99, "replace %s%s%s <> %s%s%s",(&ret2[i2])->part, x, (&ret3[i3])->part, (&ret2[i2])->part, (&ret1[i])->part, (&ret3[i3])->part); 237 238 base = ostrcat(base, (&ret2[i2])->part, 1, 0); 239 base = ostrcat(base, x, 1, 0); 240 base = ostrcat(base, (&ret3[i3])->part, 1, 0); 241 search = ostrcat(search, (&ret2[i2])->part, 1, 0); 242 search = ostrcat(search, (&ret1[i])->part, 1, 0); 243 search = ostrcat(search, (&ret3[i3])->part, 1, 0); 244 tmpstr = string_replace_all(base, search, tmpstr, 1); 245 free(base), base = NULL; 246 free(search), search = NULL; 247 } 248 free(ret3), ret3 = NULL; 249 free(tmpstr3), tmpstr3 = NULL; 250 } 251 free(ret2), ret2 = NULL; 252 free(tmpstr2), tmpstr2 = NULL; 253 free(x); 254 } 255 free(ret1), ret1 = NULL; 256 free(b36code), b36code = NULL; 257 free(post), post = NULL; 258 free(charlist), charlist = NULL; 259 260 titheklog(debuglevel, "/tmp/filenuke7_tmpstr_last", NULL, NULL, NULL, tmpstr); 261 262 streamlink = oregex(".*file.*(http:.*video.flv).*image.*", tmpstr); 263 if(streamlink == NULL) 264 streamlink = oregex(".*file.*(http:.*video.mp4).*image.*", tmpstr); 265 266 if(streamlink == NULL) 267 streamlink = oregex(".*file.*(http:.*video.mkv).*image.*", tmpstr); 268 269 if(streamlink == NULL) 270 streamlink = oregex(".*file.*(http:.*video.avi).*image.*", tmpstr); 271 272 if(streamlink == NULL) 273 streamlink = oregex(".*src=.*(http:.*video.mp4).*\".*", tmpstr); 274 275 if(streamlink == NULL) 276 streamlink = oregex(".*src=.*(http:.*video.mkv).*\".*", tmpstr); 277 278 if(streamlink == NULL) 279 streamlink = oregex(".*src=.*(http:.*video.avi).*\".*", tmpstr); 280 281 if(streamlink == NULL) 282 streamlink = oregex(".*value=.*(http:.*video.mp4).*\".*", tmpstr); 283 284 if(streamlink == NULL) 285 streamlink = oregex(".*value=.*(http:.*video.mkv).*\".*", tmpstr); 286 287 if(streamlink == NULL) 288 streamlink = oregex(".*value=.*(http:.*video.avi).*\".*", tmpstr); 293 free(ret1), ret1 = NULL; 294 free(b36code), b36code = NULL; 295 free(post), post = NULL; 296 free(charlist), charlist = NULL; 297 298 titheklog(debuglevel, "/tmp/filenuke7_tmpstr_last", NULL, NULL, NULL, tmpstr); 299 300 if(streamlink == NULL) 301 streamlink = oregex(".*file.*(http:.*video.flv).*image.*", tmpstr); 302 303 if(streamlink == NULL) 304 streamlink = oregex(".*file.*(http:.*video.mp4).*image.*", tmpstr); 305 306 if(streamlink == NULL) 307 streamlink = oregex(".*file.*(http:.*video.mkv).*image.*", tmpstr); 308 309 if(streamlink == NULL) 310 streamlink = oregex(".*file.*(http:.*video.avi).*image.*", tmpstr); 311 312 if(streamlink == NULL) 313 streamlink = oregex(".*src=.*(http:.*video.mp4).*\".*", tmpstr); 314 315 if(streamlink == NULL) 316 streamlink = oregex(".*src=.*(http:.*video.mkv).*\".*", tmpstr); 317 318 if(streamlink == NULL) 319 streamlink = oregex(".*src=.*(http:.*video.avi).*\".*", tmpstr); 320 321 if(streamlink == NULL) 322 streamlink = oregex(".*value=.*(http:.*video.mp4).*\".*", tmpstr); 323 324 if(streamlink == NULL) 325 streamlink = oregex(".*value=.*(http:.*video.mkv).*\".*", tmpstr); 326 327 if(streamlink == NULL) 328 streamlink = oregex(".*value=.*(http:.*video.avi).*\".*", tmpstr); 329 330 if(streamlink == NULL) 331 streamlink = string_resub("var lnk1 = '", "';", tmpstr, 0); 332 } 289 333 290 334 titheklog(debuglevel, "/tmp/filenuke8_streamlink", NULL, NULL, NULL, streamlink); -
titan/plugins/tithek/tithek.c
r30271 r32084 45 45 #include "shared.h" 46 46 #include "thefile.h" 47 #include "promptfile.h" 47 48 48 49 char pluginname[] = "TiTan Mediathek"; -
titan/plugins/tithek/tithek_global.h
r30622 r32084 245 245 else if(ostrstr(tmplink, "myvideo") != NULL) 246 246 streamurl = myvideo(url); 247 else if(ostrstr(tmplink, "promptfile") != NULL) 248 streamurl = promptfile(url); 247 249 else 248 250 textbox(_("Message"), _("The hoster is not yet supported !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 5, 0); -
titan/plugins/tithek/tithek_header.h
r30271 r32084 82 82 char* shared(char* link); 83 83 char* thefile(char* link); 84 char* promptfile(char* link); 84 85 int internetradio_search_local(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title, char* searchstr, int flag); 85 86 int internettv_search_local(struct skin* grid, struct skin* listbox, struct skin* countlabel, struct skin* load, char* link, char* title, char* searchstr, int flag);
Note: See TracChangeset
for help on using the changeset viewer.