aboutsummaryrefslogtreecommitdiff
path: root/modules/line_handler/core.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/line_handler/core.py')
-rw-r--r--modules/line_handler/core.py154
1 files changed, 0 insertions, 154 deletions
diff --git a/modules/line_handler/core.py b/modules/line_handler/core.py
deleted file mode 100644
index d72bf223..00000000
--- a/modules/line_handler/core.py
+++ /dev/null
@@ -1,154 +0,0 @@
-import codecs, re
-
-RE_ISUPPORT_ESCAPE = re.compile(r"\\x(\d\d)", re.I)
-RE_MODES = re.compile(r"[-+]\w+")
-
-def ping(event):
- event["server"].send_pong(event["line"].args[0])
-
-def handle_001(event):
- event["server"].socket.enable_write_throttle()
- event["server"].name = event["line"].source.hostmask
- event["server"].set_own_nickname(event["line"].args[0])
- event["server"].send_whois(event["server"].nickname)
- event["server"].send_mode(event["server"].nickname)
- event["server"].connected = True
-
-def handle_005(events, event):
- isupport_list = event["line"].args[1:-1]
- isupport = {}
-
- for i, item in enumerate(isupport_list):
- key, sep, value = item.partition("=")
- if value:
- for match in RE_ISUPPORT_ESCAPE.finditer(value):
- char = codecs.decode(match.group(1), "hex").decode("ascii")
- value.replace(match.group(0), char)
-
- if sep:
- isupport[key] = value
- else:
- isupport[key] = None
- event["server"].isupport.update(isupport)
-
- if "NAMESX" in isupport and not event["server"].has_capability_str(
- "multi-prefix"):
- event["server"].send_raw("PROTOCTL NAMESX")
-
- if "PREFIX" in isupport:
- modes, symbols = isupport["PREFIX"][1:].split(")", 1)
- event["server"].prefix_symbols.clear()
- event["server"].prefix_modes.clear()
- for symbol, mode in zip(symbols, modes):
- event["server"].prefix_symbols[symbol] = mode
- event["server"].prefix_modes[mode] = symbol
-
- if "CHANMODES" in isupport:
- modes = isupport["CHANMODES"].split(",", 3)
- event["server"].channel_list_modes = list(modes[0])
- event["server"].channel_parametered_modes = list(modes[1])
- event["server"].channel_setting_modes = list(modes[2])
- event["server"].channel_modes = list(modes[3])
- if "CHANTYPES" in isupport:
- event["server"].channel_types = list(isupport["CHANTYPES"])
- if "CASEMAPPING" in isupport:
- event["server"].case_mapping = isupport["CASEMAPPING"]
- if "STATUSMSG" in isupport:
- event["server"].statusmsg = list(isupport["STATUSMSG"])
-
- events.on("received.005").call(isupport=isupport,
- server=event["server"])
-
-def handle_004(event):
- event["server"].version = event["line"].args[2]
-
-def motd_start(event):
- event["server"].motd_lines.clear()
-def motd_line(event):
- event["server"].motd_lines.append(event["line"].args[1])
-
-def _own_modes(server, modes):
- mode_chunks = RE_MODES.findall(modes)
- for chunk in mode_chunks:
- remove = chunk[0] == "-"
- for mode in chunk[1:]:
- server.change_own_mode(remove, mode)
-
-def mode(events, event):
- user = event["server"].get_user(event["line"].source.nickname)
- target = event["line"].args[0]
- is_channel = event["server"].is_channel(target)
- if is_channel:
- channel = event["server"].channels.get(target)
- modes = event["line"].args[1]
- args = event["line"].args[2:]
-
- new_modes = channel.parse_modes(modes, args[:])
-
- events.on("received.mode.channel").call(modes=new_modes,
- channel=channel, server=event["server"], user=user, modes_str=modes,
- args_str=args)
- elif event["server"].is_own_nickname(target):
- modes = event["line"].args[1]
- _own_modes(event["server"], modes)
-
- events.on("self.mode").call(modes=modes, server=event["server"])
- event["server"].send_who(event["server"].nickname)
-
-def handle_221(event):
- _own_modes(event["server"], event["line"].args[1])
-
-def invite(events, event):
- target_channel = event["line"].args[1]
- user = event["server"].get_user(event["line"].source.nickname)
- target_user = event["server"].get_user(event["line"].args[0])
- events.on("received.invite").call(user=user, target_channel=target_channel,
- server=event["server"], target_user=target_user)
-
-def handle_352(events, event):
- nickname = event["line"].args[5]
- username = event["line"].args[2]
- hostname = event["line"].args[3]
-
- if event["server"].is_own_nickname(nickname):
- event["server"].username = username
- event["server"].hostname = hostname
-
- target = event["server"].get_user(nickname)
- target.username = username
- target.hostname = hostname
- events.on("received.who").call(server=event["server"],
- user=target)
-
-def handle_354(events, event):
- if event["line"].args[1] == "111":
- nickname = event["line"].args[4]
- username = event["line"].args[2]
- hostname = event["line"].args[3]
- realname = event["line"].args[6]
- account = event["line"].args[5]
-
- if event["server"].is_own_nickname(nickname):
- event["server"].username = username
- event["server"].hostname = hostname
- event["server"].realname = realname
-
- target = event["server"].get_user(nickname)
- target.username = username
- target.hostname = hostname
- target.realname = realname
- if not account == "0":
- target.account = account
- else:
- target.account = None
- events.on("received.whox").call(server=event["server"],
- user=target)
-
-def _nick_in_use(server):
- new_nick = "%s|" % server.connection_params.nickname
- server.send_nick(new_nick)
-
-def handle_433(event):
- _nick_in_use(event["server"])
-def handle_437(event):
- _nick_in_use(event["server"])