PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TEXT aus einer HTML seite auslesen und in einen Chan posten ???


master001
01.09.2004, 00:53
Hallo!

Hab da mal ne Frage...

Auf der folgenden Webseite stehen 7 Zeilen Klartext

http://www.eve-i.com/SERVERSTAT

Das ganze sieht da so aus

LIVESERVERUP###1###
LIVESERVERHASSTRING######
LIVESERVERUSERS###6574###
LIVESERVERBUILD###1754###
LIVESERVERRETURNSTRING######
LASTCHECKTIME###1093969140###
DATADELIVERY###EVE I:COM at http://www.eve-i.com###

Das steht da irgendwie direkt im Klarttext (Kein html code?)

Was ich gerne hätte....

Wenn ich in meinem IRC chan den Trigger !evestatus eingebe sollte folgende Ausgabe kommen:

EVE Serverstatus: Tranquility is online with 6574 users playing (build 1754)

Ist der Server offline, sieht die erste Zeile so aus:

LIVESERVERUP######

Wenn offline, dann sollte folgende Meldung beim trigger kommen:

EVE Serverstatus: Tranquility is offline

Das scirpt sollte also auslesen, ob der server on oder offline ist, die useranzahl und den aktuellen build

Die folgenden 4 Zeilen kann man dann wohl vernachlässigen, wobei ich eh nicht weiss für was der hasstring und der returnstring gut sein sollen, vielleicht weiss es ja jemand...

LIVESERVERHASSTRING######
LIVESERVERRETURNSTRING######
LASTCHECKTIME###1093969140###
DATADELIVERY###EVE I:COM at http://www.eve-i.com###

Die Werte auf dieser webseite werden jede minute aktualisiert...können somit immer aktuell per trigger ausgelesen werden..

Das ganze bräuchte ich als .tcl script für nen eggdrop...

Hat da jmd. ne Idee?

THX!


master001
01.09.2004, 18:21
Also ich hab da mal was zusammen gebastelt:



bind pub - !evestatus proc_eve

proc proc_eve { nick uhost hand chan arg } {
global evestatus
set up 0
if {[catch {set sock [socket www.eve-i.com 80] } sockerror]} {
putlog "Evestatus: $sockerror"
return 0 } else {
puts $sock "GET /SERVERSTAT HTTP/1.1"
puts $sock "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0)"
puts $sock "Host: www.eve-i.com"
puts $sock "Connection: close"
puts $sock ""
flush $sock
while {[eof $sock] != 1} {
set eve [gets $sock]
#putserv "PRIVMSG $chan :$eve"
if {[string first "LIVESERVERUP###1###" $eve] != -1 } {
set up 1
}
if {[string match "LIVESERVERUSERS*" $eve] == 1 } {
set users $eve
}
if {[string match "LIVESERVERBUILD*" $eve] == 1 } {
set build $eve
}
if {[string match "LASTCHECKTIME*" $eve] == 1 } {
set update $eve
}
}
}
close $sock
if {$up != 0 } {
putserv "PRIVMSG $chan :EVE Serverstatus: Tranquility is online!"
}
if {$up == 0 } {
putserv "PRIVMSG $chan :EVE Serverstatus: Tranquility is offline!"
}
putserv "PRIVMSG $chan :$users $build $update"
}


putlog "Evestatus v1.0 loaded"


Immerhin gibt er mir jetzt schonmal an, ob der server on oder offline ist

Und es werden zum Test die 3 Variablen in den chan gepostet

Die Variable $users enthält dann folgende Zeichenkette:

LIVESERVERUSERS###6574###

$build:

LIVESERVERBUILD###1754###

$update:

LASTCHECKTIME###1093969140###

Wie zum Geier filtere ich da die Zahlen raus und schreibe sie in Variablen rein, so das ich als OnlineStatus für den Server benutzen kann:

putserv "PRIVMSG $chan :EVE Serverstatus: Tranquility is online with $users users playing (build $build)

Habe keinen Plan von regulären Ausdrücken oder Filtermethoden

master001
02.09.2004, 15:37
Ok, hat sich schon erledigt...habs selber rausgefunden....