aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2019-03-05 11:20:32 +0000
committerGravatar jesopo2019-03-05 11:20:32 +0000
commit9e9875418843cf8808663785938c2cc7e7d812ce (patch)
tree2122a173b5c3b7f945c0cf49a388ee8fe5120696 /modules
parentprivate notices shouldn't be sent out as formatted.notice.channel (diff)
signature
Treat our own user as a regular user throughout line_handler
Diffstat (limited to 'modules')
-rw-r--r--modules/line_handler/channel.py62
-rw-r--r--modules/line_handler/core.py43
-rw-r--r--modules/line_handler/user.py40
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