mirror of
https://github.com/jlu5/PyLink.git
synced 2024-12-02 15:59:26 +01:00
ts6: handle ETB
This commit is contained in:
parent
791b124cf7
commit
77a93b17ac
@ -17,7 +17,7 @@ class TS6Protocol(TS6BaseProtocol):
|
|||||||
super().__init__(irc)
|
super().__init__(irc)
|
||||||
self.casemapping = 'rfc1459'
|
self.casemapping = 'rfc1459'
|
||||||
self.hook_map = {'SJOIN': 'JOIN', 'TB': 'TOPIC', 'TMODE': 'MODE', 'BMASK': 'MODE',
|
self.hook_map = {'SJOIN': 'JOIN', 'TB': 'TOPIC', 'TMODE': 'MODE', 'BMASK': 'MODE',
|
||||||
'EUID': 'UID', 'RSFNC': 'SVSNICK'}
|
'EUID': 'UID', 'RSFNC': 'SVSNICK', 'ETB': 'TOPIC'}
|
||||||
|
|
||||||
# Track whether we've received end-of-burst from the uplink.
|
# Track whether we've received end-of-burst from the uplink.
|
||||||
self.has_eob = False
|
self.has_eob = False
|
||||||
@ -317,10 +317,7 @@ class TS6Protocol(TS6BaseProtocol):
|
|||||||
|
|
||||||
# QS: SQUIT doesn't send recursive quits for each users; required
|
# QS: SQUIT doesn't send recursive quits for each users; required
|
||||||
# by charybdis (Source: https://github.com/grawity/irc-docs/blob/master/server/ts-capab.txt)
|
# by charybdis (Source: https://github.com/grawity/irc-docs/blob/master/server/ts-capab.txt)
|
||||||
|
# ENCAP: message encapsulation for certain commands
|
||||||
# ENCAP: message encapsulation for certain commands, only because
|
|
||||||
# charybdis requires it to link
|
|
||||||
|
|
||||||
# EX: Support for ban exemptions (+e)
|
# EX: Support for ban exemptions (+e)
|
||||||
# IE: Support for invite exemptions (+e)
|
# IE: Support for invite exemptions (+e)
|
||||||
# CHW: Allow sending messages to @#channel and the like.
|
# CHW: Allow sending messages to @#channel and the like.
|
||||||
@ -332,7 +329,8 @@ class TS6Protocol(TS6BaseProtocol):
|
|||||||
# and allows sending CHGHOST without ENCAP.
|
# and allows sending CHGHOST without ENCAP.
|
||||||
# RSFNC: states that we support RSFNC (forced nick changed attempts). XXX: With atheme services,
|
# RSFNC: states that we support RSFNC (forced nick changed attempts). XXX: With atheme services,
|
||||||
# does this actually do anything?
|
# does this actually do anything?
|
||||||
f('CAPAB :QS ENCAP EX CHW IE KNOCK SAVE SERVICES TB EUID RSFNC')
|
# EOPMOD: supports ETB (extended TOPIC burst) and =#channel messages for opmoderated +z
|
||||||
|
f('CAPAB :QS ENCAP EX CHW IE KNOCK SAVE SERVICES TB EUID RSFNC EOPMOD')
|
||||||
|
|
||||||
f('SERVER %s 0 :%s' % (self.irc.serverdata["hostname"],
|
f('SERVER %s 0 :%s' % (self.irc.serverdata["hostname"],
|
||||||
self.irc.serverdata.get('serverdesc') or self.irc.botdata['serverdesc']))
|
self.irc.serverdata.get('serverdesc') or self.irc.botdata['serverdesc']))
|
||||||
@ -604,6 +602,18 @@ class TS6Protocol(TS6BaseProtocol):
|
|||||||
self.irc.channels[channel].topicset = True
|
self.irc.channels[channel].topicset = True
|
||||||
return {'channel': channel, 'setter': setter, 'ts': ts, 'text': topic}
|
return {'channel': channel, 'setter': setter, 'ts': ts, 'text': topic}
|
||||||
|
|
||||||
|
def handle_etb(self, numeric, command, args):
|
||||||
|
"""Handles extended topic burst (ETB)."""
|
||||||
|
# <- :00AAAAAAC ETB 0 #test 1470021157 GL :test | abcd
|
||||||
|
# Same as TB, with extra TS and extensions arguments.
|
||||||
|
channel = self.irc.toLower(args[1])
|
||||||
|
ts = args[2]
|
||||||
|
setter = args[3]
|
||||||
|
topic = args[-1]
|
||||||
|
self.irc.channels[channel].topic = topic
|
||||||
|
self.irc.channels[channel].topicset = True
|
||||||
|
return {'channel': channel, 'setter': setter, 'ts': ts, 'text': topic}
|
||||||
|
|
||||||
def handle_invite(self, numeric, command, args):
|
def handle_invite(self, numeric, command, args):
|
||||||
"""Handles incoming INVITEs."""
|
"""Handles incoming INVITEs."""
|
||||||
# <- :70MAAAAAC INVITE 0ALAAAAAA #blah 12345
|
# <- :70MAAAAAC INVITE 0ALAAAAAA #blah 12345
|
||||||
|
Loading…
Reference in New Issue
Block a user