65 lines
2.5 KiB
Python
65 lines
2.5 KiB
Python
import main
|
|
import modules.counters as count
|
|
|
|
class Stats:
|
|
def __init__(self, register):
|
|
register("stats", self.stats)
|
|
|
|
def stats(self, addr, authed, data, obj, spl, success, failure, info, incUsage, length):
|
|
if authed:
|
|
if length == 1:
|
|
stats = []
|
|
numChannels = 0
|
|
numWhoEntries = 0
|
|
for i in main.IRCPool.keys():
|
|
numChannels += len(main.IRCPool[i].channels)
|
|
for i in main.wholist.keys():
|
|
numWhoEntries += len(main.wholist[i].keys())
|
|
stats.append("Servers: %s" % len(main.IRCPool.keys()))
|
|
stats.append("Channels: %s" % numChannels)
|
|
stats.append("User records: %s" % numWhoEntries)
|
|
counterEvents = count.getEvents()
|
|
if counterEvents == None:
|
|
stats.append("No counters records")
|
|
else:
|
|
stats.append("Counters:")
|
|
for i in counterEvents.keys():
|
|
stats.append(" %s: %s" % (i, counterEvents[i]))
|
|
info("\n".join(stats))
|
|
return
|
|
|
|
elif length == 2:
|
|
stats = []
|
|
numChannels = 0
|
|
numWhoEntries = 0
|
|
|
|
failures = 0
|
|
if spl[1] in main.IRCPool.keys():
|
|
numChannels += len(main.IRCPool[spl[1]].channels)
|
|
else:
|
|
failure("Name does not exist: %s" % spl[1])
|
|
failures += 1
|
|
if spl[1] in main.wholist.keys():
|
|
numWhoEntries += len(main.wholist[spl[1]].keys())
|
|
else:
|
|
failure("Who entry does not exist: %s" % spl[1])
|
|
failures += 1
|
|
if failures == 2:
|
|
failure("No information found, aborting")
|
|
return
|
|
stats.append("Channels: %s" % numChannels)
|
|
stats.append("User records: %s" % numWhoEntries)
|
|
counterEvents = count.getEvents(spl[1])
|
|
if counterEvents == None:
|
|
stats.append("No counters records")
|
|
else:
|
|
stats.append("Counters:")
|
|
for i in counterEvents.keys():
|
|
stats.append(" %s: %s" % (i, counterEvents[i]))
|
|
info("\n".join(stats))
|
|
return
|
|
else:
|
|
incUsage("stats")
|
|
else:
|
|
incUsage(None)
|