• Für Durststrecken wie die gestrige (hatte praktisch den ganzen Tag kein Internet) habe ich mir einen Downloader für xkcd.com geschrieben: Wer die Seite nicht kennt, es ist meiner Meinung nach der lustigste Webcomic, den es gibt.
    Das Skript läd alle Bilder, die man noch nicht hat, herunter, und speichert sie in einem Ordner (Hier: Desktop\xkcd)

    Spoiler anzeigen
    [autoit]

    Dim $drive,$dir,$fname,$ext
    Global $savedir=@DesktopDir & "\xkcd\"
    If not FileExists($savedir) Then DirCreate($savedir)
    ;xkcd-downloader...
    #include <INet.au3>
    #include <Array.au3>
    #include <File.au3>
    $id=_getLastSaved()+1
    While 1
    If $id=404 Then ContinueLoop
    $source=_INetGetSource("http://xkcd.com/" & $id & "/")
    $pattern='<img src="(.*?)".*?>'
    $result=StringRegExp($source,$pattern,3)
    If not IsArray($result) Then ExitLoop
    $path=_PathSplit($result[1],$drive,$dir,$fname,$ext)
    ;~ TrayTip("XKCD Downloader",$id & ": " & $path[3],10)
    ConsoleWrite($id)
    InetGet($result[1],$savedir & $id & " " & $path[3] & "." & $path[4])
    $id+=1
    WEnd
    Func _getLastSaved()
    $n=0
    $a=_FileListToArray($savedir)
    If not isArray($a) then return 0
    For $i=1 To $a[0]
    $s=StringSplit($a[$i]," ")
    If Int($s[1]) > $n Then $n=Int($s[1])
    Next
    Return $n
    EndFunc

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

    Einmal editiert, zuletzt von L3viathan (14. Mai 2010 um 00:56)

  • Hallo L3viathan,

    musste folgende Änderung vornehmen, damit das Skript nicht abstürzt:

    [autoit]

    Func _getLastSaved()
    $n = 0
    $a = _FileListToArray($savedir)
    If IsArray($a) Then
    For $i = 1 To $a[0]
    $s = StringSplit($a[$i], " ")
    If Int($s[1]) > $n Then $n = Int($s[1])
    Next
    EndIf
    Return $n
    EndFunc ;==>_getLastSaved

    [/autoit]

    ausserdem am Anfang eingefügt, damit der Ordner angelegt wird

    [autoit]

    If Not FileExists($savedir) Then DirCreate($savedir)

    [/autoit]

    mfg (Auto)Bert