from core.main import * 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 IRCPool.keys(): numChannels += len(IRCPool[i].channels) for i in wholist.keys(): numWhoEntries += len(wholist[i].keys()) stats.append("Servers: %s" % len(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 IRCPool.keys(): numChannels += len(IRCPool[spl[1]].channels) else: failure("Name does not exist: %s" % spl[1]) failures += 1 if spl[1] in wholist.keys(): numWhoEntries += len(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)