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()
|
words = update.message.text.split()
|
||||||
if len(words) > 1:
|
if len(words) > 1:
|
||||||
reader.read(' '.join(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
|
# Checks user permissions. Bot admin is always considered as having full permissions
|
||||||
def user_is_admin(self, member):
|
def user_is_admin(self, member):
|
||||||
|
@ -276,7 +279,8 @@ class Speaker(object):
|
||||||
def speech(self, reader):
|
def speech(self, reader):
|
||||||
return reader.generate_message(self.max_len)
|
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):
|
def say(self, bot, reader, replying=None, **kwargs):
|
||||||
cid = reader.cid()
|
cid = reader.cid()
|
||||||
if self.cid_whitelist is not None and cid not in self.cid_whitelist:
|
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():
|
if self.is_mute():
|
||||||
# Don't, if mute time isn't over
|
# Don't, if mute time isn't over
|
||||||
return
|
return
|
||||||
|
|
||||||
try:
|
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:
|
if self.bypass:
|
||||||
# Testing mode, force a reasonable period (to not have the bot spam one specific chat with a low period)
|
# Testing mode, force a reasonable period (to not have the bot spam one specific chat with a low period)
|
||||||
minp = self.min_period
|
minp = self.min_period
|
||||||
|
@ -295,7 +301,8 @@ class Speaker(object):
|
||||||
rangep = maxp - minp
|
rangep = maxp - minp
|
||||||
reader.set_period(random.randint(rangep // 4, rangep) + minp)
|
reader.set_period(random.randint(rangep // 4, rangep) + minp)
|
||||||
if random.random() <= self.repeat:
|
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
|
# 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
|
# out in the documentation how error 429 is handled by python-telegram-bot
|
||||||
except NetworkError as e:
|
except NetworkError as e:
|
||||||
|
@ -306,6 +313,7 @@ class Speaker(object):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error("Sending a message caused exception:")
|
self.logger.error("Sending a message caused exception:")
|
||||||
self.logger.exception(e)
|
self.logger.exception(e)
|
||||||
|
return True
|
||||||
|
|
||||||
# Handling /count command
|
# Handling /count command
|
||||||
def get_count(self, update, context):
|
def get_count(self, update, context):
|
||||||
|
|
Loading…
Reference in a new issue