3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-30 14:49:28 +01:00

unreal: JOIN handlers

This commit is contained in:
James Lu 2015-09-05 12:29:20 -07:00
parent 76246dea70
commit 871e6a5c47

View File

@ -59,6 +59,8 @@ def pingServer(irc, source=None, target=None):
def connect(irc):
ts = irc.start_ts
irc.caps = []
irc.prefixmodes = {'q': '~', 'a': '&', 'o': '@', 'h', '%', 'v': '+'}
### XXX: fill out irc.umodes
f = irc.send
host = irc.serverdata["hostname"]
@ -249,3 +251,20 @@ def handle_privmsg(irc, source, command, args):
target = utils.toLower(irc, target)
return {'target': target, 'text': args[1]}
handle_notice = handle_privmsg
def handle_join(irc, numeric, command, args):
# <- GL JOIN #pylink,#test
for channel in args[0].split(','):
c = irc.channels[channel]
if args[0] == '0':
# /join 0; part the user from all channels
oldchans = irc.users[numeric].channels.copy()
log.debug('(%s) Got /join 0 from %r, channel list is %r',
irc.name, numeric, oldchans)
for ch in oldchans:
irc.channels[ch].users.discard(numeric)
irc.users[numeric].channels.discard(ch)
return {'channels': oldchans, 'text': 'Left all channels.', 'parse_as': 'PART'}
# Call hooks manually, because one JOIN command can have multiple channels...
irc.callHooks([numeric, command, {'channel': channel, 'users': [numeric], 'modes':
c.modes, 'ts': c.ts}])