from copy import deepcopy from json import dumps import main from core.relay import sendRelayNotification from modules import userinfo from modules import regproc from utils.dedup import dedup order = ["type", "net", "num", "channel", "msg", "nick", "ident", "host", "mtype", "user", "mode", "modearg", "realname", "server", "status", "time"] def event(numName, c): # yes I'm using a short variable because otherwise it goes off the screen if not "channel" in c.keys(): c["channel"] = None if dedup(numName, c): return regproc.registerTest(c) # metadata scraping # need to check if this was received from a relay # in which case, do not do this if c["type"] in ["msg", "notice", "action", "topic", "mode"]: userinfo.editUser(c["net"], c["muser"]) elif c["type"] == "nick": userinfo.renameUser(c["net"], c["nick"], c["muser"], c["user"], c["user"]+"!"+c["ident"]+"@"+c["host"]) elif c["type"] == "kick": userinfo.editUser(c["net"], c["muser"]) userinfo.delUserByNick(c["net"], c["channel"], c["user"]) elif c["type"] == "quit": userinfo.delUserByNetwork(c["net"], c["nick"], c["muser"]) elif c["type"] == "join": userinfo.addUser(c["net"], c["channel"], c["nick"], c["muser"]) elif c["type"] == "part": userinfo.delUser(c["net"], c["channel"], c["nick"], c["muser"]) if "mtype" in c.keys(): if c["mtype"] == "nick": userinfo.renameUser(c["net"], c["nick"], c["muser"], c["user"], c["user"]+"!"+c["ident"]+"@"+c["host"]) if "muser" in c.keys(): del c["muser"] sendRelayNotification({k: c[k] for k in order if k in c}) # Sort dict keys according to order