Rapidshare-Downloadmanager für Free-User

Status
Für weitere Antworten geschlossen.

ralftopas

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
cURL

Hi,

hab auf die neue Beta geupdatet.
Leider geht seit dem bei mir cURL nicht mehr.
Solang ich den Fehler nicht gefunden habe, kann cihleider nicht weitertesten.
Müsst euch noch etwsa gedulden.
Wenn jemand ne Lösung hat, wie ich cURL wieder zum Laufen bekomme, gerne her damit...
 

ralftopas

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Die neue PHP-Version wurde doch mit cURL kompiliert.
Allerdings wurde sie nicht wie in den Vorgängerversionen aktiviert.
In der php.ini einfach das Semikolon vor der cURL Erweiterung entfernen und ein Neustart durchführen.
Laut Syno-support wird in der Final-Version die Extension standartmäßig aktiviert sein.

Werde nun mal etwas weiterbasteln.

Leider hat Twitter seine Anmeldung nur noch via OAuth erlaubt.
somit kann ich gerade keine Statusmeldungen an ein Twitteraccount senden.
Werde dieses Feature wohl erst in einer späteren Version einbinden können :-(

Gruß Ralf
 

ralftopas

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
ned schlecht.
20.000 hits für den thread ;-)
 

Anhänge

  • 20000.PNG
    20000.PNG
    4,2 KB · Aufrufe: 230

ralftopas

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Update

Sodele,

nachdem cURL wieder geht...

Was die neue Version inzwischen kann:
  1. GUI fast fertig
  2. Datenbankanbindung fertig
  3. Downloadscript mit Datenbankanbindung ausgestattet

Was noch fehlt:
  1. GUI vollenden
  2. Setupeinstellungen speichern
  3. Twittersupport für Benachrichtigung mit oAuth

Sobald eine stabile Version fertig ist, werd ich hier alles mal zu einem Betatest reinstellen.
 

ralftopas

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Update 2

- Die Setupeinstellungen werden nun richtig gespeichert.
- In der Laufzeitberechnung wurde ein Bug beseitigt.
- Die Dateigröße wird nun richtig ausgelesen und gespeichert.

Todo:
- Downloadstatus wird fehlerhaft in der DB gespeichert
- GUI Feinschliff
(Twittersupport)
 

frakki

Benutzer
Mitglied seit
29. Dez 2009
Beiträge
133
Punkte für Reaktionen
0
Punkte
16
Klasse Sache ralf. Freu mich schon das Teil mal zu testen
 

ralftopas

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Update 3

Geht:
- Downloadstatus wird nun richtig gespeichert,
- Start/Stopzeiten des DLs werden richtig gespeichert
- Bemerkungen werden automatisch mit Fehlermeldungen gefüllt
- eMailsupport implementiert
- Autoupdate für Status und Gridpanel

Geht (noch) nicht:
- Twittersupport
- Textbausteine für eMailsupport (Dateiname, Start/Stopzeit, ...)
- GUI
- Abgleich der Dateigröße nach Download
- SPK basteln
- Installationsscript
 

ralftopas

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Update 4

Inzwischen gibt es:
- Textbausteine für eMailbenachrichtigung
- Abgleich der Dateigröße nach Download
- mySQL Installation durch Script
- config-Datei

stay tuned ;)
 

Anhänge

  • Aufzeichnen.jpg
    Aufzeichnen.jpg
    46,7 KB · Aufrufe: 178

Therealherby

Benutzer
Mitglied seit
23. Sep 2010
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Cool

Hallo,

ein sehr feines Tool und ich bin schon gespannt. Gibt es evtl. schon etwas neues? :)

Viele Grüße
 

ralftopas

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Moin,

da ich in 1,5 Wochen 11 Klausuren schrieben muß, werde ihc leider erst danach dazu kommen weiterzubasteln.
Code muss noch "aufgeräumt" werden, ein paar Bugs hab ich beim Testen gefunden, die noch nicht ausgemerzt sind.
Ihr müsst euch leider noch etwas gedulden.
Uni geht vor :-(
 

niklasR

Benutzer
Mitglied seit
16. Jun 2010
Beiträge
220
Punkte für Reaktionen
0
Punkte
0
Wie stets

Hi!
Ferien sind vorüber, hast du nochwas dran gebastelt? Machst du weiter? Wie sieht#s aus, sieht nämlich interessant aus ;)
Sehr interessant…
 

ralftopas

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Ja,
habe was gebastelt. Und auch schon online gestellt.
Nur zu voreilig.
Habe gesehen, dasss Rapidshare vor einiger Zeit seine Website umgebaut hat.
Ergo geht mein Script nicht mehr, das den Quelltext analysiert...

Ich habe inzwischen ein neues geschrieben, dass den neuen Quelltext auseinanderbastelt.
dieses funktioniert leider nocht nicht ganz.
Und ich find den Fehler einfach nicht :(

Ich stelle das jetzt hier mal mit rein, mit der Bitte, dass jeder der etwas Ahnung davon hat mal rumprobiert, ob er es zum Laufen bekommt.

Ich bin über jede Rückmeldung sehr dankbar.

Gruß Ralf

Ist schnell runtergeschrieben. Bitte nicht nach einem sauberen Programmierstiel suchen...
PHP:
<?
# So sehen die einzeln aufgerufenen URLs aus. Lediglich Beispielexemplare für das Format / Aufbau!
#$url4 = 'http://rs56dt.rapidshare.com/cgi-bin/rsapi.cgi?sub=download_v1&editparentlocation=0&bin=1&fileid=123456&filename=TESTDATEI.rar&dlauth=28E454381358A8FD38579EB034A7BC4688789CE6C07F401B608127FB3D395DCEA804B6072D5B23788094538522960B608D2E9AF43BA76F04D5EE4768FB841ED1A52CB8CC439FC37CA03D9F7AF5E435BF33B72801C511F6B1D840BD29411F81249EDE48CA5267656D21C49740A14ED15#!download|12|1234567|TESTDATEI.rar|100000';
#$url3 = 'http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=download_v1&fileid=1234567&filename=TESTDATEI.rar&try=1';
#$url2 = 'http://rapidshare.com/#!download|123|1234567|TESTDATEI.rar|100000';

#Hier bitte einen gültigen RS-Link zum testen eingeben
$url1 = 'http://rapidshare.com/files/123456/TESTDATEI.rar';


// Normalen RS-Link nutzen um neuen Linktyp zu erhalten
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
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);
echo "URL 1 ------------".$url1."-----------<br>";
$quelltext1 = strstr($page_link, '/#!');
$quelltext1 = substr($quelltext1, 0, (strripos($quelltext1, '|')));

echo "<br><br><br>";
ob_flush();

// Neuen RS-Link aufsplitten
$url2 = explode("|", $quelltext1);
echo "URL 2 ------------/#!download|".$url2[1]."|".$url2[2]."|".$url2[3]."|".$url2[4]."-----------<br>";
echo "<br><br><br>";
ob_flush();

echo "ERROR ------------".$url2[5]."-----------<br>";
echo "<br><br><br>";
ob_flush();

// API Anfrage mit neuen RS-Link Teilen aufbauen
$url3 = 'http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=download_v1&fileid='.$url2[2].'&filename='.$url2[3].'&try=1';
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url3);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch2, CURLOPT_AUTOREFERER, true);
curl_setopt($ch2, CURLOPT_NOPROGRESS, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_TIMEOUT, 9000);
curl_setopt($ch2, 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($ch2);
curl_close($ch2);


echo "URL 3 ---------------------".$url3."---------------<br>";

$quelltext2 = str_replace('script', ' ', $page_link);
echo $quelltext2;
echo "<br><br><br>";
ob_flush();

$apireturn = explode(':', $quelltext2);
$apireturn2 = explode(',', $apireturn[1]);

print_r($apireturn2);
echo "<br><br><br>";
ob_flush();




// API Abfrageergebnis nach JS-Funktion neu aufbauen
$auth = '#!download|'.$url2[1].'|'.$url2[2].'|'.$url2[3].'|'.$url2[4];
echo "auth ---------".$auth."----------------------";
echo "<br><br><br>";
ob_flush();

// Mit definitivem Downloadlink Datei holen
$dlurl = 'http://'.$apireturn2[0].'/cgi-bin/rsapi.cgi?sub=download_v1&editparentlocation=0&bin=1&fileid='.$url2[2].'&filename='.$url2[3].'&dlauth='.$apireturn2[1].$auth;

echo "DL URL -----".$dlurl."------------ DL-Zeit : ".($apireturn2[2]+10)."------------";
echo "<br><br><br>";
ob_flush();

echo 'Waiting for '.($apireturn2[2]+10).' seconds!<br>';
        flush();ob_flush();

        // Zwangspause
        $i = 1;

        while($i <= ($apireturn2[2]+10)){
            echo $i.'-';
            if($i == 60 or $i == 120){ echo "<br>"; }
            flush();ob_flush();
            sleep(1);
            $i++;
        }

$file = $url2[3];
echo "<br>".$file."<br>";
$handle = fopen('downloads/'.$file,'w');
$ch3 = curl_init();
curl_setopt($ch3, CURLOPT_URL, $dlurl);
curl_setopt($ch3, CURLOPT_TIMEOUT, 90000);
curl_setopt($ch3, 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($ch3, CURLOPT_FILE, $handle);
curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, true);
$dlerg = curl_exec($ch3);
fclose($handle);
curl_close($ch3);


echo "<br><br>...###".$dlerg."###...<br><br>";
ob_flush();

?>
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Du müsstest mal mittels Debugging rauskriegen wo das Resultat deines Codes von deinen Erwartungen abweicht
Das error_reporting hast du voll aufgedreht und lässt dir allfällige Fehler/Warnings/Notices auch anzeigen?
PHP:
<?php
ini_set('display.errors','1');
error_reporting(E_ALL | E_STRICT);
 

ralftopas

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
So,

habe noch ein Fehler gefunden.
Bei der Generierung des Authentifizierungs-Token wurde nicht die Dateigröße mit übergeben.

Das Script sollte eigentlich funktionieren. Das Script baut den richtigen Downloadlink zusammen.

Wenn ich den Link manuell in den Browser eingebe, poppt das Download-Bestätigungsfenster auf.

Einziges Problem ist, dass die Datei nur 1kb auf der HDD groß ist.
Ich gehe davon aus, dass der Fehler in der cURL Anweisung des Dateidownloads liegt.
Leider sehe ich den Fehler einfach nicht...

Evtl. hat jemand eine Idee?

Anebi der aktuelle Code:

PHP:
<?
#ini_set('display.errors','1');
#error_reporting(E_ALL | E_STRICT);

$url1 = 'http://rapidshare.com/files/1234567890/TESTDATEI.rar';


// Normalen RS-Link nutzen um neuen Linktyp zu erhalten
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
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);
echo "URL 1 ------------<a href='".$url1."'>".$url1."</a>-----------<br>";

$quelltext1 = strstr($page_link, '/#!');
$quelltext1 = substr($quelltext1, 0, (strpos($quelltext1, '";')));

echo "<br><br><br>";
ob_flush();

// Neuen RS-Link aufsplitten
$url2 = explode("|", $quelltext1);
###echo $quelltext1;
echo "URL 2 ------------/#!download|".$url2[1]."|".$url2[2]."|".$url2[3]."|".$url2[4]."-----------<br>";
echo "<br><br><br>";
ob_flush();

echo "ERROR ------------".$url2[5]."-----------<br>";
echo "<br><br><br>";
ob_flush();

// API Anfrage mit neuen RS-Link Teilen aufbauen
$url3 = 'http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=download_v1&fileid='.$url2[2].'&filename='.$url2[3].'&try=1';
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url3);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch2, CURLOPT_AUTOREFERER, true);
curl_setopt($ch2, CURLOPT_NOPROGRESS, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_TIMEOUT, 9000);
curl_setopt($ch2, 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($ch2);
curl_close($ch2);


echo "URL 3 ---------------------".$url3."---------------<br>";

$quelltext2 = str_replace('script', ' ', $page_link);
#echo $page_link;
echo "<br><br><br>";
ob_flush();

$apireturn = explode(':', $quelltext2);
$apireturn2 = explode(',', $apireturn[1]);

###print_r($apireturn2);
echo "<br><br><br>";
ob_flush();




// API Abfrageergebnis nach JS-Funktion neu aufbauen
$auth = '#!download|'.$url2[1].'|'.$url2[2].'|'.$url2[3].'|'.$url2[4];
echo "auth ---------".$auth."----------------------";
echo "<br><br><br>";
ob_flush();

// Mit definitivem Downloadlink Datei holen
$dlurl = 'http://'.$apireturn2[0].'/cgi-bin/rsapi.cgi?sub=download_v1&editparentlocation=0&bin=1&fileid='.$url2[2].'&filename='.$url2[3].'&dlauth='.$apireturn2[1].$auth;

echo 'DL URL -----<a href="'.$dlurl.'">'.$dlurl.'</a>------------ DL-Zeit : '.($apireturn2[2]).'------------';
echo "<br><br><br>";
ob_flush();

if($url2[5] == ""){
  echo 'Waiting for '.($apireturn2[2]).'+10 seconds!<br>';
        flush();ob_flush();

        // Zwangspause
        $i = 1;

        while($i <= ($apireturn2[2]+10)){
            echo $i.'-';
            if($i == 60 or $i == 120){ echo "<br>"; }
            flush();ob_flush();
            sleep(1);
            $i++;
        }

  $file = $url2[3];
  echo "<br>".$file."<br>";
  $handle = fopen('downloads/'.$file,'w');
  $ch3 = curl_init();
  curl_setopt($ch3, CURLOPT_URL, $dlurl);
  #curl_setopt($ch3, CURLOPT_TIMEOUT, 90000);
  #curl_setopt($ch3, 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($ch3, CURLOPT_FILE, $handle);
  #curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, true);
  curl_setopt($ch3, CURLOPT_HEADER, 0);
  curl_setopt($ch3, CURLOPT_BINARYTRANSFER, 1);

  $dlerg = curl_exec($ch3);
  fclose($handle);

  echo "<br>Error is : ".curl_error($ch3);
  curl_close($ch3);


  echo "<br><br>...###".$dlerg."###...<br><br>";
  ob_flush();

  $handle = fopen('dlfile.txt','w');
  fwrite($handle, $page_link);
  fclose($handle);
}else{
  echo "Aktuell kein DL möglich";
}
?>
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

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.

:coffee:

Hier gehts zum Kaffeeautomat