ImageBeaver Downloader

  • Hier mein ImageBeaver Downloader in der Version 0.0.1.3. Das Programm lädt die Gallerien von Imagebeaver.com herunter. Anleitung, Installer und GUI folgen!

    Spoiler anzeigen
    [autoit]

    ;--- AutoIt ImageBeaver Download Script by .Kim ---------
    ;--- Special thanks to peethebee, progandy, Xenobiologist and BugFix ---
    #include <INET.au3>
    #include <String.au3>
    #include <File.au3>
    #include <Array.au3>
    #Include <Constants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("+!e", "Terminate")
    $traytip = False
    If $CmdLine[$CmdLine[0]] == "-silent" Then $traytip = True

    [/autoit] [autoit][/autoit] [autoit]

    Dim $ic_url, $c_url, $sGallery, $eGallery, $aGallery, $dir, $c_file, $sStart, $sStop, $bilder, $source; Deklaration der Variablen
    Dim $IniFile
    $IniFile = @ScriptDir & '\index.ini' ; INI Datei-Pfad

    [/autoit] [autoit][/autoit] [autoit]

    $ic_url = "http://www.imagebeaver.com/view.php?mode=gallery&g=" ;Anfangsurl ohne Gallery Nr.

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($IniFile) Then
    If IniRead($IniFile, "Aktuell", "aktuell", Default) <= 0 Then _
    $sGallery = IniRead($IniFile, "Start", "start", Default) ; Startgallery Nr. auslesen
    $eGallery = IniRead($IniFile, "End", "end", Default) ; Endgallery Nr. auslesen
    $aGallery = IniRead($IniFile, "Last", "last", Default) + 1 ; Aktuelle Gallery Nr. auslesen
    $path = IniRead($IniFile, "Path", "path", Default) ; Pfad auslesen

    [/autoit] [autoit][/autoit] [autoit]

    If ($traytip = True) Then TrayTip("Imagebeaver Downloader", "Downloading Images from Gallery Nr. " & $aGallery & " to Nr. " & $eGallery & @CRLF & "Quit with [SHIFT]-[ALT]-[e]", 5, 1)
    TraySetToolTip("Imagebeaver Downloader" & @CRLF & @CRLF & "Downloading Images from Gallery Nr. " & $aGallery & " to Nr. " & $eGallery & @CRLF & "Quit with [SHIFT]-[ALT]-[e]")
    Sleep(1000)

    [/autoit] [autoit][/autoit] [autoit]

    While $aGallery <= $eGallery ; Abbruchbedingung der While-Schleife
    If $traytip = True Then TrayTip("Imagebeaver Downloader", "Gallery Nr." & $aGallery, 1, 16)

    $dir = $path & "gallery_" & $aGallery & "\"

    $c_file = $dir & "gallery_" & $aGallery & ".html" ; Datei + Pfad in die der Quelltext gespeichert werden soll

    [/autoit] [autoit][/autoit] [autoit]

    $c_url = $ic_url & $aGallery ; Zusammenfügen der URL
    $source = _INetGetSource($c_url) ; Holen des Quellcodes

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $sStart = '<img src="' ; Startbedingung für Ausschneiden
    $sStop = '" border="0"></a> ' ; Abbruchbedingung für ausschneiden
    $bilder = _StringBetween($source, $sStart, $sStop) ;Füllen des Arrays mit dem gesuchten Wert

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($bilder) - 1
    $bilder[$i] = StringReplace($bilder[$i], "/t/", "/i/", 1, 1) ; Tauschen von Thumbnail to image
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($bilder) - 1
    $bilder[$i] = StringReplace($bilder[$i], "/images/thumb/", "/images/", 1, 1) ; Tauschen von Thumbnail to image
    Next

    If Not @error Then
    DirCreate($dir) ; Erstellt Ordner mit Gallerynummer
    $bilder = _ArrayUnique($bilder, '', 0)
    For $i = 0 To UBound($bilder) - 1
    $i2 = $i -1
    InetGet($bilder[$i], $dir & 'gallery_' & $aGallery & '_picture_' & $i2 & '.jpg') ; Downloaden der Bilder
    Next

    [/autoit] [autoit][/autoit] [autoit]

    InetGet($c_url, $c_file) ; Schreibt Sourcecode in Datei
    EndIf
    If $traytip = True Then TrayTip("", "", 0)
    IniWrite($IniFile, 'Last', 'last', $aGallery) ; Abspeichern der aktuellen Gallery
    $aGallery = $aGallery + 1 ; Schritt zur nächsten Gallery

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    $ende = IniRead($IniFile, "End", "end", Default)
    IniWrite($IniFile, 'Last', 'last', $ende)
    MsgBox(4096, "Finished", "Download finished", 10)

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Func Terminate()
    Exit 0
    EndFunc ;==>Terminate

    [/autoit] [autoit][/autoit] [autoit]

    Func _ArrayUnique(ByRef $aArray, $vDelim = '', $iBase = 1, $iUnique = 1)
    If $vDelim = '' Then $vDelim = Chr(01)
    Local $sHold
    For $iCC = $iBase To UBound($aArray) - 1
    If Not StringInStr($vDelim & $sHold, $vDelim & $aArray[$iCC] & $vDelim, $iUnique) Then _
    $sHold &= $aArray[$iCC] & $vDelim
    Next
    Return StringSplit(StringTrimRight($sHold, StringLen($vDelim)), $vDelim)
    EndFunc ;==>Terminate

    [/autoit]

    Hier die dazugehörige index.ini

    Spoiler anzeigen
    [autoit]

    [Start]
    start = 1150

    [/autoit] [autoit][/autoit] [autoit]

    [Ende]
    ende = 10000

    [/autoit] [autoit][/autoit] [autoit]

    [Aktuell]
    aktuell =1150

    [/autoit] [autoit][/autoit] [autoit]

    [Path]
    root=C:\path\

    [/autoit]

    Hier der DownLoad Link mit Installer: http://upload.kbarthel.de/-465325026

    Changelog:
    V0.0.1.3 : Habe festgestellt, dass das Array zum Teil doppelte Einträge enthalten hat, was dazu führte, dass Bilder doppelt heruntergeladen wurden --> behoben

    MfG
    .kim

    2 Mal editiert, zuletzt von .kim (10. Oktober 2007 um 17:31)

  • Nein das siehst du nicht richtig würd ich sagen :)

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]
  • Ist eine Seite, auf die man kostenlos Bilder hochladen kann. Ist gemischter Content, ist aber keine Pornoseite! Einfach eine Bildergallerydatenbank.

  • Also, das scheint schon ne spezielle zielgruppe zu haben -.-
    Da will sich wohl einer ne kleine Sammlung machen :D :D

  • Falls dir Bulk Image Downloader was sagt, hab da mal bei nem Kumpel ein Script dafür geschrieben,dass das Programm bedient, fand das Programm aber so mies (hohe CPU Auslastung und temporäre Dateien die sich nicht von selbst löschen und nur die Platte vollmüllen) und da hab ich mir gedacht, das kann ich besser und mit einem viel schmaleren Sourcecode.

    Laut der Resonanz auf meinem Webserver scheint das Programm doch recht gut zu laufen.

    Klar die Zielgruppe sind Sammler und interessierte Leute die den Quelltext modifizieren und das Projekt weiterbringen, wer Lust und Zeit hat kann sich gerne bei mir melden!

    MfG
    .Kim

  • Zitat

    Original von .kim
    Falls dir Bulk Image Downloader was sagt, hab da mal bei nem Kumpel ein Script dafür geschrieben,dass das Programm bedient, fand das Programm aber so mies (hohe CPU Auslastung und temporäre Dateien die sich nicht von selbst löschen und nur die Platte vollmüllen) und da hab ich mir gedacht, das kann ich besser und mit einem viel schmaleren Sourcecode.

    Laut der Resonanz auf meinem Webserver scheint das Programm doch recht gut zu laufen.

    Klar die Zielgruppe sind Sammler und interessierte Leute die den Quelltext modifizieren und das Projekt weiterbringen, wer Lust und Zeit hat kann sich gerne bei mir melden!

    MfG
    .Kim

    Mit Zielgruppe meinte ich eher Leute, die gerne nach S*x oder p**rn googeln, wenn du verstehst ;)

  • ich versteh dich schon, gibt aber auch andere Bilder dort, wenn auch der größte Teil der von dir angesprochenen Kategorie dort vertreten ist, ist ja nix schlimmes, aber mir gings wie gesagt eher um die Realisierung des Programmes, alles andere ist ein schöner Nebeneffekt :P wenn Du weißt, was ich mein ;)

  • Wenn man dann den Nebeneffekt nötig hat ;)

    Zitat

    Original von .kim
    ich versteh dich schon, gibt aber auch andere Bilder dort, wenn auch der größte Teil der von dir angesprochenen Kategorie dort vertreten ist, ist ja nix schlimmes, aber mir gings wie gesagt eher um die Realisierung des Programmes, alles andere ist ein schöner Nebeneffekt :P wenn Du weißt, was ich mein ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hi Hi, wenn man mal mal etwas anderes nach dem Scripten sehen will ...

    Aber mich interessiert ja in erstere Linie das Script an sich ;)

  • Vielleicht zahlt der "Peter" ja die Tel. Rechnung lol.

    Na jedenfalls habe ich den Monitor geputzt, damit ich die ... Variabeln
    besser sehen kann. :P

  • Hi,

    Hab da noch 2 Fragen:

    1.) Wie kann ich das Array, in das ich die Links reinlade überprüfen, sodass keine doppelten Links enthalten sind?

    2.) Wie kann ich überprüfen, ob die Datei, die in dem Link steht auch auf dem Server vorhanden ist und falls dies nicht so sein sollte, dass das Script diese Datei dann überspringt?

    MFG
    Kim

    • Offizieller Beitrag

    Hi,

    1.

    Spoiler anzeigen
    [autoit]

    #include<Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $a[5] = [1,1,2,3,1]
    _ArrayDisplay($a)
    $a = _ArrayUnique($a, '', 0)
    _ArrayDisplay($a)

    [/autoit] [autoit][/autoit] [autoit]

    Func _ArrayUnique(ByRef $aArray, $vDelim = '', $iBase = 1, $iUnique = 1)
    If $vDelim = '' Then $vDelim = Chr(01)
    Local $sHold
    For $iCC = $iBase To UBound($aArray) - 1
    If Not StringInStr($vDelim & $sHold, $vDelim & $aArray[$iCC] & $vDelim, $iUnique) Then _
    $sHold &= $aArray[$iCC] & $vDelim
    Next
    Return StringSplit(StringTrimRight($sHold, StringLen($vDelim)), $vDelim)
    EndFunc ;==>_ArrayUnique

    [/autoit]

    2. Link aufrufen?

    So long,

    Mega

  • Hab in Zeile 6 und 7 die von Xenobiologist empfohlenen Befehle (die in einem Testprogramm ohne Probleme liefen) getestet aber leider funktionieren sie nicht in meinem Programm. Habs mit IF und IF NOT probiert, half beides nichts, vll hab ich den Befehl auch falsch implementiert

    Hier mal das Script:

    [autoit]

    If Not @error Then
    DirCreate($dir) ; Erstellt Ordner mit Gallerynummer
    $bilder = _ArrayUnique($bilder, '', 0)
    For $i = 0 To UBound($bilder) - 1
    $i2 = $i -1
    InetGetSize($bilder[$i]) ; überprüft ob Datei vorhanden ist anhand der Größe >0 = vorhanden 0 = nicht vorhanden
    If Not @error ThenInetGet($bilder[$i], $dir & 'gallery_' & $aGallery & '_picture_' & $i2 & '.jpg') ; Downloaden der Bilder
    Next

    [/autoit]

    Vielleicht kann mir einer von Euch helfen, bin abends glaub zu müde zum Coden, sollte vielleicht weniger arbeiten (12h sind oft zu viel ;) )