diff options
| author | 2019-03-05 11:20:32 +0000 | |
|---|---|---|
| committer | 2019-03-05 11:20:32 +0000 | |
| commit | 9e9875418843cf8808663785938c2cc7e7d812ce (patch) | |
| tree | 2122a173b5c3b7f945c0cf49a388ee8fe5120696 | |
| parent | private notices shouldn't be sent out as formatted.notice.channel (diff) | |
| signature | ||
Treat our own user as a regular user throughout line_handler
| -rw-r--r-- | modules/line_handler/channel.py | 62 | ||||
| -rw-r--r-- | modules/line_handler/core.py | 43 | ||||
| -rw-r--r-- | modules/line_handler/user.py | 40 |
3 files changed, 79 insertions, 66 deletions
diff --git a/modules/line_handler/channel.py b/modules/line_handler/channel.py index bcc66757..3bbc109f 100644 --- a/modules/line_handler/channel.py +++ b/modules/line_handler/channel.py @@ -64,51 +64,51 @@ def join(events, event): account = event["args"][1] realname = event["args"][2] - if not event["server"].is_own_nickname(event["prefix"].nickname): - channel = event["server"].channels.get(channel_name) - user = event["server"].get_user(event["prefix"].nickname) - if not user.username and not user.hostname: - user.username = event["prefix"].username - user.hostname = event["prefix"].hostname - - if account: - user.identified_account = account - user.identified_account_id = event["server"].get_user( - account).get_id() - if realname: - user.realname = realname + user = event["server"].get_user(event["prefix"].nickname) - channel.add_user(user) - user.join_channel(channel) - events.on("received.join").call(channel=channel, user=user, - server=event["server"], account=account, realname=realname) - else: + if event["server"].is_own_nickname(event["prefix"].nickname): channel = event["server"].channels.add(channel_name) if channel.name in event["server"].attempted_join: del event["server"].attempted_join[channel.name] events.on("self.join").call(channel=channel, server=event["server"], account=account, realname=realname) channel.send_mode() + else: + channel = event["server"].channels.get(channel_name) + events.on("received.join").call(channel=channel, user=user, + server=event["server"], account=account, realname=realname) + + if not user.username and not user.hostname: + user.username = event["prefix"].username + user.hostname = event["prefix"].hostname + + if account: + user.identified_account = account + user.identified_account_id = event["server"].get_user(account).get_id() + if realname: + user.realname = realname + + channel.add_user(user) + user.join_channel(channel) def part(events, event): channel = event["server"].channels.get(event["args"][0]) + user = event["server"].get_user(event["prefix"].nickname) reason = event["args"].get(1) if not event["server"].is_own_nickname(event["prefix"].nickname): - user = event["server"].get_user(event["prefix"].nickname) - events.on("received.part").call(channel=channel, reason=reason, user=user, server=event["server"]) - - channel.remove_user(user) - user.part_channel(channel) - if not len(user.channels): - event["server"].remove_user(user) else: events.on("self.part").call(channel=channel, reason=reason, server=event["server"]) event["server"].channels.remove(channel) + channel.remove_user(user) + user.part_channel(channel) + if not len(user.channels): + event["server"].remove_user(user) + def handle_324(event): channel = event["server"].channels.get(event["args"][1]) modes = event["args"][2] @@ -132,21 +132,21 @@ def kick(events, event): target = event["args"][1] channel = event["server"].channels.get(event["args"][0]) reason = event["args"].get(2) + target_user = event["server"].get_user(target) if not event["server"].is_own_nickname(target): - target_user = event["server"].get_user(target) events.on("received.kick").call(channel=channel, reason=reason, target_user=target_user, user=user, server=event["server"]) - - channel.remove_user(target_user) - target_user.part_channel(channel) - if not len(target_user.channels): - event["server"].remove_user(target_user) else: event["server"].channels.remove(channel) events.on("self.kick").call(channel=channel, reason=reason, user=user, server=event["server"]) + channel.remove_user(target_user) + target_user.part_channel(channel) + if not len(target_user.channels): + event["server"].remove_user(target_user) + def rename(events, event): old_name = event["args"][0] new_name = event["args"][1] diff --git a/modules/line_handler/core.py b/modules/line_handler/core.py index 0a5b93ae..cf795ed6 100644 --- a/modules/line_handler/core.py +++ b/modules/line_handler/core.py @@ -101,31 +101,38 @@ def invite(events, event): def handle_352(event): nickname = event["args"][5] - if not event["server"].is_own_nickname(nickname): - target = event["server"].get_user(nickname) - else: - target = event["server"] - target.username = event["args"][2] - target.hostname = event["args"][3] + username = event["args"][2] + hostname = event["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 def handle_354(event): if event["args"][1] == "111": nickname = event["args"][4] + username = event["args"][2] + hostname = event["args"][3] + realname = event["args"][6] + account = event["args"][5] - if not event["server"].is_own_nickname(nickname): - target = event["server"].get_user(nickname) + if event["server"].is_own_nickname(nickname): + event["server"].username = username + event["server"].hostname = hostname + event["server"].realname = realname - account = event["args"][5] - if not account == "0": - target.identified_account = account - else: - target.identified_account = None + target = event["server"].get_user(nickname) + target.username = username + target.hostname = hostname + target.realname = realname + if not account == "0": + target.identified_account = account else: - target = event["server"] - - target.username = event["args"][2] - target.hostname = event["args"][3] - target.realname = event["args"][6] + target.identified_account = None def handle_433(event): new_nick = "%s|" % event["server"].connection_params.nickname diff --git a/modules/line_handler/user.py b/modules/line_handler/user.py index cd941d8e..fbe136a7 100644 --- a/modules/line_handler/user.py +++ b/modules/line_handler/user.py @@ -2,13 +2,19 @@ from src import utils def handle_311(event): nickname = event["args"][1] + username = event["args"][2] + hostname = event["args"][3] + realname = event["args"][4] + if event["server"].is_own_nickname(nickname): - target = event["server"] - else: - target = event["server"].get_user(nickname) - target.username = event["args"][2] - target.hostname = event["args"][3] - target.realname = event["args"][4] + 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 def quit(events, event): nickname = None @@ -31,21 +37,20 @@ def quit(events, event): def nick(events, event): new_nickname = event["args"].get(0) - if not event["server"].is_own_nickname(event["prefix"].nickname): - user = event["server"].get_user(event["prefix"].nickname) - old_nickname = user.nickname - user.set_nickname(new_nickname) - event["server"].change_user_nickname(old_nickname, new_nickname) + user = event["server"].get_user(event["prefix"].nickname) + old_nickname = user.nickname + if not event["server"].is_own_nickname(event["prefix"].nickname): events.on("received.nick").call(new_nickname=new_nickname, old_nickname=old_nickname, user=user, server=event["server"]) else: - old_nickname = event["server"].nickname event["server"].set_own_nickname(new_nickname) - events.on("self.nick").call(server=event["server"], new_nickname=new_nickname, old_nickname=old_nickname) + user.set_nickname(new_nickname) + event["server"].change_user_nickname(old_nickname, new_nickname) + def away(events, event): user = event["server"].get_user(event["prefix"].nickname) message = event["args"].get(0) @@ -64,10 +69,11 @@ def chghost(event): username = event["args"][0] hostname = event["args"][1] - if not event["server"].is_own_nickname(nickname): - target = event["server"].get_user(nickname) - else: - target = event["server"] + 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 |
