mirror of
https://gitlab.com/vylion/velascobot.git
synced 2025-04-19 13:36:36 +02:00
Added check for generated messages with empty Generator
This commit is contained in:
parent
f028b9ab73
commit
7b5028081f
1 changed files with 13 additions and 5 deletions
18
speaker.py
18
speaker.py
|
@ -261,7 +261,10 @@ class Speaker(object):
|
|||
words = update.message.text.split()
|
||||
if len(words) > 1:
|
||||
reader.read(' '.join(words[1:]))
|
||||
self.say(context.bot, reader, replying=rid)
|
||||
success = self.say(context.bot, reader, replying=rid)
|
||||
if not success:
|
||||
empty_gen_warning = "I haven't learned a single word yet."
|
||||
send(context.bot, reader.cid(), empty_gen_warning, replying=rid, logger=self.logger)
|
||||
|
||||
# Checks user permissions. Bot admin is always considered as having full permissions
|
||||
def user_is_admin(self, member):
|
||||
|
@ -276,7 +279,8 @@ class Speaker(object):
|
|||
def speech(self, reader):
|
||||
return reader.generate_message(self.max_len)
|
||||
|
||||
# Say a newly generated message
|
||||
# Say a newly generated message. Returns True if it could generate a response (even
|
||||
# if it failed to send it)
|
||||
def say(self, bot, reader, replying=None, **kwargs):
|
||||
cid = reader.cid()
|
||||
if self.cid_whitelist is not None and cid not in self.cid_whitelist:
|
||||
|
@ -285,9 +289,11 @@ class Speaker(object):
|
|||
if self.is_mute():
|
||||
# Don't, if mute time isn't over
|
||||
return
|
||||
|
||||
try:
|
||||
send(bot, cid, self.speech(reader), replying, logger=self.logger, **kwargs)
|
||||
new_msg = self.speech(reader)
|
||||
if new_msg == "":
|
||||
return False
|
||||
send(bot, cid, new_msg, replying, logger=self.logger, **kwargs)
|
||||
if self.bypass:
|
||||
# Testing mode, force a reasonable period (to not have the bot spam one specific chat with a low period)
|
||||
minp = self.min_period
|
||||
|
@ -295,7 +301,8 @@ class Speaker(object):
|
|||
rangep = maxp - minp
|
||||
reader.set_period(random.randint(rangep // 4, rangep) + minp)
|
||||
if random.random() <= self.repeat:
|
||||
send(bot, cid, self.speech(reader), logger=self.logger, **kwargs)
|
||||
new_msg = self.speech(reader)
|
||||
send(bot, cid, new_msg, logger=self.logger, **kwargs)
|
||||
# Consider any Network Error as a Telegram temporary ban, as I couldn't find
|
||||
# out in the documentation how error 429 is handled by python-telegram-bot
|
||||
except NetworkError as e:
|
||||
|
@ -306,6 +313,7 @@ class Speaker(object):
|
|||
except Exception as e:
|
||||
self.logger.error("Sending a message caused exception:")
|
||||
self.logger.exception(e)
|
||||
return True
|
||||
|
||||
# Handling /count command
|
||||
def get_count(self, update, context):
|
||||
|
|
Loading…
Reference in a new issue