Hey @ all
Habe mir mal ein Rapidshare Punktescript gebastelt das sieht im moment wie folgt aus:
Spoiler anzeigen
#cs
|------------------------------------------------|
| Date: 01.12.2009
| Time: 17:25
| Name: Rapidshare Punktezähler Script
| Scriptet by: Blackdeath911
|
|------------------------------------------------|
#ce
;Script start
#region Includes
#include <Array.au3>
#include <File.au3>
#include <Inet.au3>
#include <String.au3>
#endregion Includes
#region globale variabeln
Global $i = 0
Global $12std = 0
Global $12hwert = 0
Global $Wert_alt
;Daten aus ini auslesen und in die variabeln einsetzen
Global $login = Iniread ("data.ini","login","account","fail")
Global $pass = Iniread ("data.ini","pass","account","fail")
Global $account = Iniread ("data.ini","art","account","fail")
Global $pauseini = Iniread ("data.ini","pause","pause","30")
#endregion globale variabeln
;Falls ini nicht vorhanden bzw. falsche daten drin
;(als falsche daten werden erkannt: keine angaben, falsche angaben vor dem "=" in der ini)
#region fehlerboxen
If $login="fail" Then
MsgBox (1,"FAIL","Accountdaten sind nicht korrekt oder konnten nicht ausgelesen werden Script wird Beendet"& @CRLF &"Bitte die daten.ini checken")
exit
EndIf
If $pass="fail" Then
MsgBox (1,"FAIL","Accountdaten sind nicht korrekt oder konnten nicht ausgelesen werden Script wird Beendet"& @CRLF &"Bitte die daten.ini checken")
exit
EndIf
If $account="fail" Then
MsgBox (1,"FAIL","Accountdaten sind nicht korrekt oder konnten nicht ausgelesen werden Script wird Beendet"& @CRLF &"Bitte die daten.ini checken")
exit
EndIf
#endregion fehlerboxen
;Hier die messagebox zum checken der eingetragenen daten... wenn (IF) msgbox ausgabe = 2 (abbrechen feld) dann beendet das script (exit)
If Msgbox (1,"test","accountnummer=" & $login & @CRLF &"passwort=" & $pass & @CRLF &"Accounttyp=" & $account & @CRLF & "Aktualisierungszeit=" & $pauseini & @CRLF & @CRLF & "Daten Richtig? dann OK Drücken")=2 Then
exit
Endif
;Schleife für die Punkte
While True
;txt dateien öffenen, wenn nicht geöffnet werden können Fehlerbox + exit
$punkte = FileOpen("punktefree.txt", 1)
$punkte2 = FileOpen("punkteprem.txt", 1)
If $punkte = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf
If $punkte2 = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
Endif
;Daten aus der API holen -> Link mit variabeln aus der INI
$quelltext = _INetGetSource("http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=getaccountdetails_v1&login="&$login&"&password="&$pass&"&type="&$account)
;array wird erstellt für die fpoints und ppoints
$array = _StringBetween($quelltext, "fpoints=", "ppoints")
$array2 = _StringBetween($quelltext, "ppoints=", "curfiles")
;um die arrays bei jedem durchlauf anzeigen zu lassen einfach das ; davor wegmachen...
;_ArrayDisplay($array)
;_ArrayDisplay($array2)
; Free Points Berechnung:
$Wert = Int($array[0])
ConsoleWrite("FreePoints: " & $Wert & @CRLF)
If IsArray($array) Then
If $i > 0 Then
ConsoleWrite("1: " & $Wert - $Wert_alt & @CRLF)
FileWrite($punkte, $Wert - $Wert_alt & " Time: " & @HOUR &":"& @MIN & @CRLF)
Else
ConsoleWrite("2: " & $Wert & @CRLF)
FileWrite($punkte, $Wert & " TimeStart: " & @HOUR &":"& @MIN & @CRLF)
EndIf
EndIf
$Wert_alt = $Wert
#cs
Erklärung der rechnung:
Es wird der $wert genommen der aus dem Array geholt wird genommen
Dieser wird dann wenn $i größer als 1 ist - den alten wert genommen.
Beim ersten durchlauf ist $wert_alt noch nicht da also wird nur der startwert aufgeschrieben
Weiter unten dann, wird $i höher gesetzt das beim nächsten durchlauf $wert - $wert_alt gerechnet wird
@Hour = stunden @MIN = Minuten @CRLF = zeilenumbruch
Consolwrite interessiert hier nicht hab ich eig nur zum testen hingeschrieben das es hier angezeigt wird
Gleiches dann Hier unten bei der Premium Punkte Berechnung
nur dort hab ich hinter die Variabeln meißt nur eine "2" geklatscht
#ce
; Premium Points Berechnung:
$Wert2 = Int($array2[0])
ConsoleWrite("PremiumPoints:"& @TAB & $Wert2 & @CRLF)
If IsArray($array2) Then
If $i > 0 Then
ConsoleWrite("1: " & $Wert2 - $Wert_alt2 & @CRLF)
FileWrite($punkte2, $Wert2 - $Wert_alt2 & @TAB & "Time:"& @TAB & @HOUR &":"& @MIN & @CRLF)
$aktuellerw=$Wert2-$Wert_alt2
$12hwert=$12hwert+$aktuellerw
Else
ConsoleWrite("2: " & $Wert2 & @CRLF)
FileWrite($punkte2, $Wert2 & @TAB & "TimeStart:"& @TAB & @HOUR &":"& @MIN & @CRLF)
EndIf
EndIf
$Wert_alt2 = $Wert2
;geöffnete txt´s wieder schließen das man die Punkteaufschreibung auch einsehen kann
FileClose($punkte)
FileClose($punkte2)
$pause1=$pauseini*60*1000
#region Wartezeit
$begin = TimerInit()
Sleep($pause1)
$dif = TimerDiff($begin)
#endregion Wartezeit
$i += 1
#cs
Bei den 12 Stunden Punkten lasse ich jede halbe stunde die Variabel $12std + 1 Zählen
Wenn diese dann bei 24 Angekommen ist (24 halbe stunden = 12 Stunden)
dann wird die IF erfült und abgearbeitet
Den 12hwert lege ich in der Premium Punkte berechnung fest must du dort nochmal nachschaun wie die zustande kommt
#ce
;12 Stunden Punkte Berechnung
$12std=$12std+1
IF $12std = 24 Then
$punkte12h = FileOpen("punkte12h.txt", 1)
FileWrite($punkte12h, $12hwert & @TAB &"Time:"& @TAB & @HOUR &":"& @MIN & @CRLF)
FileClose($punkte12h)
;Variabeln wieder = 0 Setzen
$12hwerk = 0
$12std = 0
EndIf
WEnd
Es funktioniert einwandfrei !
Es schreibt die Punkte in der angegebenen Zeit schön wie es soll in eine TXT Datei
Nun zu dem was ich eigendlich möchte...
Ich möchte das script jetzt mit mehreren (X) accounts zum laufen bekommen, das er sich aus allen accounts die Punkte holt diese zusammenadiert und dann in die TXT schreibt...
Wie realisier ich das ganze?
denn da steh ich im moment aufn schlauch
MFG: Blacky911