diff options
| author | 2019-06-10 10:11:31 +0100 | |
|---|---|---|
| committer | 2019-06-10 10:11:31 +0100 | |
| commit | 0fc03fd592380af7b85447f4173e3504aa1c5114 (patch) | |
| tree | 87701601d4faaf0929ab51a335934604afa02b73 /src/IRCServer.py | |
| parent | Update CHANGELOG, v1.9.2 release (diff) | |
| signature | ||
Allow preprocess.send callbacks to request a line not be sent at all
Diffstat (limited to 'src/IRCServer.py')
| -rw-r--r-- | src/IRCServer.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/IRCServer.py b/src/IRCServer.py index 39d0817b..a5c4c34c 100644 --- a/src/IRCServer.py +++ b/src/IRCServer.py @@ -256,7 +256,8 @@ class Server(IRCObject.Object): self.events.on("raw.send").call_unsafe(server=self, line=line.parsed_line) - def send(self, line_parsed: IRCLine.ParsedLine, immediate: bool=False): + def send(self, line_parsed: IRCLine.ParsedLine, immediate: bool=False + ) -> typing.Optional[IRCLine.SentLine]: if not self.send_enabled: return None @@ -267,15 +268,17 @@ class Server(IRCObject.Object): self.events.on("preprocess.send").call_unsafe(server=self, line=line_parsed, events=line_events) - line = line_parsed.format() - line_obj = IRCLine.SentLine(line_events, datetime.datetime.utcnow(), - self.hostmask(), line_parsed) - self.socket.send(line_obj, immediate=immediate) + if line_parsed.valid(): + line = line_parsed.format() + line_obj = IRCLine.SentLine(line_events, datetime.datetime.utcnow(), + self.hostmask(), line_parsed) + self.socket.send(line_obj, immediate=immediate) - if immediate: - self.bot.trigger_write() + if immediate: + self.bot.trigger_write() - return line_obj + return line_obj + return None def send_raw(self, line: str): return self.send(utils.irc.parse_line(line)) |
