aboutsummaryrefslogtreecommitdiff
path: root/src/IRCServer.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/IRCServer.py')
-rw-r--r--src/IRCServer.py38
1 files changed, 22 insertions, 16 deletions
diff --git a/src/IRCServer.py b/src/IRCServer.py
index a8bd12ea..bece7609 100644
--- a/src/IRCServer.py
+++ b/src/IRCServer.py
@@ -207,14 +207,12 @@ class Server(IRCObject.Object):
return utils.irc.hostmask_match(self.irc_lower(hostmask),
self.irc_lower(pattern))
- def parse_data(self, line: str):
- if not line:
- return
-
- self.bot.log.debug("%s (raw recv) | %s", [str(self), line])
- self.events.on("raw.received").call_unsafe(server=self,
- line=utils.irc.parse_line(line))
- self.check_users()
+ def _post_read(self, lines: typing.List[str]):
+ for line in lines:
+ self.bot.log.debug("%s (raw recv) | %s", [str(self), line])
+ self.events.on("raw.received").call_unsafe(server=self,
+ line=utils.irc.parse_line(line))
+ self.check_users()
def check_users(self):
for user in self.new_users:
if not len(user.channels):
@@ -242,6 +240,18 @@ class Server(IRCObject.Object):
return lines
+ def _send(self) -> typing.List[IRCLine.SentLine]:
+ lines = self.socket._send()
+ for line in lines:
+ self.bot.log.debug("%s (raw send) | %s", [
+ str(self), line.parsed_line.format()])
+ return lines
+ def _post_send(self, lines: typing.List[IRCLine.SentLine]):
+ for line in lines:
+ line.events.on("send").call()
+ self.events.on("raw.send").call_unsafe(server=self,
+ line=line.parsed_line)
+
def send(self, line_parsed: IRCLine.ParsedLine, immediate: bool=False):
if not self.send_enabled:
return None
@@ -257,18 +267,14 @@ class Server(IRCObject.Object):
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()
+
return line_obj
def send_raw(self, line: str):
return self.send(utils.irc.parse_line(line))
- def _send(self):
- lines = self.socket._send()
- for line in lines:
- self.bot.log.debug("%s (raw send) | %s", [
- str(self), line.parsed_line.format()])
- self.events.on("raw.send").call_unsafe(server=self,
- line=line.parsed_line)
-
def send_user(self, username: str, realname: str) -> IRCLine.SentLine:
return self.send(utils.irc.protocol.user(username, realname))
def send_nick(self, nickname: str) -> IRCLine.SentLine: