def pollWaitingConnections(user): conns = set(connections(user)) log.d("connections('%s') [%d]", user, len(conns)) for conn in conns: request, args, output = conn.data log.d("%s -> %s", args["user"], output) conn.run(request, args, output)
def getInstance(): global __instance if __instance is None: log.d("Creating a new instance of %s", config.DATABASE_HANDLER.__name__) __instance = config.DATABASE_HANDLER.Database() return __instance
def getInstances(): global __instances if __instances == []: for module in config.EVENT_HANDLERS: reload(module) __instances.append(module.Handler()) log.d("Creating new instances of event handlers") return __instances
def connect(user, server, channels=[]): global pool user = str(user.encode("ascii", "ignore")) connections = pool["connections"] id = "%s$%s" % (user, server) if id not in connections.keys(): addr, port = server.split(":") logger.d("Connecting to %s, port %s as %s", addr, port, user) connections[id] = reactor.connectTCP(addr, int(port), IRCConnectionFactory(user, server, channels))
def process(self, request, args, output): query = unquote(args['data']) logger.d("query = %s", json.loads(query)) output['payload'] =\ list(db.find('events', json.loads(query))) for item in output['payload']: try: del item['user'] except: pass
def __init__(self, mongoDB): log.d("Copying in-memory version of mongodb 'users' table") self.__database = [] self.__users = {} for item in mongoDB.find(): try: self.__users[item['user']] = item self.__database.append(item) except KeyError: pass
def _event(self, connection, type, user, server, channel, nicks, data, master=True, timestamp=time()): obj = {"type": type[1], "user": user, "server": server, "channel": channel, "nicks": nicks, "data": data, "time": timestamp} for prop in obj.keys(): if obj[prop] is None: del obj[prop] if master: logger.d("%s", obj) database.getInstance().set('events', obj) try: getattr(self, type[1])(connection, user, server, channel, nicks, data, master, timestamp) except AttributeError: pass page.pollWaitingConnections(user)
def __init__(self): log.d("Registered %s for IRC events", self.__class__)
def isReady(self, request, args, output): query = unquote(args['data']) count = db.count('events', json.loads(query)) logger.d("query = %s\ncount = %s", json.loads(query), count) return (count > 0)
def reloadPages(): log.d("Calling reloadPages()") global __instance if __instance is not None: __instance.pages.restart()
def registerModule(self, module): for name, page in inspect.getmembers(module, inspect.isclass): if "Page" in [obj.__name__ for obj in page.__bases__]: self.putChild(name.lower(), page()) log.d("%s registered at /%s", name, name.lower())
def __init__(self): log.d("Creating a new instance of http.Root...") eyearelib.page.Page.__init__(self)
def event(self, type, user, server, channel, nicks, data): #log.d("%s@%s:%s> %s", nicks, server, channel, data) log.d("%s", data)
def getInstance(): global __instance if __instance is None: log.d("Creating a new instance of mongodb.Database") __instance = Database() return __instance
def _delMaster(self, channelObj): if "master" in channelObj.keys(): logger.d("Removed master for %s", channelObj) channelObj["master"] = None
def _makeMaster(self, channelObj): if "master" not in channelObj.keys() or channelObj["master"] is None: logger.d("Made %s master for %s", self, channelObj) channelObj["master"] = self return True return False