mirror of
https://github.com/jlu5/PyLink.git
synced 2025-02-25 18:00:39 +01:00
unreal: SQUIT and SID handlers (#114)
This commit is contained in:
parent
d5a2d3b0e8
commit
6e30a62a4a
@ -152,7 +152,6 @@ class UnrealProtocol(TS6BaseProtocol):
|
|||||||
def handle_server(self, numeric, command, args):
|
def handle_server(self, numeric, command, args):
|
||||||
# <- SERVER unreal.midnight.vpn 1 :U2351-Fhin6OoEM UnrealIRCd test server
|
# <- SERVER unreal.midnight.vpn 1 :U2351-Fhin6OoEM UnrealIRCd test server
|
||||||
sname = args[0]
|
sname = args[0]
|
||||||
# TODO: handle introductions for other servers
|
|
||||||
if numeric == self.irc.uplink:
|
if numeric == self.irc.uplink:
|
||||||
for cap in self._neededCaps:
|
for cap in self._neededCaps:
|
||||||
if cap not in self.caps:
|
if cap not in self.caps:
|
||||||
@ -176,7 +175,25 @@ class UnrealProtocol(TS6BaseProtocol):
|
|||||||
"(Unreal 3.4-beta1/2), got %s)" % protover)
|
"(Unreal 3.4-beta1/2), got %s)" % protover)
|
||||||
self.irc.servers[numeric] = IrcServer(None, sname)
|
self.irc.servers[numeric] = IrcServer(None, sname)
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError
|
# Legacy servers can still be introduced this way (without a SID).
|
||||||
|
raise NotImplementedError("FIXME: we don't handle legacy server "
|
||||||
|
"introduction yet (using SERVER instead of SID).")
|
||||||
|
|
||||||
|
def handle_sid(self, numeric, command, args):
|
||||||
|
"""Handles the SID command, used for introducing remote servers by our uplink."""
|
||||||
|
# <- SID services.int 2 00A :Shaltúre IRC Services
|
||||||
|
sname = args[0].lower()
|
||||||
|
sid = args[2]
|
||||||
|
sdesc = args[-1]
|
||||||
|
self.irc.servers[sid] = IrcServer(numeric, sname, desc=sdesc)
|
||||||
|
return {'name': sname, 'sid': sid, 'text': sdesc}
|
||||||
|
|
||||||
|
def handle_squit(self, numeric, command, args):
|
||||||
|
"""Handles the SQUIT command."""
|
||||||
|
# <- SQUIT services.int :Read error
|
||||||
|
# Convert the server name to a SID...
|
||||||
|
args[0] = self._sidToServer(args[0])
|
||||||
|
return super(UnrealProtocol, self).handle_squit(numeric, 'SQUIT', args)
|
||||||
|
|
||||||
def handle_protoctl(self, numeric, command, args):
|
def handle_protoctl(self, numeric, command, args):
|
||||||
# <- PROTOCTL NOQUIT NICKv2 SJOIN SJOIN2 UMODE2 VL SJ3 TKLEXT TKLEXT2 NICKIP ESVID
|
# <- PROTOCTL NOQUIT NICKv2 SJOIN SJOIN2 UMODE2 VL SJ3 TKLEXT TKLEXT2 NICKIP ESVID
|
||||||
@ -355,5 +372,4 @@ class UnrealProtocol(TS6BaseProtocol):
|
|||||||
utils.applyModes(self.irc, numeric, parsedmodes)
|
utils.applyModes(self.irc, numeric, parsedmodes)
|
||||||
return {'target': numeric, 'modes': parsedmodes}
|
return {'target': numeric, 'modes': parsedmodes}
|
||||||
|
|
||||||
|
|
||||||
Class = UnrealProtocol
|
Class = UnrealProtocol
|
||||||
|
Loading…
x
Reference in New Issue
Block a user