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