aboutsummaryrefslogtreecommitdiff
path: root/IRCLineHandler.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-03 12:37:07 +0100
committerGravatar jesopo2018-09-03 12:37:07 +0100
commitbbcc86dc24ae4b43c234e2a79c8ae1de48cb9761 (patch)
tree2b69bc7b9d84f60ebef38afab0959e520fed5443 /IRCLineHandler.py
parentSupport account-tag and account-notify (diff)
signature
Support ircv3's extended-join
Diffstat (limited to 'IRCLineHandler.py')
-rw-r--r--IRCLineHandler.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/IRCLineHandler.py b/IRCLineHandler.py
index c8438c3f..0dd35bbe 100644
--- a/IRCLineHandler.py
+++ b/IRCLineHandler.py
@@ -8,7 +8,7 @@ RE_CHANTYPES = re.compile(r"\bCHANTYPES=(\W+)(?:\b|$)")
RE_MODES = re.compile(r"[-+]\w+")
CAPABILITIES = {"message-tags", "multi-prefix", "chghost", "invite-notify",
- "account-tag", "account-notify"}
+ "account-tag", "account-notify", "extended-join"}
class LineHandler(object):
def __init__(self, bot, events):
@@ -196,8 +196,16 @@ class LineHandler(object):
def join(self, event):
nickname, username, hostname = Utils.seperate_hostmask(
event["prefix"])
- channel = event["server"].get_channel(
- event["arbitrary"] or event["args"][0])
+ account = None
+ realname = None
+ if len(event["args"]) == 2:
+ channel = event["server"].get_channel(event["args"][0])
+ if not event["args"] == "*":
+ account = event["args"][1]
+ realname = event["arbitrary"]
+ else:
+ channel = event["server"].get_channel(
+ event["arbitrary"] or event["args"][0])
if not event["server"].is_own_nickname(nickname):
user = event["server"].get_user(nickname)
@@ -207,12 +215,13 @@ class LineHandler(object):
channel.add_user(user)
user.join_channel(channel)
self.events.on("received").on("join").call(channel=channel,
- user=user, server=event["server"])
+ user=user, server=event["server"], account=account,
+ realname=realname)
else:
if channel.name in event["server"].attempted_join:
del event["server"].attempted_join[channel.name]
self.events.on("self").on("join").call(channel=channel,
- server=event["server"])
+ server=event["server"], account=account, realname=realname)
channel.send_mode()
# on user parting channel