Direkt mit 'nem PHP-Script eine Verbindung ins IRC aufbauen und dort die Channeluser auslesen würde ich nicht empfehlen. Erstens ist es mühselig und zweitens läuft das meist über einen User, der dann alle X Minuten in den Channel platzt und danach wieder geht. Das würde mir ziemlich auf den Keks gehen. ![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Praktischer ist es, wenn du einen der Channeluser, die rund um die Uhr im Channel sind, dazu verdammst, alle X Minuten die im Channel aktiven User irgendwo abzulegen. Am besten wär dafür natürlich ein Bot geeignet, der sowieso im Channel rumhängt. Folgendes Eggdrop-Script habe ich dafür bei mir im Einsatz:
Damit liest der Eggdrop alle 5 Minuten die Channeluser in #channelname aus und legt sie in der Datei /home/lx/whatever/dateiname.db ab. Die Datei sieht dann so aus:
Der Status wird also mit an den Nick angehängt. Diese Datei jetzt noch mit PHP zu parsen und daraus eine Liste zu machen, sollte aber nicht mehr das Problem sein![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Praktischer ist es, wenn du einen der Channeluser, die rund um die Uhr im Channel sind, dazu verdammst, alle X Minuten die im Channel aktiven User irgendwo abzulegen. Am besten wär dafür natürlich ein Bot geeignet, der sowieso im Channel rumhängt. Folgendes Eggdrop-Script habe ich dafür bei mir im Einsatz:
Code:
# HTML2.Tcl -- a lot like ques3.tcl, but I wrote this one myself and to my
# likings PLUS improvemnets for eggdrop1.3.4!
#
# fixed - doesn't display chan voices twice..
#
# Original Version by kn0 <keith@cs.oswego.edu>
# Edited for Eggdrop1.3.x by Prime <Unkonwn>
# Set these....
# Do this for every channel you want
set web_chans(#channelname) dateiname.db
# What directory are your web pages in? Or what directory do you want this to
# be in?
set web_dir /home/lx/whatever/
###### Do not edit anything beyond this point!!! ######
if {![info exists couter_running]} {
timer 5 web_write
set counter_running 1
}
proc web_write {} {
global web_dir botnick nick web_chans
foreach i [array names web_chans] {
set wpage $web_dir$web_chans($i)
set web_chan $i
set a [open $wpage w]
set chanlist [chanlist $web_chan]
set chanlist "$botnick [lsort [lrange $chanlist 1 end]]"
set oplist ""
set hoplist ""
set vlist ""
set noplist ""
set noplist2 ""
set noplist3 ""
set symbolop "@"
set symbolhop "%"
set symbolvoice "+"
foreach i $chanlist {if [isop $i $web_chan] {lappend oplist $i$symbolop} {lappend noplist $i}}
foreach i $noplist {
if [ishalfop $i $web_chan] {lappend hoplist $i$symbolhop} {lappend noplist2 $i}
}
foreach i $noplist2 {
if [isvoice $i $web_chan] {lappend vlist $i$symbolvoice} {lappend noplist3 $i}
}
foreach i "\{$oplist\} \{$hoplist\} \{$noplist3\} \{$vlist\}" {
foreach b $i {
if {$botnick != $b} {
puts $a "$b"
}
}
}
close $a
}
timer 5 web_write
}
bind topc - * web_topic
proc web_topic {nick uhost handle channel vars} {
global web_topic web_chans
if {[lsearch [array names web_chans] $channel] != "-1"} {
set web_topic($channel) $vars
}
}
web_write
putlog "\002HTML2\002 by \037Prime\037 - Writing: [array names web_chans] :stats files"
Damit liest der Eggdrop alle 5 Minuten die Channeluser in #channelname aus und legt sie in der Datei /home/lx/whatever/dateiname.db ab. Die Datei sieht dann so aus:
Code:
Nick1@
Nick2@
Nick3
Nick4
Nick5+
Der Status wird also mit an den Nick angehängt. Diese Datei jetzt noch mit PHP zu parsen und daraus eine Liste zu machen, sollte aber nicht mehr das Problem sein