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 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>
HotKeySet("+!e", "Terminate")
$traytip = False
If $CmdLine[$CmdLine[0]] == "-silent" Then $traytip = True
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
$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
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)
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
$c_url = $ic_url & $aGallery ; Zusammenfügen der URL
$source = _INetGetSource($c_url) ; Holen des Quellcodes
$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
For $i = 0 To UBound($bilder) - 1
$bilder[$i] = StringReplace($bilder[$i], "/t/", "/i/", 1, 1) ; Tauschen von Thumbnail to image
Next
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
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
WEnd
[/autoit] [autoit][/autoit] [autoit]$ende = IniRead($IniFile, "End", "end", Default)
IniWrite($IniFile, 'Last', 'last', $ende)
MsgBox(4096, "Finished", "Download finished", 10)
EndIf
[/autoit] [autoit][/autoit] [autoit]Func Terminate()
Exit 0
EndFunc ;==>Terminate
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
Hier die dazugehörige index.ini
Spoiler anzeigen
[Start]
start = 1150
[Ende]
ende = 10000
[Aktuell]
aktuell =1150
[Path]
root=C:\path\
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