Ö3-Comedy Downloader

  • Aufgepasst Österreicher ;)
    Hier mal ein kleines Skript, dass vom Hitradio Ö3 alle aktuellen Wecker-Comedys downloadet.
    Es sucht nach neuen Dateien und läd sie dann herunter. So verpasst man nichts mehr :D
    Vielleicht kann es ja ein Ö3-Wecker-Fan brauchen.

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=OE3.ico
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Res_Comment=Ö3-Comedy Downloader
    #AutoIt3Wrapper_Res_Description=Ö3-Comedy Downloader
    #AutoIt3Wrapper_Res_Fileversion=1.0
    #AutoIt3Wrapper_Res_LegalCopyright=funkey 2009
    #AutoIt3Wrapper_Res_Language=3079
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <Array.au3>
    #include <String.au3>
    #include <IE.au3>
    Opt('TrayMenuMode', 1)

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

    HotKeySet('{Esc}', '_Abbruch')

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

    Global $Grundordner = "Ö3-Comedy"
    Global $Neues = ""
    Global $Titel = "Ö3-Comedy Downloader"
    Global $Abbruch = 0

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

    TraySetToolTip($Titel)
    $NameParameter = StringLeft(StringRight(@ScriptName, 5), 1)

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

    If $NameParameter = 'a' Then ;wenn der Dateiname auf 'a' endet (z.B. Downloada), dann wird die Sicherheitsfrage übergangen (z.B. für Autostart)
    $Starten = 6
    Else
    $Starten = MsgBox(36, $Titel, "Soll nach neuen Comedy-Dateien gesucht werden?")
    EndIf

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

    If $Starten <> 6 Then Exit
    TrayTip($Titel, "Suche nach neuen Dateien!", 30, 1)
    $oIE = _IECreate('http://oe3.orf.at/comedy', 0, 0)
    $Uebersicht = _IEBodyReadHTML($oIE)
    $Sendungen = StringRegExp($Uebersicht, '">(.*?)</(?i)a></h1>' , 3)
    $Links = StringRegExp($Uebersicht, '<(?i)h1><a href="(.*?)">' , 3)

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

    If Not FileExists(@ScriptDir & "\"&$Grundordner) Then DirCreate(@ScriptDir & "\"&$Grundordner)
    For $i = 0 To UBound($Sendungen) -1
    $Sendungen[$i] = StringReplace($Sendungen[$i],"&amp;","&")
    If Not FileExists(@ScriptDir & "\"&$Grundordner&"\" & $Sendungen[$i]) Then DirCreate(@ScriptDir & "\"&$Grundordner&"\" & $Sendungen[$i])
    Next

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

    For $i = 0 To UBound($Links) -1
    TrayTip($Titel, "Suche neue Dateien in "&@CRLF&$Sendungen[$i], 30, 1)
    _IENavigate($oIE, $Links[$i])
    $MP3_Seite = _IEBodyReadHTML($oIE)
    $MP3s = StringRegExp($MP3_Seite, '<(?i)a href="(.*?)">MP3<' , 3)
    For $m = 0 To UBound($MP3s) -1
    $MP3FileName = StringTrimLeft($MP3s[$m], StringInStr($MP3s[$m], "/", 1, -1))
    If Not FileExists(@ScriptDir & "\"&$Grundordner&"\" & $Sendungen[$i] &"\"& $MP3FileName) Then
    TrayTip($Titel, $Sendungen[$i]&@CRLF&$MP3FileName, 30, 1)
    InetGet($MP3s[$m], @ScriptDir & "\"&$Grundordner&"\" & $Sendungen[$i] &"\"& $MP3FileName)
    $Neues &= $Sendungen[$i] &"\"& $MP3FileName&@CRLF
    EndIf
    If $Abbruch = 1 Then ExitLoop
    Next
    If $Abbruch = 1 Then ExitLoop
    Next
    _IEQuit($oIE)

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

    TrayTip("","",0)
    If $Neues = "" Then
    MsgBox(64, $Titel, " Es wurden keine neuen Dateien gefunden!")
    Else
    MsgBox(64, $Titel, $Neues)
    EndIf

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

    Func _Abbruch()
    $Abbruch = 1
    EndFunc

    [/autoit]
  • Ich hab aus irgend einem Grund den TrayTip durch einen ToolTip ersetzen müssen da es sonst nicht gelaufen ist.
    Aber es geht.

    Danke das Skript ist praktisch.

  • Hab noch ein paar Fehler ausgebessert

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=OE3.ico
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Res_Comment=Ö3-Comedy Downloader
    #AutoIt3Wrapper_Res_Description=Ö3-Comedy Downloader
    #AutoIt3Wrapper_Res_Fileversion=1.1
    #AutoIt3Wrapper_Res_LegalCopyright=funkey 2009
    #AutoIt3Wrapper_Res_Language=3079
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <Array.au3>
    #include <String.au3>
    #include <IE.au3>
    Opt('TrayMenuMode', 1)
    HotKeySet('{Esc}', '_Abbruch')

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

    Global $Grundordner = "Ö3-Comedy"
    Global $Neues = ""
    Global $Titel = "Ö3-Comedy Downloader"
    Global $Abbruch = 0

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

    TraySetToolTip($Titel)
    $NameParameter = StringLeft(StringRight(@ScriptName, 5), 1)

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

    If $NameParameter = 'a' Then ;wenn der Dateiname auf 'a' endet (z.B. Downloada), dann wird die Sicherheitsfrage übergangen (z.B. für Autostart)
    $Starten = 6
    Else
    $Starten = MsgBox(36, $Titel, "Soll nach neuen Comedy-Dateien gesucht werden?")
    EndIf

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

    If $Starten <> 6 Then Exit
    TrayTip($Titel, "Suche nach neuen Dateien!", 30, 1)
    $oIE = _IECreate('http://oe3.orf.at/comedy', 0, 0)
    $Uebersicht = _IEBodyReadHTML($oIE)
    $Sendungen = StringRegExp($Uebersicht, '">(.*?)</(?i)a></h1>' , 3)
    $Links = StringRegExp($Uebersicht, '<(?i)h1><a href="(.*?)">' , 3)

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

    If Not FileExists(@ScriptDir & "\"&$Grundordner) Then DirCreate(@ScriptDir & "\"&$Grundordner)
    For $i = 0 To UBound($Sendungen) -1
    $Sendungen[$i] = StringReplace($Sendungen[$i],"&amp;","&")
    $Sendungen[$i] = StringReplace($Sendungen[$i],":","_")
    $Sendungen[$i] = StringReplace($Sendungen[$i],"\","_")
    $Sendungen[$i] = StringReplace($Sendungen[$i],"/","_")
    $Sendungen[$i] = StringReplace($Sendungen[$i],"*","_")
    $Sendungen[$i] = StringReplace($Sendungen[$i],"?",".")
    $Sendungen[$i] = StringReplace($Sendungen[$i],"|","_")
    $Sendungen[$i] = StringReplace($Sendungen[$i],"&gt;","_")
    $Sendungen[$i] = StringReplace($Sendungen[$i],"&lt;","_")
    $Sendungen[$i] = StringReplace($Sendungen[$i],'"',"'")
    If Not FileExists(@ScriptDir & "\"&$Grundordner&"\" & $Sendungen[$i]) Then
    $Test = DirCreate(@ScriptDir & "\"&$Grundordner&"\" & $Sendungen[$i])
    If Not $Test Then
    MsgBox(16, "Fehler", " Es gab einen Fehler beim Erstellen des Ordners "&$Sendungen[$i]&" !")
    Exit
    EndIf
    EndIf
    Next

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

    For $i = 0 To UBound($Links) -1
    TrayTip($Titel, "Suche neue Dateien in "&@CRLF&$Sendungen[$i], 30, 1)
    _IENavigate($oIE, $Links[$i])
    $MP3_Seite = _IEBodyReadHTML($oIE)
    $MP3s = StringRegExp($MP3_Seite, '<(?i)a href="(.*?)">MP3<' , 3)
    For $m = 0 To UBound($MP3s) -1
    $MP3FileName = StringTrimLeft($MP3s[$m], StringInStr($MP3s[$m], "/", 1, -1))
    If Not FileExists(@ScriptDir & "\"&$Grundordner&"\" & $Sendungen[$i] &"\"& $MP3FileName) Then
    TrayTip($Titel, $Sendungen[$i]&@CRLF&$MP3FileName, 30, 1)
    InetGet($MP3s[$m], @ScriptDir & "\"&$Grundordner&"\" & $Sendungen[$i] &"\"& $MP3FileName)
    $Neues &= $Sendungen[$i] &"\"& $MP3FileName&@CRLF
    EndIf
    If $Abbruch = 1 Then ExitLoop
    Next
    If $Abbruch = 1 Then ExitLoop
    Next
    _IEQuit($oIE)

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

    For $i = 0 To UBound($Links) -1
    If DirGetSize(@ScriptDir & "\"&$Grundordner&"\" & $Sendungen[$i]) = 0 Then DirRemove(@ScriptDir & "\"&$Grundordner&"\" & $Sendungen[$i])
    Next

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

    TrayTip("","",0)
    If $Neues = "" Then
    MsgBox(64, $Titel, " Es wurden keine neuen Dateien gefunden!")
    Else
    MsgBox(64, $Titel, $Neues)
    EndIf

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

    Func _Abbruch()
    $Abbruch = 1
    EndFunc

    [/autoit]
  • Also dachdem ich das #include <INet.au3> dazu gemacht habe, hat es wunderbar geklappt ^^

    Echt nice ;)