Example #1
0
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)
Example #2
0
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
Example #3
0
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
Example #4
0
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))
Example #5
0
 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
Example #6
0
 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
Example #7
0
 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)
Example #8
0
 def __init__(self):
     log.d("Registered %s for IRC events", self.__class__)
Example #9
0
 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)
Example #10
0
def reloadPages():
    log.d("Calling reloadPages()")
    global __instance
    if __instance is not None:
        __instance.pages.restart()
Example #11
0
 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())
Example #12
0
 def __init__(self):
     log.d("Creating a new instance of http.Root...")
     eyearelib.page.Page.__init__(self)
Example #13
0
 def event(self, type, user, server, channel, nicks, data):
     #log.d("%s@%s:%s> %s", nicks, server, channel, data)
     log.d("%s", data)
Example #14
0
def getInstance():
    global __instance
    if __instance is None:
        log.d("Creating a new instance of mongodb.Database")
        __instance = Database()
    return __instance
Example #15
0
 def _delMaster(self, channelObj):
     if "master" in channelObj.keys():
         logger.d("Removed master for %s", channelObj)
         channelObj["master"] = None
Example #16
0
 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