mirror of
https://github.com/jlu5/PyLink.git
synced 2025-02-25 18:00:39 +01:00
ts6: support legacy (non-sid) server introduction
Closes #119. For the sake of simplicity, server swithout a SID are stored by their server names internally, which is convenient because no reverse lookup is needed when an SQUIT is received for it.
This commit is contained in:
parent
d21ce9983d
commit
d4200424fa
@ -597,14 +597,14 @@ class TS6Protocol(TS6BaseProtocol):
|
|||||||
self.irc.servers[sid] = IrcServer(numeric, servername, desc=sdesc)
|
self.irc.servers[sid] = IrcServer(numeric, servername, desc=sdesc)
|
||||||
return {'name': servername, 'sid': sid, 'text': sdesc}
|
return {'name': servername, 'sid': sid, 'text': sdesc}
|
||||||
|
|
||||||
def handle_server(self, numeric, command, args):
|
def handle_server(self, sender, command, args):
|
||||||
"""Handles incoming legacy (no SID) server introductions."""
|
"""Handles incoming legacy (no SID) server introductions."""
|
||||||
# <- :services.int SERVER a.bc 2 :(H) [GL] a
|
# <- :services.int SERVER a.bc 2 :(H) [GL] a
|
||||||
raise NotImplementedError
|
numeric = self._getSid(sender) # Convert the server name prefix to a SID.
|
||||||
servername = args[0].lower()
|
servername = args[0].lower()
|
||||||
sdesc = args[-1]
|
sdesc = args[-1]
|
||||||
self.irc.servers[servername] = IrcServer(numeric, servername, desc=sdesc)
|
self.irc.servers[servername] = IrcServer(numeric, servername, desc=sdesc)
|
||||||
return {'name': servername, 'sid': sid, 'text': sdesc}
|
return {'name': servername, 'sid': None, 'text': sdesc}
|
||||||
|
|
||||||
def handle_tmode(self, numeric, command, args):
|
def handle_tmode(self, numeric, command, args):
|
||||||
"""Handles incoming TMODE commands (channel mode change)."""
|
"""Handles incoming TMODE commands (channel mode change)."""
|
||||||
|
@ -19,6 +19,13 @@ class TS6BaseProtocol(Protocol):
|
|||||||
args[0] = args[0].split(':', 1)[1]
|
args[0] = args[0].split(':', 1)[1]
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
def _getSid(self, sname):
|
||||||
|
"""Returns the SID of a server with the given name, if present."""
|
||||||
|
nick = sname.lower()
|
||||||
|
for k, v in self.irc.servers.items():
|
||||||
|
if v.name.lower() == nick:
|
||||||
|
return k
|
||||||
|
|
||||||
### OUTGOING COMMANDS
|
### OUTGOING COMMANDS
|
||||||
|
|
||||||
def _sendKick(self, numeric, channel, target, reason=None):
|
def _sendKick(self, numeric, channel, target, reason=None):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user