Page 1 of 1

Suche Downloadmanager für SUSE 10

Posted: 11. Apr 2006 7:05
by MrGoodbyte
Tach ...

Schulligung, falls es das schon irgendwo geben sollte, gefunden hab ich's aber nicht.

Also, ich suche einen Downloadmanager, nur, und das sage ich gleich vorweg, d4x oder kget oder Gwget nützen mir (so scheint's jedenfalls) nix! Ich brauche nämlich einen, mit dem ich ähnlich wie bei getright oder flashget unter Windoof eine numerierte Downloadliste herunterladen kann!
Gemeint ist das so, dass z.B. jemand eine größere Datei mit z.B. rar in datai.part0001.rar bis weiß der Geier datai.part0101.rar splittet (sollte es dann nämlich beim DL irgendwo haken, dann muss man sich nicht die ganze Riesendatei neu laden, sondern nur das Teilarchiv, wo's eben hakt) und man nun eine Kette eingeben kann, die dann in etwa so aussieht:
http://www.wasweissich.de/archiv/datei.part(*).rar
Start 1
End 101
Digits 3
So jedenfalls sähe das unter Windows aus, damit man nicht (in diesem Fall) 101 Links in den DL-Manager eingeben muss.
Und eine solche Funktion hab ich bisher bei keinem der von mir getesteten Linux-DL-Manager gefunden, es sollte mich aber wundern, wenn's keinen gäbe, der das kann!

Ich danke im Voraus für die Hilfe! :)

Posted: 11. Apr 2006 8:15
by Gast
versuch´s doch mal mit wget auf der Kommandozeile

Code: Select all

 wget http://wasweissich.de/archiv/*.rar
sollte dir eigentlich alle Teile ins aktuelle Verzeichnis runterladen.

Posted: 11. Apr 2006 8:46
by Lateralus
@gast das bezweifle ich.

Hier ein Skript, was das ganze erledigt - das geht noch schöner, aber was soll's.

Code: Select all

#!/bin/sh

function getnumber(){
        digits=$1
        number=$2
        string=
        i=1

        while [ $i -lt $digits ]; do
                if [ $[10**$i] -gt $number ]; then
                        string=0${string}
                fi
                i=$[$i+1]
        done

        string=${string}${number}
        return $string
}


if [ -z "$1" ]; then
        echo "Usage: $0 [downloadfile]"
        exit 1
fi

filename=$(cat $1 | head -n 1)
start=$(cat $1 | grep Start | awk '{ print $2 }')
end=$(cat $1 | grep End | awk '{ print $2 }')
digits=$(cat $1 | grep Digits | awk '{ print $2 }')

date=$(date +%s)
tmpfile=/tmp/dl_${date}.tmp

j=$start

string=

while [ $j -le $end ]; do
        getnumber $digits $j
        file=${filename/(*)/$string}
        echo $file >> $tmpfile
        j=$[$j+1]
done

echo "Downloade alle Dateien in $tmpfile"
wget -i $tmpfile

Beispiel:
test

Code: Select all

http://www.wasweissich.de/archiv/datei.part(*).rar
Start 1
End 14
Digits 3
dann lädt dl.sh (so habe ich das Program genannt) beim Befehl "dl.sh test" - nicht vergessen dl.sh ausführbar zu machen - die Dateien

Code: Select all

http://www.wasweissich.de/archiv/datei.part001.rar
http://www.wasweissich.de/archiv/datei.part002.rar
http://www.wasweissich.de/archiv/datei.part003.rar
http://www.wasweissich.de/archiv/datei.part004.rar
http://www.wasweissich.de/archiv/datei.part005.rar
http://www.wasweissich.de/archiv/datei.part006.rar
http://www.wasweissich.de/archiv/datei.part007.rar
http://www.wasweissich.de/archiv/datei.part008.rar
http://www.wasweissich.de/archiv/datei.part009.rar
http://www.wasweissich.de/archiv/datei.part010.rar
http://www.wasweissich.de/archiv/datei.part011.rar
http://www.wasweissich.de/archiv/datei.part012.rar
http://www.wasweissich.de/archiv/datei.part013.rar
http://www.wasweissich.de/archiv/datei.part014.rar
herunter.

Viel Spaß damit.

Posted: 11. Apr 2006 11:01
by Gast
@gast das bezweifle ich
fieso? :roll:

Posted: 11. Apr 2006 12:50
by Lateralus
@gast
Weil wget die Hyperlinks in HTML-Dokumenten benutzt. Wo keine Hyperlinks sind, da kann wget auch nicht wissen, was sich dort für Dateien finden lassen. Wenn man explizit einen Dateinamen angibt, dann kann wget natürlich versuchen, die Datei zu bekommen und muss möglicherweise mit einem "404 Not found" rechnen - aber wenn kein expliziter Dateiname angegeben ist, wie soll wget dann erahnen, welche Dateien es alles sind, die mit

Code: Select all

wget http://bla.bli.de/test/bericht-*.html
gemeint sind? Es wäre ein Index nötig. Jenseits davon entspricht ein wget * auch nicht der Aufgabenstellung, welche ja nur ganz bestimmte Dateien herunterladen möchte (0001, 0002 bis z.B. 0101 ohne 1999, etc.)

Zusammengefasst: Es gibt unendliche viele URLs, die der RegExp http://bla.bli.de/test/bericht-*.html entsprechen.

Posted: 11. Apr 2006 14:38
by Gast
Ok, meine Vorschlag war ein wenig ein Schnellschuss, aber vom Prinzip her müsste das mit wget schon gehen

Aus der Manpage:
You want to download all the GIFs from a directory on an HTTP server. You tried wget http://www.server.com/dir/*.gif, but that didn't work because HTTP retrieval does not support globbing. In that case, use: wget -r -l1 --no-parent -A.gif http://www.server.com/dir/
More verbose, but the effect is the same. -r -l1 means to retrieve recursively, with maximum depth of 1. --no-parent means that references to the parent directory are ignored, and -A.gif means to download only the GIF files. -A ``*.gif'' would have worked too.
Mit RegExp sollte das eigentlich auch klappen die part[001-014].rar-Dateien herunterzuladen.

Wie auch immer fürchte ich, dass wir beide nicht so ganz das bieten, was MrGoodbyte eigentlich gesucht hat, sofern er an etwas mit ´ner GUI will.

Posted: 11. Apr 2006 15:03
by MrGoodbyte
Nee, so ganz isses das alles wirklich nicht, zumal in meinem Fall noch dazu kommt, dass das Verzeichnis PW-geschützt ist und ich nun nicht weiß, ob wget damit klar kommt ...

Übrigens, wie man auf kde.og feststellt, sind da auch schon andere dran interessiert:
Hier und hier .. scheint's aber in der Tat nicht zu geben ...

Posted: 11. Apr 2006 19:05
by Lateralus
Man ersetzt wget durch "wget --http-user=Benutzername --http-passwd=Passwort" und fertig. Desweiteren kann man ja diese Dateien (Beispiel test) als .bla bezeichnen und dann im Konqueror eine entsprechende Assoziation mit dem Programm herstellen ("im Terminal ausführen" wählen)
Wenn man das Passwort nicht im Programm stehen haben will, kann man es auch mit read einlesen. Klar ist dieses Skript nicht sogut, wie irgendsoein Programm, aber es erreicht durchaus die Funktionalität desselben!
Falls als darum geht, das Problem zu lösen, dann ist das hiermit geschehen. Falls es darum geht, bunte Fenster anzuklicken, kann ich leider nicht dienlich sein.
Ich würde sehr gerne ein Programm (dies vorzugsweise in Ruby) dafür schreiben, aber leider habe ich nicht all zu viel Zeit...


Lateralus, welcher ein wenig verwirrt dreinblickt.

Posted: 12. Apr 2006 5:05
by MrGoodbyte
Lateralus wrote:Man ersetzt wget durch "wget --http-user=Benutzername --http-passwd=Passwort" und fertig.
Guck, das war was, was ich selber nich ausgetüftelt bekommen hab ... danke!! :)
Lateralus wrote:Lateralus, welcher ein wenig verwirrt dreinblickt.
-g- Muttu nich, hey, ich bin Noob, hast mir doch sehr geholfen!! ;)