PageRenderTime 45ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/audl.php

https://github.com/gartz/RapidLeetch
PHP | 435 lines | 404 code | 21 blank | 10 comment | 72 complexity | 7d2366325e6c858a4c71a5a9d061618c MD5 | raw file
  1. <?php
  2. define('RAPIDLEECH', 'yes');
  3. error_reporting(0);
  4. //ini_set('display_errors', 1);
  5. set_time_limit(0);
  6. ini_alter("memory_limit", "1024M");
  7. ob_end_clean();
  8. ob_implicit_flush(TRUE);
  9. ignore_user_abort(1);
  10. clearstatcache();
  11. $PHP_SELF = !$PHP_SELF ? $_SERVER["PHP_SELF"] : $PHP_SELF;
  12. define('HOST_DIR', 'hosts/');
  13. define('IMAGE_DIR', 'images/');
  14. define('CLASS_DIR', 'classes/');
  15. define('CONFIG_DIR', 'configs/');
  16. define('RAPIDLEECH', 'yes');
  17. define('ROOT_DIR', realpath("./"));
  18. define('PATH_SPLITTER', (strstr(ROOT_DIR, "\\") ? "\\" : "/"));
  19. require_once(CONFIG_DIR.'setup.php');
  20. if (substr($options['download_dir'],-1) != '/') $options['download_dir'] .= '/';
  21. define('DOWNLOAD_DIR', (substr($options['download_dir'], 0, 6) == "ftp://" ? '' : $options['download_dir']));
  22. $nn = "\r\n";
  23. require_once("classes/other.php");
  24. define ( 'TEMPLATE_DIR', 'templates/'.$options['template_used'].'/' );
  25. login_check();
  26. require(TEMPLATE_DIR.'/header.php');
  27. ?>
  28. <br />
  29. <center>
  30. <?php
  31. if ($_REQUEST["GO"] == "GO") {
  32. $getlinks=explode("\r\n",trim($_REQUEST['links']));
  33. if (!count($getlinks) || (trim($_REQUEST['links']) == "")) {
  34. html_error("No link submited");
  35. }
  36. if ($_REQUEST['server_side'] == 'on') {
  37. // Get supported download plugins
  38. require_once(HOST_DIR."download/hosts.php");
  39. require_once(CLASS_DIR."ftp.php");
  40. require_once(CLASS_DIR."http.php");
  41. if (isset($_POST["useproxy"]) && $_POST["useproxy"] == true && (!$_POST["proxy"] || !strstr($_POST["proxy"], ":"))) {
  42. html_error(lang(20), 0);
  43. }
  44. ?>
  45. <table class="container" cellspacing="1">
  46. <tr>
  47. <td width="80%" align="center"><b><?php echo lang(21); ?></b></td>
  48. <td width="70" align="center"><b><?php echo lang(22); ?></b></td>
  49. </tr>
  50. <?php
  51. for ($i = 0; $i < count($getlinks); $i++) {
  52. echo ' <tr><td width="80%" nowrap="nowrap">'.$getlinks[$i].'</td><td width="70" id="status'.$i.'">'.lang(23)."</td></tr>".$nn;
  53. }
  54. ?>
  55. </table>
  56. <script type="text/javascript">
  57. /* <![CDATA[ */
  58. function updateStatus(id, status)
  59. {
  60. document.getElementById("status"+id).innerHTML = status;
  61. }
  62. function resetProgress()
  63. {
  64. document.getElementById("received").innerHTML = '0 KB';
  65. document.getElementById("percent").innerHTML = '0%';
  66. document.getElementById("progress").style.width = '0%';
  67. document.getElementById("speed").innerHTML = '0 KB/s';
  68. document.title = 'RAPIDLEECH PLUGMOD - Auto Download';
  69. }
  70. /* ]]> */
  71. </script>
  72. <?php
  73. for ($i = 0; $i < count($getlinks); $i++) {
  74. $isHost = false;
  75. $hideDiv = false;
  76. unset($FileName);
  77. unset($force_name);
  78. //$bytesReceived = 0; // fix for GLOBAL in geturl()
  79. unset($bytesReceived);
  80. $LINK = $getlinks[$i];
  81. $Referer = $LINK;
  82. $Url = parse_url($LINK);
  83. $_GET = Array();
  84. $_GET["GO"] = "GO"; // for insert_location()
  85. $_GET["path"] = ((substr($options['download_dir'], 0, 6) != "ftp://") ? realpath(DOWNLOAD_DIR) : $options['download_dir']);
  86. if (isset($_POST["useproxy"]) && $_POST["useproxy"] == true) {
  87. $_GET["useproxy"] = "on";
  88. $_GET["proxy"] = $_POST["proxy"];
  89. $pauth = ($_POST["proxyuser"] && $_POST["proxypass"]) ? base64_encode($_POST["proxyuser"].":".$_POST["proxypass"]) : "";
  90. }
  91. if (isset($_POST['premium_acc'])) {
  92. $_GET["premium_acc"] = "on";
  93. $_GET["premium_user"] = $_POST["premium_user"];
  94. $_GET["premium_pass"] = $_POST["premium_pass"];
  95. }
  96. if ($Url['scheme'] != 'http' && $Url['scheme'] != 'https' && $Url['scheme'] != 'ftp') {
  97. echo '<script type="text/javascript">updateStatus('.$i.", '".lang(24)."');</script>".$nn;
  98. } else {
  99. echo '<div id="progress'.$i.'" style="display:block;">'.$nn;
  100. foreach ($host as $site => $file) {
  101. if (preg_match("/^(.+\.)?".$site."$/i", $Url["host"])) {
  102. require_once (HOST_DIR . "DownloadClass.php");
  103. require_once (HOST_DIR . 'download/' . $file);
  104. $class = substr($file,0,-4);
  105. $firstchar = substr($file,0,1);
  106. if ($firstchar > 0) {
  107. $class = "d".$class;
  108. }
  109. if (class_exists($class)) {
  110. $hostClass = new $class();
  111. $hostClass->Download($LINK);
  112. }
  113. $isHost = true;
  114. }
  115. }
  116. if (!$isHost) {
  117. $FileName = basename($Url["path"]);
  118. insert_location("$PHP_SELF?filename=".urlencode($FileName)."&host=".$Url["host"]."&port=".$Url["port"]."&path=".urlencode($Url["path"].($Url["query"] ? "?".$Url["query"] : ""))."&referer=".urlencode($Referer)."&email=&partSize=&method=&proxy=".($_GET["useproxy"] ? $_GET["proxy"] : "")."&saveto=".$_GET["path"]."&link=".urlencode($LINK));
  119. }
  120. echo '<script type="text/javascript">updateStatus('.$i.", '".lang(25)."');</script>".$nn;
  121. $redir = "";
  122. $lastError = "";
  123. do {
  124. list($_GET["filename"],$tmp) = explode('?',urldecode(trim($_GET["filename"])));
  125. $_GET["saveto"] = urldecode(trim($_GET["saveto"]));
  126. $_GET["host"] = urldecode(trim($_GET["host"]));
  127. $_GET["path"] = urldecode(trim($_GET["path"]));
  128. $_GET["port"] = $_GET["port"] ? urldecode(trim($_GET["port"])) : 80;
  129. $_GET["referer"] = $_GET["referer"] ? urldecode(trim($_GET["referer"])) : 0;
  130. $_GET["link"] = urldecode(trim($_GET["link"]));
  131. $_GET["post"] = $_GET["post"] ? unserialize(stripslashes(urldecode(trim($_GET["post"])))) : 0;
  132. $_GET["cookie"] = $_GET["cookie"] ? urldecode(trim($_GET["cookie"])) : 0;
  133. $redirectto = "";
  134. $pauth = urldecode(trim($_GET["pauth"]));
  135. $auth = urldecode(trim($_GET["auth"]));
  136. if($_GET["auth"]) {
  137. $AUTH["use"] = TRUE;
  138. $AUTH["str"] = $_GET["auth"];
  139. } else {
  140. unset($AUTH);
  141. }
  142. $ftp = parse_url($_GET["link"]);
  143. $IS_FTP = $ftp["scheme"] == "ftp" ? TRUE : FALSE;
  144. $AUTH["ftp"] = array("login" => ($ftp["user"] ? $ftp["user"] : "anonymous"), "password" => ($ftp["pass"] ? $ftp["pass"] : "anonymous@leechget.com"));
  145. $pathWithName = $_GET["saveto"].PATH_SPLITTER.$_GET["filename"];
  146. while (stristr($pathWithName, "\\\\")) {
  147. $pathWithName = str_replace("\\\\", "\\", $pathWithName);
  148. }
  149. list($pathWithName,$tmp) = explode('?',$pathWithName);
  150. echo '<script type="text/javascript">updateStatus('.$i.", '".lang(26)."');</script>".$nn;
  151. if ($ftp["scheme"] == "ftp" && !$_GET["proxy"]) {
  152. $file = getftpurl($_GET["host"], $ftp["port"] ? $ftp["port"] : 21, $_GET["path"], $pathWithName);
  153. } else {
  154. $_GET["force_name"] ? $force_name = urldecode($_GET["force_name"]) : '';
  155. $file = geturl($_GET["host"], $_GET["port"], $_GET["path"], $_GET["referer"], $_GET["cookie"], $_GET["post"], $pathWithName, $_GET["proxy"], $pauth, $auth, $ftp["scheme"]);
  156. }
  157. if ($redir && $lastError && stristr($lastError,"Error! it is redirected to [")) {
  158. $redirectto = trim(cut_str($lastError,"Error! it is redirected to [","]"));
  159. $_GET["link"] = $redirectto;
  160. $purl = parse_url($redirectto);
  161. list($_GET["filename"],$tmp) = explode('?',basename($redirectto));
  162. $_GET["host"] = $purl["host"];
  163. $_GET["path"] = $purl["path"].($purl["query"] ? "?".$purl["query"] : "");
  164. $lastError = "";
  165. }
  166. if ($lastError) {
  167. echo '<script type="text/javascript">updateStatus('.$i.", '".$lastError."');</script>".$nn;
  168. } elseif ($file["bytesReceived"] == $file["bytesTotal"] || $file["size"] == "Unknown") {
  169. echo '<script type="text/javascript">updateStatus('.$i.", '100%');resetProgress();</script>".$nn;
  170. write_file(CONFIG_DIR."files.lst", serialize(array("name" => $file["file"], "size" => $file["size"], "date" => time(), "link" => $_GET["link"], "comment" => str_replace("\n", "\\n", str_replace("\r", "\\r", $_GET["comment"]))))."\r\n", 0);
  171. $hideDiv = true;
  172. } else {
  173. echo '<script type="text/javascript">updateStatus('.$i.", '".lang(27)."');</script>".$nn;
  174. }
  175. }
  176. while ($redirectto && !$lastError);
  177. echo "</div>".$nn;
  178. if ($hideDiv) {
  179. echo '<script type="text/javascript">document.getElementById("progress'.$i.'").style.display="none";</script>'.$nn;
  180. }
  181. }
  182. if ($_POST['server_dodelay'] == 'on') {
  183. sleep((int) $_POST['serversidedelay']);
  184. }
  185. }
  186. exit;
  187. } else {
  188. $start_link='index.php?audl=doum';
  189. if(isset($_REQUEST['useproxy']) && $_REQUEST['useproxy'] && (!$_REQUEST['proxy'] || !strstr($_REQUEST['proxy'], ":"))) {
  190. html_error(lang(20));
  191. } else {
  192. if ($_REQUEST['useproxy'] == "on") {
  193. $start_link.='&proxy='.$_REQUEST['proxy'];
  194. $start_link.='&proxyuser='.$_REQUEST['proxyuser'];
  195. $start_link.='&proxypass='.$_REQUEST['proxypass'];
  196. }
  197. }
  198. $start_link.='&imageshack_tor='.$_REQUEST['imageshack_acc'].'&premium_acc='.$_REQUEST['premium_acc'];
  199. if (isset($_POST['premium_user'])) {
  200. $start_link.='&premium_acc=on&premium_user='.urlencode($_POST['premium_user']).'&premium_pass='.urlencode($_POST['premium_pass']);
  201. } elseif (isset($_POST['premium_acc'])) {
  202. $start_link .= '&premium_acc=on';
  203. }
  204. ?>
  205. <script type="text/javascript">
  206. /* <![CDATA[ */
  207. var current_dlink=-1;
  208. var links = new Array();
  209. var start_link='<?php echo $start_link; ?>';
  210. function startauto() {
  211. current_dlink=-1;
  212. document.getElementById('auto').style.display='none';
  213. nextlink();
  214. }
  215. function nextlink() {
  216. if (document.getElementById('status'+current_dlink))
  217. document.getElementById('status'+current_dlink).innerHTML='<?php echo lang(28); ?>';
  218. current_dlink++;
  219. if (current_dlink < links.length) {
  220. document.getElementById('status'+current_dlink).innerHTML='<?php echo lang(26); ?>';
  221. opennewwindow(current_dlink);
  222. }
  223. }
  224. function opennewwindow(id) {
  225. window.frames["idownload"].location = start_link+'&link='+links[id];
  226. }
  227. function addLinks() {
  228. var tbody = document.getElementById("links").getElementsByTagName("tbody")[0];
  229. var stringLinks = document.getElementById("addlinks").value;
  230. var regexRN = new RegExp('\r\n',"g");
  231. var regexN = new RegExp('\n',"g");
  232. var stringLinksN = stringLinks.replace(regexRN, "\n");
  233. var arrayLinks = stringLinksN.split(regexN);
  234. for (var i = 0; i < arrayLinks.length; i++)
  235. {
  236. var row = document.createElement("tr");
  237. var td1 = document.createElement("td");
  238. td1.appendChild(document.createTextNode(arrayLinks[i]));
  239. var td2 = document.createElement("td");
  240. td2.appendChild(document.createTextNode("Waiting"));
  241. td2.setAttribute("id", "status"+links.length);
  242. row.appendChild(td1);
  243. row.appendChild(td2);
  244. tbody.appendChild(row);
  245. links[links.length] = arrayLinks[i];
  246. }
  247. document.getElementById("addlinks").value = "";
  248. }
  249. <?php
  250. for ($i=0; $i<count($getlinks); $i++)
  251. {
  252. echo "\tlinks[".$i."]='".urlencode($getlinks[$i])."';\n";
  253. }
  254. ?>
  255. /* ]]> */
  256. </script>
  257. <table id="links" class="container" cellspacing="1">
  258. <thead>
  259. <tr><td width="80%" align="left"><b><?php echo lang(21); ?></b></td><td width="70" align="left"><b><?php echo lang(22); ?></b></td></tr>
  260. </thead><tfoot>
  261. <tr id="auto"><td colspan="2" align="center"><input type="button" value="<?php echo lang(29); ?>" onclick="javascript:startauto();" /></td></tr>
  262. </tfoot><tbody>
  263. <?php
  264. for ($i=0; $i<count($getlinks); $i++)
  265. {
  266. echo ' <tr><td nowrap="nowrap">'.$getlinks[$i].'</td><td id="status'.$i.'">'.lang(307)."</td></tr>\r\n";
  267. }
  268. ?>
  269. </tbody>
  270. </table>
  271. <br />
  272. <iframe width="90%" height="300" src="" name="idownload"><?php echo lang(30); ?></iframe>
  273. <br />
  274. <table class="container" cellspacing="1">
  275. <tr>
  276. <td><textarea name="addlinks" id="addlinks" cols="100" rows="5"></textarea></td>
  277. <td><input type="button" value="<?php echo lang(31); ?>" onclick="javascript:addLinks();" /></td>
  278. </tr>
  279. </table>
  280. </center>
  281. <?php
  282. include(TEMPLATE_DIR.'footer.php');
  283. exit;
  284. }
  285. }
  286. ?>
  287. <script type="text/javascript">
  288. /* <![CDATA[ */
  289. function ViewPage(page)
  290. {
  291. document.getElementById('listing').style.display='none';
  292. document.getElementById('options').style.display='none';
  293. document.getElementById(page).style.display='block';
  294. }
  295. function HideAll()
  296. {
  297. document.getElementById('entered').style.display='none';
  298. /*document.getElementById('worked_frame').style.display='block';*/
  299. }
  300. /* ]]> */
  301. </script>
  302. <table class="container" cellspacing="0" cellpadding="1" id="entered">
  303. <tr><td>
  304. <form action="?GO=GO" method="post" >
  305. <table align="center" width="700" border="0">
  306. <tr id="menu">
  307. <td width="700" align="center">
  308. <a href="javascript:ViewPage('listing');"><?php echo lang(32); ?></a>&nbsp;|&nbsp;<a href="javascript:ViewPage('options');"><?php echo lang(33); ?></a>
  309. </td>
  310. </tr>
  311. <tr>
  312. <td width="100%" valign="top">
  313. <div id="listing" style="display:block;">
  314. <table border="0" style="width:710px;">
  315. <tr><td align="center"><textarea id="links" name="links" rows="15" cols="60" class="adlinks"></textarea></td></tr>
  316. <tr><td align="center" valign="top"><input type="submit" value="<?php echo lang(34); ?>" onclick="javascript:HideAll();" style="width:100px;" /></td></tr>
  317. </table>
  318. </div>
  319. <div id="options" style="display:none;">
  320. <table cellspacing="5" style="width:710px;">
  321. <tbody>
  322. <tr>
  323. <td align="center">
  324. <table align="center">
  325. <tr>
  326. <td>
  327. <input type="checkbox" id="useproxy" name="useproxy" onclick="javascript:var displ=this.checked?'':'none';document.getElementById('proxy').style.display=displ;"<?php echo $_COOKIE["useproxy"] ? ' checked="checked"' : ''; ?> />&nbsp;<?php echo lang(35); ?>
  328. </td>
  329. <td>&nbsp;</td>
  330. <td id="proxy"<?php echo $_COOKIE["useproxy"] ? '' : ' style="display: none;"'; ?>>
  331. <table border="0">
  332. <tr><td><?php echo lang(36); ?>:</td><td><input name="proxy" size="25"<?php echo $_COOKIE["proxy"] ? ' value="'.$_COOKIE["proxy"].'"' : ''; ?> /></td></tr>
  333. <tr><td><?php echo lang(37); ?>:</td><td><input name="proxyuser" size="25"<?php echo $_COOKIE["proxyuser"] ? ' value="'.$_COOKIE["proxyuser"].'"' : ''; ?> /></td></tr>
  334. <tr><td><?php echo lang(38); ?>:</td><td><input name="proxypass" size="25"<?php echo $_COOKIE["proxypass"] ? ' value="'.$_COOKIE["proxypass"].'"' : ''; ?> /></td></tr>
  335. </table>
  336. </td>
  337. </tr>
  338. <tr>
  339. <td>
  340. </td>
  341. </tr>
  342. <tr>
  343. <td>
  344. <input type="checkbox" value="on" name="imageshack_acc" id="imageshack_acc"<?php if (is_array($imageshack_acc)) { echo ' checked="checked"'; } ?> />&nbsp;<?php echo lang(39); ?>
  345. </td>
  346. </tr>
  347. <?php if ($maysaveto === true) { ?>
  348. <tr>
  349. <td>
  350. <input type="checkbox" name="saveto" id="saveto" onclick="javascript:var displ=this.checked?'':'none';document.getElementById('path').style.display=displ;"<?php echo $_COOKIE["saveto"] ? ' checked="checked"' : ''; ?> />&nbsp;<?php echo lang(40); ?>
  351. </td>
  352. <td>&nbsp;</td>
  353. <td id="path" <?php echo $_COOKIE["saveto"] ? '' : ' style="display: none;"'; ?>>
  354. <?php echo lang(41); ?>:&nbsp;<input name="savedir" size="30" value="<?php echo realpath(($_COOKIE["savedir"] ? $_COOKIE["savedir"] : (strstr(realpath('./'), ':') ? addslashes($workpath) : $workpath))) ?>" />
  355. </td>
  356. </tr>
  357. <?php } ?>
  358. <tr>
  359. <td><input type="checkbox" name="premium_acc" id="premium_acc" onclick="javascript:var displ=this.checked?'':'none';document.getElementById('premiumblock').style.display=displ;"<?php if (count($premium_acc) > 0) { echo ' checked="checked"'; } ?> />&nbsp;<?php echo lang(42); ?></td>
  360. <td>&nbsp;</td>
  361. <td id="premiumblock" style="display: none;">
  362. <table width="150" border="0">
  363. <tr><td><?php echo lang(37); ?>:&nbsp;</td><td><input type="text" name="premium_user" id="premium_user" size="15" value="" /></td></tr>
  364. <tr><td><?php echo lang(38); ?>:&nbsp;</td><td><input type="password" name="premium_pass" id="premium_pass" size="15" value="" /></td></tr>
  365. </table>
  366. </td>
  367. </tr>
  368. <tr>
  369. <td>
  370. <label><input type="checkbox" name="ytube_mp4" onclick="javascript:var displ=this.checked?'':'none';document.getElementById('ytubeopt').style.display=displ;"<?php echo isset($_POST['yt_fmt']) ? ' checked="checked"' : ''; ?> />&nbsp;<?php echo lang(206); ?></label>
  371. <table width="150" border="0" id="ytubeopt" style="display: none;">
  372. <tr>
  373. <td colspan="2" style="white-space: nowrap;"><input type="checkbox" name="ytdirect" /><small> <?php echo lang(217); ?></small></td>
  374. </tr>
  375. <tr>
  376. <td><small><?php echo lang(218); ?></small></td>
  377. <td>
  378. <select name="yt_fmt" id="yt_fmt">
  379. <option value="highest" selected="selected"><?php echo lang(219); ?></option>
  380. <option value="0"><?php echo lang(220); ?></option>
  381. <option value="5"><?php echo lang(221); ?></option>
  382. <option value="6"><?php echo lang(222); ?></option>
  383. <option value="13"><?php echo lang(223); ?></option>
  384. <option value="17"><?php echo lang(224); ?></option>
  385. <option value="18"><?php echo lang(225); ?></option>
  386. <option value="22"><?php echo lang(226); ?></option>
  387. <option value="34"><?php echo lang(227); ?></option>
  388. <option value="35"><?php echo lang(228); ?></option>
  389. </select>
  390. </td>
  391. </tr>
  392. </table>
  393. </td>
  394. </tr>
  395. <tr><td><label><input type="checkbox" name="server_side" value="on" onclick="javascript:var displ=this.checked?'':'none';document.getElementById('serverside').style.display=displ;" />&nbsp;<?php echo lang(43); ?></label></td></tr>
  396. <tr id="serverside" style="display: none;">
  397. <td><input type="checkbox" name="server_dodelay" value="on" onclick="javascript:var displ=this.checked?'':'none';document.getElementById('serverdelay').style.display=displ;" /><?php echo lang(44); ?></td>
  398. <td>&nbsp;</td>
  399. <td id="serverdelay" style="display: none;"><?php echo lang(45); ?>: <input type="text" name="serversidedelay" /></td>
  400. </tr>
  401. </table>
  402. </td>
  403. </tr>
  404. </tbody>
  405. </table>
  406. </div>
  407. </td>
  408. </tr>
  409. </table>
  410. </form>
  411. </td></tr>
  412. </table>
  413. </center>
  414. <?php include(TEMPLATE_DIR.'footer.php'); ?>