Warning: fopen(/vol/web/dl/todo.txt) [function.fopen]: failed to open stream: No such file or directory in /volume1/web/dl/rs.php on line 94
Warning: fgets(): supplied argument is not a valid stream resource in /volume1/web/dl/rs.php on line 95
Warning: fclose(): supplied argument is not a valid stream resource in /volume1/web/dl/rs.php on line 96
29.11.2009 10:59:21 - kein Link zur Verfügung
<?
/**
Genereller Ablauf:
1.) Normale Downloadseite öffnen
2.) Link zur Countdownseite aus Quelltext holen
3.) Countdown von 60 Sekunde verstreichen lassen
4.) Aus Countdownseite während Countdown läuft definitiven Downoadlink holen
5.) Nach Countdownablauf cURL auf definitiven Downloadlink ausführen
**/
//Var Deklaration
$dir = "/vol/web/dl/";
$txt_err = $dir."error.txt";
$txt_rdy = $dir."ready.txt";
$txt_src = $dir."todo.txt";
// Countdownzeit für Datei holen
function get_countdown_time($quelltext,$prefix,$suffix){
$countdown_time = substr($quelltext,strpos($quelltext,$prefix)+strlen($prefix),strpos($quelltext,$suffix)-strpos($quelltext,$prefix)-strlen($prefix));
return $countdown_time;
}
// Größe holen
function get_size($quelltext){
$size = substr($quelltext, strpos($quelltext, 'color:#8E908F')+17, (strpos($quelltext, ' KB</font></p>')- strpos($quelltext, 'color:#8E908F')-17));
return $size;
}
// Link zur Countdownseite
function dl_link_1($quelltext){
$dl_link = substr($quelltext, strpos($quelltext, 'id="ff" action="')+16, (strpos($quelltext, '" method="post') - strpos($quelltext, 'id="ff" action="')-16));
return $dl_link;
}
// Downloadlink für Datei holen
function dl_link_2($quelltext){
$dl_link = substr($quelltext, strpos($quelltext, 'name="dlf" action="')+19, (strpos($quelltext, '" method="post') - strpos($quelltext, 'name="dlf" action="')-19));
return $dl_link;
}
function dl_file($quelltext){
$dl_link = substr($quelltext, strpos($quelltext, 'id="ff" action="')+16, (strpos($quelltext, '" method="post') - strpos($quelltext, 'id="ff" action="')-16));
$file_arr = explode('/', $dl_link);
$file = array_pop($file_arr);
return $file;
}
function dl_verification($quelltext){
// DL-Limit erreicht. Wielange zu warten?
if(eregi('download limit',$quelltext)){
$dl_wait_time = substr($quelltext, strpos($quelltext, 'about ')+6, (strpos($quelltext, 'minutes') - strpos($quelltext, 'about ')-7));
echo 'Standby...<br>'.$dl_wait_time.' min. to wait! '.date(' - d.m.Y H:i:s');
echo $dl_wait_time;
return $dl_wait_time;
// Bereits ein DL am laufen.
}elseif(eregi('IP address',$quelltext)){
echo 'No parallel DLs';
return false;
// Datei nicht vorhanden
}elseif(eregi('check the download link',$quelltext)){
echo 'Link corrupt';
return false;
// Datei nicht vorhanden - durch RS gelöscht
}elseif(eregi('violation of our terms',$quelltext)){
echo 'File deleted by RS';
return false;
}elseif(eregi('suspected to contain',$quelltext)){
echo 'File blocked by RS';
return false;
// Dl möglich.
}else{
return "true";
}
}
// Link in jeweiliger Datei speichern : ready.txt oder error.txt
function save_link($txt_file, $txt_link){
$handle = fopen($txt_file, 'a');
$txt_link .= chr(9);
$txt_link .= date(' - d.m.Y H:i:s');
fwrite($handle, $txt_link);
fwrite($handle, "\r\n");
fclose($handle);
}
// Obersten Eintrag aus der todo Datei einlsesen
function get_link($txt_src){
$handle = fopen($txt_src, 'r');
$temp_link = fgets($handle, 1024);
fclose($handle);
return $temp_link;
}
// Nach erfolgreichem Download ersten Eintrag löschen
function delet_first_entry($txt_src){
$array = file($txt_src);
array_shift($array);
$fp = fopen($txt_src,"w");
for ($i = 0; $i<count($array); $i++){
fputs($fp, $array[$i]);
}
fclose($fp);
}
function first_entry_last($txt_src){
$array = file($txt_src);
$shifted = array_shift($array);
array_push($array,$shifted);
$fp = fopen($txt_src,"w");
for ($i = 0; $i<count($array); $i++){
fputs($fp, $array[$i]);
}
fclose($fp);
}
// Aktuellen Link einlesen - DL Link nur löschen, wenn DL möglich.
$rs_adresse = trim(get_link($txt_src));
//Prüfung ob es einen Link gibt, wenn nicht Abbruch
if ($rs_adresse != "") {
// Link zur Countdownseite und Dateinamen holen
echo 'Rapidshare-URL : <a href="'.$rs_adresse.'">'.$rs_adresse.'</a><br>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $rs_adresse);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.0.7) Gecko/2009011913 Firefox/3.0.6');
$page_link = curl_exec($ch);
curl_close($ch);
$link_countdown = dl_link_1($page_link);
$size = get_size($page_link);
$file = dl_file($page_link);
echo 'Größe ist: '.$size.'<br>';
echo 'Countdown-URL : '.$link_countdown.'<br>';
echo 'Filename : '.$file.'<br>';
// Wenn RS-Link ok ist:
if((dl_verification($page_link)) == true){
// Countdownseite öffnen und Dateilink holen
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link_countdown);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'dl.start=Free');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6');
$page_countdown = curl_exec($ch);
curl_close($ch);
// Abfragen ob Download möglich ist
if(($dl_verify = dl_verification($page_countdown)) == "true"){
echo $dl_verify;
$def_dl_link = dl_link_2($page_countdown);
echo 'Download-URL : '.$def_dl_link.'<br>';
echo 'DL possible<br>';
echo 'Waiting for 60 seconds!<br>';
// Zwangspause
$countdown_prefix = "var c=";
$countdown_suffix = "; ";
$countdown_time = get_countdown_time($page_countdown,$countdown_prefix,$countdown_suffix);
// Random Offset zw. 2 und 120 Sekunden
srand((double)microtime()*1000000);
$offset = rand(2,120);
$i = $countdown_time+$offset;
echo "Waiting for $i seconds!<br>";
while($i >= 1){
echo $i.'-';
flush();
sleep(1);
$i--;
}
echo '<br>Def. DL-Link : '.$def_dl_link;
echo '<br>DL started.'.date(' - d.m.Y H:i:s')."<br><br>";
flush();
// nach Countdownablauf Dateidownload starten
$handle = fopen($dir.$file,'w');
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $def_dl_link);
curl_setopt($ch2, CURLOPT_TIMEOUT, 90000);
curl_setopt($ch2, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6');
curl_setopt($ch2, CURLOPT_FILE, $handle);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch2);
fclose($handle);
curl_close($ch2);
echo "<br>DL finished - ".date('d.m.Y H:i:s')."<br><br><br><br><br>";
// erfolgreichen Downloadlink in ready.txt speichern
save_link($txt_rdy, $rs_adresse);
delet_first_entry($txt_src);
} else if ($dl_verify != false) {
$wait_time = $dl_verify;
$i = $wait_time * 2;
while($i >= 1){
$min = $i / 2;
echo $min.'-';
flush();
sleep(30);
$i--;
}
}
}else{
// Aktuellen Link in error.txt speichern
save_link($dir.$txt_err, $rs_adresse);
delet_first_entry();
}
system("php /vol/xxx/dl/rs.php >> /vol/xxx/dl/err.html&");
} else {
$load_it = "false";
echo date('d.m.Y H:i:s')." - kein Link zur Verfügung<br><br><br><br>";
}
?>
<?
echo "RS-Downloader Ver. 0.2<br><br>";
/**
Genereller Ablauf:
1.) Normale Downloadseite öffnen
2.) Link zur Countdownseite aus Quelltext holen
3.) Countdown von 60 Sekunde verstreichen lassen
4.) Aus Countdownseite während Countdown läuft definitiven Downoadlink holen
5.) Nach Countdownablauf cURL auf definitiven Downloadlink ausführen
**/
// Link zur Countdownseite
function dl_link_1($quelltext){
$dl_link = substr($quelltext, strpos($quelltext, 'id="ff" action="')+16, (strpos($quelltext, '" method="post') - strpos($quelltext, 'id="ff" action="')-16));
return $dl_link;
}
// Downloadlink für Datei holen
function dl_link_2($quelltext){
$dl_link = substr($quelltext, strpos($quelltext, 'name="dlf" action="')+19, (strpos($quelltext, '" method="post') - strpos($quelltext, 'name="dlf" action="')-19));
return $dl_link;
}
function dl_file($quelltext){
$dl_link = substr($quelltext, strpos($quelltext, 'id="ff" action="')+16, (strpos($quelltext, '" method="post') - strpos($quelltext, 'id="ff" action="')-16));
$file_arr = explode('/', $dl_link);
$file = array_pop($file_arr);
return $file;
}
function dl_verification($quelltext){
// DL-Limit erreicht. Wielange zu warten?
if(eregi('download limit',$quelltext)){
$dl_wait_time = substr($quelltext, strpos($quelltext, 'about ')+6, (strpos($quelltext, 'minutes') - strpos($quelltext, 'about ')-7));
echo 'Standby...<br>'.$dl_wait_time.' min. to wait!';
return false;
// Bereits ein DL am laufen.
}elseif(eregi('IP address',$quelltext)){
echo 'No parallel DLs';
return false;
// Datei nicht vorhanden
}elseif(eregi('check the download link',$quelltext)){
echo 'Link corrupt';
return false;
// Datei nicht vorhanden - durch RS gelöscht
}elseif(eregi('violation of our terms',$quelltext)){
echo 'File deleted by RS';
return false;
}elseif(eregi('suspected to contain',$quelltext)){
echo 'File blocked by RS';
return false;
}elseif(eregi('Currently',$quelltext)){
echo 'No slots for free-members available';
return false;
// Dl möglich.
}else{
return true;
}
}
// Link in jeweiliger Datei speichern : ready.txt oder error.txt
function save_link($txt_file, $txt_link){
$handle = fopen($txt_file, 'a');
$txt_link .= chr(9);
$txt_link .= date(' - d.m.Y H:i:s');
fwrite($handle, $txt_link);
fwrite($handle, "\r\n");
fclose($handle);
}
// Obersten Eintrag aus der todo Datei einlsesen
function get_link(){
$handle = fopen('todo.txt', 'r');
$temp_link = fgets($handle, 1024);
fclose($handle);
return $temp_link;
}
// Nach erfolgreichem Download ersten Eintrag löschen
function delet_first_entry(){
$array = file('todo.txt');
array_shift($array);
$fp = fopen('todo.txt',"w");
for ($i = 0; $i<count($array); $i++){
fputs($fp, $array[$i]);
}
fclose($fp);
}
// Aktuellen Link einlesen - DL Link nur löschen, wenn DL möglich.
$rs_adresse = trim(get_link());
If($rs_adresse == ""){ echo "Keine Links in todo.txt!";}
echo 'Rapidshare-URL : <a href="'.$rs_adresse.'">'.$rs_adresse.'</a><br>';
// Link zur Countdownseite und Dateinamen holen
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $rs_adresse);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 9000);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.7) Gecko/2009011913 Firefox/3.0.6');
$page_link = curl_exec($ch);
curl_close($ch);
$link_countdown = dl_link_1($page_link);
$file = dl_file($page_link);
// Wenn RS-Link ok ist:
if((dl_verification($page_link)) == true and get_link() != ''){
echo 'Countdown-URL : '.$link_countdown.'<br>';
echo 'Filename : '.$file.'<br>';
// Countdownseite öffnen und Dateilink holen
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link_countdown);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'dl.start=Free');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6');
$page_countdown = curl_exec($ch);
curl_close($ch);
// Abfragen ob Download möglich ist
if(dl_verification($page_countdown) == true){
$def_dl_link = dl_link_2($page_countdown);
echo 'Download-URL : '.$def_dl_link.'<br>';
echo 'DL possible<br>';
echo 'Waiting for 135 seconds!<br>';
// Zwangspause
$i = 1;
echo $page;
while($i <= 135){
echo $i.'-';
if($i == 60 or $i == 120){ echo "<br>"; }
flush();
sleep(1);
$i++;
}
echo '<br>Def. DL-Link : '.$def_dl_link;
echo '<br>DL started.';
flush();
// nach Countdownablauf Dateidownload starten
$handle = fopen($file,'w');
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $def_dl_link);
curl_setopt($ch2, CURLOPT_TIMEOUT, 90000);
curl_setopt($ch2, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6');
curl_setopt($ch2, CURLOPT_FILE, $handle);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch2);
fclose($handle);
curl_close($ch2);
echo '<br>DL finished.';
// erfolgreichen Downloadlink in ready.txt speichern
save_link('ready.txt', $rs_adresse);
delet_first_entry();
}
}else{
// Aktuellen Link in error.txt speichern
save_link('error.txt', $rs_adresse);
delet_first_entry();
}
?>
DL-Link : BLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.
Als Dankeschön schalten wir deinen Account werbefrei.