diff options
| author | 2019-06-10 10:45:02 +0100 | |
|---|---|---|
| committer | 2019-06-10 10:45:02 +0100 | |
| commit | 6c5dc958d037907d98dd6edbc4e37f5ac39768ac (patch) | |
| tree | a93470e32b894c5cca31b2caf26f763a937ea2e1 /src | |
| parent | Allow preprocess.send callbacks to request a line not be sent at all (diff) | |
| signature | ||
Add `.assure()` to ParsedLine, to make it immune from `.valid()`
Diffstat (limited to 'src')
| -rw-r--r-- | src/IRCLine.py | 6 | ||||
| -rw-r--r-- | src/IRCServer.py | 4 | ||||
| -rw-r--r-- | src/utils/irc/protocol.py | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/src/IRCLine.py b/src/IRCLine.py index 9e1d85fb..c0263d20 100644 --- a/src/IRCLine.py +++ b/src/IRCLine.py @@ -47,6 +47,7 @@ class ParsedLine(object): self.source = source self.tags = {} if tags == None else tags self._valid = True + self._assured = False def __repr__(self): return "ParsedLine(%s)" % self.__str__() @@ -58,6 +59,11 @@ class ParsedLine(object): def invalidate(self): self._valid = False + def assured(self) -> bool: + return self._assured + def assure(self): + self._assured = True + def _tag_str(self, tags: typing.Dict[str, str]) -> str: tag_pieces = [] for tag, value in tags.items(): diff --git a/src/IRCServer.py b/src/IRCServer.py index a5c4c34c..debe8f76 100644 --- a/src/IRCServer.py +++ b/src/IRCServer.py @@ -268,7 +268,7 @@ class Server(IRCObject.Object): self.events.on("preprocess.send").call_unsafe(server=self, line=line_parsed, events=line_events) - if line_parsed.valid(): + if line_parsed.valid() or line_parsed.assured(): line = line_parsed.format() line_obj = IRCLine.SentLine(line_events, datetime.datetime.utcnow(), self.hostmask(), line_parsed) @@ -352,7 +352,7 @@ class Server(IRCObject.Object): def send_message(self, target: str, message: str, tags: dict={} ) -> IRCLine.SentLine: - return self.send(utils.irc.protocol.message(target, message, tags)) + return self.send(utils.irc.protocol.privmsg(target, message, tags)) def send_notice(self, target: str, message: str, tags: dict={} ) -> IRCLine.SentLine: diff --git a/src/utils/irc/protocol.py b/src/utils/irc/protocol.py index 0ccf684f..66b4028c 100644 --- a/src/utils/irc/protocol.py +++ b/src/utils/irc/protocol.py @@ -33,7 +33,7 @@ def part(channel_name: str, reason: str=None) -> IRCLine.ParsedLine: def quit(reason: str=None) -> IRCLine.ParsedLine: return IRCLine.ParsedLine("QUIT", [reason] if reason else []) -def message(target: str, message: str, tags: typing.Dict[str, str]={} +def privmsg(target: str, message: str, tags: typing.Dict[str, str]={} ) -> IRCLine.ParsedLine: return IRCLine.ParsedLine("PRIVMSG", [target, message], tags=tags) def notice(target: str, message: str, tags: typing.Dict[str, str]={} |
