mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-01 09:19:23 +01:00
clientbot: add extended-join support (#290)
This commit is contained in:
parent
abdc67e0c1
commit
903f86a342
@ -19,7 +19,7 @@ FALLBACK_REALNAME = 'PyLink Relay Mirror Client'
|
|||||||
|
|
||||||
# IRCv3 capabilities to request when available
|
# IRCv3 capabilities to request when available
|
||||||
IRCV3_CAPABILITIES = {'multi-prefix', 'sasl', 'away-notify', 'userhost-in-names', 'chghost', 'account-notify',
|
IRCV3_CAPABILITIES = {'multi-prefix', 'sasl', 'away-notify', 'userhost-in-names', 'chghost', 'account-notify',
|
||||||
'account-tag'}
|
'account-tag', 'extended-join'}
|
||||||
|
|
||||||
class ClientbotWrapperProtocol(IRCCommonProtocol):
|
class ClientbotWrapperProtocol(IRCCommonProtocol):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
@ -843,11 +843,20 @@ class ClientbotWrapperProtocol(IRCCommonProtocol):
|
|||||||
"""
|
"""
|
||||||
Handles incoming JOINs, as well as JOIN acknowledgements for us.
|
Handles incoming JOINs, as well as JOIN acknowledgements for us.
|
||||||
"""
|
"""
|
||||||
|
# Classic format:
|
||||||
# <- :GL|!~GL@127.0.0.1 JOIN #whatever
|
# <- :GL|!~GL@127.0.0.1 JOIN #whatever
|
||||||
|
# With extended-join:
|
||||||
|
# <- :GL|!~GL@127.0.0.1 JOIN #whatever accountname :realname
|
||||||
channel = args[0]
|
channel = args[0]
|
||||||
self.channels[channel].users.add(source)
|
self.channels[channel].users.add(source)
|
||||||
self.users[source].channels.add(channel)
|
self.users[source].channels.add(channel)
|
||||||
|
|
||||||
|
if len(args) >= 3:
|
||||||
|
self._set_account_name(source, args[1])
|
||||||
|
# Hmm, because _get_UID only looks at the sender prefix, it doesn't
|
||||||
|
# have a way to process the realname info from JOIN yet...
|
||||||
|
self.update_client(source, 'GECOS', args[2])
|
||||||
|
|
||||||
# Only fetch modes, TS, and user hosts once we're actually in the channel.
|
# Only fetch modes, TS, and user hosts once we're actually in the channel.
|
||||||
# The IRCd will send us a JOIN with our nick!user@host if our JOIN succeeded.
|
# The IRCd will send us a JOIN with our nick!user@host if our JOIN succeeded.
|
||||||
if self.pseudoclient and source == self.pseudoclient.uid:
|
if self.pseudoclient and source == self.pseudoclient.uid:
|
||||||
|
Loading…
Reference in New Issue
Block a user