Seite 1 von 1

Python Download Manager

Verfasst: Sonntag 18. März 2007, 17:44
von tuxthekiller
Was hält ihr von einem Download Manager der mithilfe von Twisted geschrieben ist? Ich hatte ja mal die Idee mit dem Bittorrent Client, die sich aber als zu schwierig herausstellte, da ich damals kaum Ahnung von Python und Twisted hatte.

Ich habe mal etwas Code auf das Trac geladen, das dev mir für den Bittorrent Client bereitgestellt hatte: http://pdm.netzflocken.de/
Leider funktioniert das Trac bzw. svn im Moment nicht richtig, was sich aber die nächsten Tage ändern wird.
Genug gelabert, folgendes soll unterstützt werden:

-HTTP & FTP
-später Bittorrent
-Radio Streams aufnehmen
-die Protokolle/Module sollen per XMLRPC (GUI) oder per Webinterface steuerbar sein

Verfasst: Sonntag 18. März 2007, 20:42
von rafael
Und wie stehts mit SSL Fähigkeit?

Das mit dem Radiostream find ich interessant, aber für den Rest nehm ich lieber wget...

Verfasst: Sonntag 18. März 2007, 21:42
von tuxthekiller
rafael hat geschrieben:Und wie stehts mit SSL Fähigkeit?
Hab ich mir noch keine Gedanken drüber gemacht. ;)
rafael hat geschrieben:Das mit dem Radiostream find ich interessant, aber für den Rest nehm ich lieber wget...
Kann wget auch als Daemon laufen? :D
Und wenn man "mal eben" 15 1GB-Dateien runterladen will, mit Queuing und Part Download, dann reicht wget halt nichtmehr aus. (Wobei wget ein super Tool ist).

Re: Python Download Manager

Verfasst: Sonntag 18. März 2007, 22:15
von Leonidas
tuxthekiller hat geschrieben:-Radio Streams aufnehmen
Welche Protokolle? Mit Metadaten? Mit Scheduling? Mit Automatischen Reconnects?

Re: Python Download Manager

Verfasst: Montag 19. März 2007, 18:06
von tuxthekiller
Leonidas hat geschrieben:Welche Protokolle? Mit Metadaten? Mit Scheduling? Mit Automatischen Reconnects?
Das wird alles stückchenweise eingebaut. ;)
Protokolle erstmal das HTTP Protokoll, welches auch von Icecast, Shoutcast und schlagmichtot benutzt wird.
Metadaten sollten auch kein Problem sein. Den Sinn von Scheduling in diesem Zusammenhang versteh ich nicht wirklich. ;)
Reconnection sollte eines der kleinsten Probleme sein.

Re: Python Download Manager

Verfasst: Montag 19. März 2007, 21:08
von Leonidas
tuxthekiller hat geschrieben:Den Sinn von Scheduling in diesem Zusammenhang versteh ich nicht wirklich. ;)
Da ist nicht wirklich ein Zusammenhang. Ich wollte nur wissen, ob es mäglich sei, von einer bestimmten Zeit bis zu einer bestimmten Zeit Sendungen aufzunehmen - automatisch.

Re: Python Download Manager

Verfasst: Montag 19. März 2007, 22:47
von tuxthekiller
Leonidas hat geschrieben:
tuxthekiller hat geschrieben:Den Sinn von Scheduling in diesem Zusammenhang versteh ich nicht wirklich. ;)
Da ist nicht wirklich ein Zusammenhang. Ich wollte nur wissen, ob es mäglich sei, von einer bestimmten Zeit bis zu einer bestimmten Zeit Sendungen aufzunehmen - automatisch.
Achso, jetzt versteh ich, was du meinst. Ich denke, das wird nicht allzu schwer realisierbar sein. Aber erstmal muss das Programm überhaupt aufnehmen können und nen GUI und Webinterface sollte am Besten zuerst erstellt werden. ;)

Verfasst: Samstag 14. April 2007, 18:43
von tuxthekiller
Ich habe mal am HTTP-Modul weitergecodet. Das Modul kann unabhängig vom Rest getestet werden. Allerdings kann das Programm die geladenen Daten nur ausgeben, denn ich bin mir noch nicht einig, ob das mit den Packages so das wahre ist. Es war so gedacht, dass neben dem eigentlichen Downloaden auch noch in einer Schleife geprüft wird, ob ein Package fertig geladen hat, wenn ja, wird abgespeichert. Dank Twisted blockiert sich das ja nicht. ;) Da die Packagegröße variabel ist, kann man einstellen, wie oft auf die Platte zugegriffen wird.

Hier der Code: http://rafb.net/p/v7Veft57.html

Wäre nett, wenn sich das jemand anguckt und Feedback gibt. :)

Verfasst: Samstag 14. April 2007, 19:37
von Leonidas
tuxthekiller hat geschrieben:Hier der Code: http://rafb.net/p/v7Veft57.html
Du weißt schon, dass man Klassennamen groß schreibt? Oder Funktionen eher wie ``funktion_name`` und nicht ``funktionName`` benennt? Oder dass Code einfacher zu lesen ist, wenn Highlighting aktiviert ist? ;)