def _alert(self, msg: str) -> None:
pass
- def send(self, verb: str, *args) -> IrcMessage:
+ def send(self, verb: str, *args) -> Optional[IrcMessage]:
'Send msg over socket, on success log .raw.'
if not self.conn:
raise SendFail('cannot send, connection seems closed')
def privmsg(self, chat_target: str, msg: str) -> None:
'Catch /privmsg, only allow for channel if in channel, else complain.'
- try:
- if self.db.is_chan_name(chat_target)\
- and chat_target not in self.db.channels.keys():
- raise SendFail('not sending, since not in channel')
- self.send('PRIVMSG', chat_target, msg)
- except SendFail as e:
- self._tui_alert_trigger(f'{e}')
- else:
+ if self.db.is_chan_name(chat_target)\
+ and chat_target not in self.db.channels.keys():
+ self._tui_alert_trigger('not sending, since not in channel')
+ elif self.send('PRIVMSG', chat_target, msg):
self.db.messaging('').to(chat_target).privmsg = msg # type: ignore
def reconnect(self) -> None:
return
self.connect()
- def send(self, verb: str, *args) -> IrcMessage:
- msg = super().send(verb, *args)
+ def send(self, verb: str, *args) -> Optional[IrcMessage]:
+ try:
+ msg = super().send(verb, *args)
+ except SendFail as e:
+ self._tui_alert_trigger(f'{e}')
+ return None
+ assert msg is not None
self._log(msg.raw, out=True)
return msg