SerienChecker

  • SerienChecker v1.0
    Ich bin ja ein leidenschaftlicher Anime&Serien gucker. :rolleyes: Nun hab ich aber keine lust die ganze zeit zu gucken ob neue Episoden draußen sind und die meisten Seiten haben kein rss. :cursing: Also hab ich mir ein Programm geschrieben, dass sich den quelltext runterlädt und diesen nach einer bestimmten syntax und episodennummer abgrast. :thumbup:

    Daten:

    • Beliebig viele Serien
    • TrayMenü Steuerung
    • Einstellungen werden in config.ini gespeichert
    • Auch anders einsetzbar (X einstellung im Serie hinzufügen Fenster)

    [Blockierte Grafik: http://img36.imageshack.us/img36/7439/98202809.jpg]

    Bitte um Feedback und Bugreport

    Edit: x32 Version geuploadet xD
    SourceCode:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <array.au3>
    $plugin = 1
    $sleep = 300
    $var = IniReadSection("config.ini", "serien")
    $sleep = IniRead("config.ini", "config", "sleep", "300")
    If NOT $var = 1 Then
    For $i = 1 To $var[0][0]
    Assign("2split", $var[$i][0])
    Assign("u" & $i, $var[$i][1])
    $split = StringSplit($2split, ";")
    Assign("n" & $i, $split[1])
    Assign("s" & $i, $split[2])
    Assign("e" & $i, $split[3])
    Assign("p" & $i, $split[4])
    Next
    EndIf
    Opt("TrayMenuMode",1)
    Opt("TrayOnEventMode", 1)
    $gruppe = TrayCreateMenu("Serien")
    If NOT $var = 1 Then
    For $i = 1 To $var[0][0]
    Assign("TS"&$i, TrayCreateItem(Eval("n"&$i), $gruppe), 2)
    Next
    EndIf
    $gruppe2 = TrayCreateMenu("Einstellungen")
    $addseries = TrayCreateItem("Serie hinzufügen", $gruppe2)
    $gruppe3 = TrayCreateMenu("Serie entfernen", $gruppe2)
    If NOT $var = 1 Then
    For $i = 1 To $var[0][0]
    Assign("T"&$i, TrayCreateItem(Eval("n"&$i), $gruppe3), 2)
    Next
    EndIf
    $sleepchange = TrayCreateItem("Aktualisierungsintervall: " & $sleep & "s", $gruppe2)
    TrayCreateItem("")
    $about = TrayCreateItem("Über...")
    TrayCreateItem("")
    $Close = TrayCreateItem("Beenden")
    TraySetState()
    TrayItemSetOnEvent($Close, "Close")
    TrayItemSetOnEvent($about, "about")
    TrayItemSetOnEvent($addseries, "addseries")
    TrayItemSetOnEvent($sleepchange, "sleepchange")
    If NOT $var = 1 Then
    For $i = 1 To $var[0][0]
    TrayItemSetOnEvent( Eval("T"&$i),"deleteseries")
    Next
    EndIf
    Opt("GUIOnEventMode", 1)
    $episodewindow = GUICreate("Serie hinzufügen", 497, 79, 602, 552)
    $name = GUICtrlCreateInput("Beispiel Serie", 72, 8, 161, 21)
    $syntax = GUICtrlCreateInput("Serie.S01.E", 72, 32, 161, 21)
    $episode = GUICtrlCreateInput("6", 336, 8, 25, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
    $url = GUICtrlCreateInput("http://www.sample.com/jnf7834/rss/rss.xml", 40, 56, 321, 21)
    GUICtrlCreateLabel("Serienname:", 8, 8, 63, 17)
    GUICtrlCreateLabel("Syntax:", 8, 32, 39, 17)
    GUICtrlCreateLabel("Nächste Episode:", 240, 8, 88, 17)
    GUICtrlCreateLabel("URL:", 8, 56, 29, 17)
    $addseriesbutton = GUICtrlCreateButton("Serie hinzufügen", 368, 8, 123, 65, $WS_GROUP)
    $plugin1 = GUICtrlCreateRadio("E06", 280, 32, 41, 17)
    $plugin2 = GUICtrlCreateRadio("X", 328, 32, 33, 17)
    $plugin3 = GUICtrlCreateRadio("E6", 240, 32, 33, 17)
    GUISetState(@SW_HIDE, $episodewindow)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CloseWindows")
    GUICtrlSetOnEvent($addseriesbutton, "Addseriesbutton")
    GUICtrlSetOnEvent($plugin1, "plugin1")
    GUICtrlSetOnEvent($plugin2, "plugin2")
    GUICtrlSetOnEvent($plugin3, "plugin3")
    $aboutwindow = GUICreate("Über SerienChecker", 257, 81, 659, 448)
    $Label1 = GUICtrlCreateLabel("SerienChecker", 80, 8, 122, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Version 1.0", 80, 32, 57, 17)
    $Label3 = GUICtrlCreateLabel("Copyright", 80, 56, 48, 17)
    $Label4 = GUICtrlCreateLabel("©", 128, 56, 12, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    If @YEAR <> 2009 Then
    $Label5 = GUICtrlCreateLabel("2009 - "&@YEAR&" by dust997", 144, 56, 112, 17)
    Else
    $Label5 = GUICtrlCreateLabel("2009 by dust997", 144, 56, 112, 17)
    EndIf
    GUISetState(@SW_HIDE, $aboutwindow)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CloseWindows2")
    While 1
    If NOT $var = 1 Then
    For $i = 1 To $var[0][0]
    $uvar = Eval("u" & $i)
    $nvar = Eval("n" & $i)
    $svar = Eval("s" & $i)
    $evar = Eval("e" & $i)
    $pvar = Eval("p" & $i)
    InetGet($uvar, $nvar&".txt")
    $file = FileOpen($nvar&".txt", 0)
    $fileread = FileRead($file)
    FileClose($file)
    FileDelete($nvar&".txt")
    If $pvar = 1 Then
    If $evar < 10 Then
    $te = "0"&$evar
    Else
    $te = $evar
    EndIf
    ElseIf $pvar = 2 Then
    $te = ""
    ElseIf $pvar = 3 Then
    $te = $evar
    EndIf
    $check = StringRegExp($fileread, $svar & $te,0)
    If $check = 1 Then
    MsgBox(0, "Neue Episode", $nvar & " Folge " & $evar & " ist draußen.")
    $evar = $evar +1
    Assign("e"&$i, $evar)
    EndIf
    Next
    EndIf
    sleep($sleep&000)
    WEnd
    Func addseries()
    GUISetState(@SW_SHOW, $episodewindow)
    EndFunc
    Func about()
    GUISetState(@SW_SHOW, $aboutwindow)
    EndFunc
    Func deleteseries()
    For $i = 1 To $var[0][0]
    If @TRAY_ID = Eval("T"&$i) Then
    deleteseriesfunc($i)
    EndIf
    Next
    EndFunc
    Func deleteseriesfunc($para1)
    _ArrayDelete($var, $para1)
    $var[0][0] = $var[0][0] - 1
    If NOT $var = 1 Then
    $file = FileOpen("config.ini", 2)
    FileWrite($file, "[config]"&@CRLF)
    FileWrite($file, "sleep="&$sleep&@CRLF)
    FileWrite($file, @CRLF)
    FileWrite($file, "[serien]"&@CRLF)
    For $i= 1 To $var[0][0]
    $nvar = Eval("n"&$i)
    $svar = Eval("s"&$i)
    $evar = Eval("e"&$i)
    $pvar = Eval("p"&$i)
    $uvar = Eval("u"&$i)
    FileWrite($file, $nvar&";"&$svar&";"&$evar&";"&$pvar&"="&$uvar&@CRLF)
    Next
    FileClose($file)
    $var = IniReadSection("config.ini", "serien")
    If NOT $var = 1 Then
    For $i = 1 To $var[0][0]
    Assign("2split", $var[$i][0], 2)
    Assign("u" & $i, $var[$i][1], 2)
    $split = StringSplit($2split, ";")
    Assign("n" & $i, $split[1], 2)
    Assign("s" & $i, $split[2], 2)
    Assign("e" & $i, $split[3], 2)
    Assign("p" & $i, $split[4], 2)
    Next
    EndIf
    EndIf
    TrayItemDelete(Eval("T"&$para1))
    TrayItemDelete(Eval("TS"&$para1))
    EndFunc
    Func sleepchange()
    $sleep = InputBox("Aktualisierungsintervall", " Aktualisierungsintervall in Sekunden angeben:")
    TrayItemSetText($sleepchange, "Aktualisierungsintervall: " & $sleep & "s")
    EndFunc
    Func plugin1()
    $plugin = "1"
    EndFunc
    Func plugin2()
    $plugin = "2"
    EndFunc
    Func plugin3()
    $plugin = "3"
    EndFunc
    Func Addseriesbutton()
    $NEWn = GUICtrlRead($name)
    $NEWs = GUICtrlRead($syntax)
    $NEWe = GUICtrlRead($episode)
    $NEWu = GUICtrlRead($url)
    $NEWp = $plugin
    GUISetState(@SW_HIDE, $episodewindow)
    If NOT $var = 1 Then
    $file = FileOpen("config.ini", 2)
    FileWrite($file, "[config]"&@CRLF)
    FileWrite($file, "sleep="&$sleep&@CRLF)
    FileWrite($file, @CRLF)
    FileWrite($file, "[serien]"&@CRLF)
    For $i= 1 To $var[0][0]
    $nvar = Eval("n"&$i)
    $svar = Eval("s"&$i)
    $evar = Eval("e"&$i)
    $pvar = Eval("p"&$i)
    $uvar = Eval("u"&$i)
    FileWrite($file, $nvar&";"&$svar&";"&$evar&";"&$pvar&"="&$uvar&@CRLF)
    Next
    FileWrite($file, $NEWn&";"&$NEWs&";"&$NEWe&";"&$NEWp&"="&$NEWu)
    FileClose($file)
    $var = IniReadSection("config.ini", "serien")
    If NOT $var = 1 Then
    For $i = 1 To $var[0][0]
    Assign("2split", $var[$i][0], 2)
    Assign("u" & $i, $var[$i][1], 2)
    $split = StringSplit($2split, ";")
    Assign("n" & $i, $split[1], 2)
    Assign("s" & $i, $split[2], 2)
    Assign("e" & $i, $split[3], 2)
    Assign("p" & $i, $split[4], 2)
    Next
    EndIf
    Else
    $file = FileOpen("config.ini", 2)
    FileWrite($file, "[config]"&@CRLF)
    FileWrite($file, "sleep="&$sleep&@CRLF)
    FileWrite($file, @CRLF)
    FileWrite($file, "[serien]"&@CRLF)
    FileWrite($file, $NEWn&";"&$NEWs&";"&$NEWe&";"&$NEWp&"="&$NEWu)
    FileClose($file)
    $var = IniReadSection("config.ini", "serien")
    If NOT $var = 1 Then
    For $i = 1 To $var[0][0]
    Assign("2split", $var[$i][0], 2)
    Assign("u" & $i, $var[$i][1], 2)
    $split = StringSplit($2split, ";")
    Assign("n" & $i, $split[1], 2)
    Assign("s" & $i, $split[2], 2)
    Assign("e" & $i, $split[3], 2)
    Assign("p" & $i, $split[4], 2)
    Next
    EndIf
    EndIf
    Assign("TS"&$var[0][0], TrayCreateItem($NEWn, $gruppe), 2)
    Assign("T"&$var[0][0], TrayCreateItem($NEWn, $gruppe3), 2)
    TrayItemSetOnEvent( Eval("T"&$var[0][0]),"deleteseries")
    EndFunc
    Func CloseWindows()
    GUISetState(@SW_HIDE, $episodewindow)
    EndFunc
    Func CloseWindows2()
    GUISetState(@SW_HIDE, $aboutwindow)
    EndFunc
    Func Close()
    $file = FileOpen("config.ini", 2)
    FileWrite($file, "[config]"&@CRLF)
    FileWrite($file, "sleep="&$sleep&@CRLF)
    FileWrite($file, @CRLF)
    FileWrite($file, "[serien]"&@CRLF)
    If NOT $var = 1 Then
    For $i= 1 To $var[0][0]
    $nvar = Eval("n"&$i)
    $svar = Eval("s"&$i)
    $evar = Eval("e"&$i)
    $pvar = Eval("p"&$i)
    $uvar = Eval("u"&$i)
    FileWrite($file, $nvar&";"&$svar&";"&$evar&";"&$pvar&"="&$uvar&@CRLF)
    Next
    EndIf
    FileClose($file)
    FileDelete(@AppDataDir&"\997.jpg")
    Exit
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von dust997 (13. August 2009 um 16:46)

  • ja das Programm gibt eine Nachricht aus wenn eine neue Folge.

    Ausversehen x64 Version hochgeladen. Sry
    Jetzt ist die x32 Version oben

    Einmal editiert, zuletzt von dust997 (13. August 2009 um 16:47)

  • Hab mir mal das prog von dir runtergeladen, aber hab kA wie man das benutzt xD kannste vllt ne Readme beilegen wos genau erklärt wird wies funzen soll??

  • How to Use
    **************************
    Programm starten und per Tray Einstellungen-->Serie hinzufügen.
    Serienname: Beliebiger Name (sollte aber aussagekräftig sein xD)
    URL: Die Website auf der die Serie herausgebracht wird
    Syntax: Das was VOR der Episodennummer auf der jew. Website steht (ACHTUNG: nicht das leerzeichen, falls vorhanden, am Ende vergessen)
    Nächste Episode: Nummer der nächsten Episode die releast wird.
    E6/E06/X: Zählmethode der Serie
    E06: Prison.Break.S04E06
    E6: Prison.Break.S04E6
    X: Prison.Break.S04E (hier wird die Zahl einfach ignoriert und nur nach dem Name gesucht. Alarm kommt ohne Ende bei Fund.)