mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-01 09:19:23 +01:00
ts6: handle_sjoin stub (untested)
This commit is contained in:
parent
8234eb7304
commit
6a0a61296d
@ -13,7 +13,7 @@ from classes import *
|
|||||||
from inspircd import nickClient, kickServer, kickClient, _sendKick, quitClient, \
|
from inspircd import nickClient, kickServer, kickClient, _sendKick, quitClient, \
|
||||||
removeClient, partClient, messageClient, noticeClient, topicClient
|
removeClient, partClient, messageClient, noticeClient, topicClient
|
||||||
|
|
||||||
hook_map = {}
|
hook_map = {'SJOIN': 'JOIN'}
|
||||||
|
|
||||||
def _send(irc, sid, msg):
|
def _send(irc, sid, msg):
|
||||||
irc.send(':%s %s' % (sid, msg))
|
irc.send(':%s %s' % (sid, msg))
|
||||||
@ -397,15 +397,12 @@ def handle_error(irc, numeric, command, args):
|
|||||||
raise ProtocolError('Received an ERROR, killing!')
|
raise ProtocolError('Received an ERROR, killing!')
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# XXX This is where I left off.
|
def handle_sjoin(irc, servernumeric, command, args):
|
||||||
|
# parameters: channelTS, channel, simple modes, opt. mode parameters..., nicklist
|
||||||
def handle_fjoin(irc, servernumeric, command, args):
|
channel = args[1].lower()
|
||||||
# :70M FJOIN #chat 1423790411 +AFPfjnt 6:5 7:5 9:5 :o,1SRAABIT4 v,1IOAAF53R <...>
|
|
||||||
channel = args[0].lower()
|
|
||||||
# InspIRCd sends each user's channel data in the form of 'modeprefix(es),UID'
|
|
||||||
userlist = args[-1].split()
|
userlist = args[-1].split()
|
||||||
our_ts = irc.channels[channel].ts
|
our_ts = irc.channels[channel].ts
|
||||||
their_ts = int(args[1])
|
their_ts = int(args[0])
|
||||||
if their_ts < our_ts:
|
if their_ts < our_ts:
|
||||||
# Channel timestamp was reset on burst
|
# Channel timestamp was reset on burst
|
||||||
log.debug('(%s) Setting channel TS of %s to %s from %s',
|
log.debug('(%s) Setting channel TS of %s to %s from %s',
|
||||||
@ -416,13 +413,24 @@ def handle_fjoin(irc, servernumeric, command, args):
|
|||||||
utils.applyModes(irc, channel, parsedmodes)
|
utils.applyModes(irc, channel, parsedmodes)
|
||||||
namelist = []
|
namelist = []
|
||||||
for user in userlist:
|
for user in userlist:
|
||||||
modeprefix, user = user.split(',', 1)
|
# charybdis sends this in the form "@+UID1, +UID2, UID3, @UID4"
|
||||||
|
modeprefix = ''
|
||||||
|
r = re.search(r'([%s]*)(.*)' % ''.join(irc.prefixmodes.values()), user)
|
||||||
|
user = r.group(2)
|
||||||
|
for m in r.group(1):
|
||||||
|
# Iterate over the mapping of prefix chars to prefixes, and
|
||||||
|
# find the characters that match.
|
||||||
|
for char, prefix in irc.prefixmodes.items():
|
||||||
|
if m == prefix:
|
||||||
|
modeprefix += char
|
||||||
namelist.append(user)
|
namelist.append(user)
|
||||||
irc.users[user].channels.add(channel)
|
irc.users[user].channels.add(channel)
|
||||||
utils.applyModes(irc, channel, [('+%s' % mode, user) for mode in modeprefix])
|
utils.applyModes(irc, channel, [('+%s' % mode, user) for mode in modeprefix])
|
||||||
irc.channels[channel].users.add(user)
|
irc.channels[channel].users.add(user)
|
||||||
return {'channel': channel, 'users': namelist, 'modes': parsedmodes, 'ts': their_ts}
|
return {'channel': channel, 'users': namelist, 'modes': parsedmodes, 'ts': their_ts}
|
||||||
|
|
||||||
|
# XXX This is where I left off.
|
||||||
|
|
||||||
def handle_uid(irc, numeric, command, args):
|
def handle_uid(irc, numeric, command, args):
|
||||||
# :70M UID 70MAAAAAB 1429934638 GL 0::1 hidden-7j810p.9mdf.lrek.0000.0000.IP gl 0::1 1429934638 +Wioswx +ACGKNOQXacfgklnoqvx :realname
|
# :70M UID 70MAAAAAB 1429934638 GL 0::1 hidden-7j810p.9mdf.lrek.0000.0000.IP gl 0::1 1429934638 +Wioswx +ACGKNOQXacfgklnoqvx :realname
|
||||||
uid, ts, nick, realhost, host, ident, ip = args[0:7]
|
uid, ts, nick, realhost, host, ident, ip = args[0:7]
|
||||||
|
Loading…
Reference in New Issue
Block a user