Wrap CosmicBot.check_rss in a try-except block

This prevents cosmicbot's RSS checking thread from crashing if the RSS feed ends up malformed for any reason.
This commit is contained in:
Robert Miles 2020-09-16 17:01:53 +00:00
parent d23ef4ae66
commit bf59265e94
1 changed files with 13 additions and 7 deletions

20
bot.py
View File

@ -49,13 +49,19 @@ class CosmicBot(teambot.Handler):
self.load_modules()
self.tasks.run()
def check_rss(self,state,base_state):
newtrans = rss.fetchNew(state["url"],[x["guid"] for x in state["known"]])
if newtrans:
state["known"].extend(newpost(x) for x in newtrans)
for trans in newtrans:
self.say(state["channel"],"Transmission received: {transmission.title} ({transmission.link})".format(transmission=trans))
toot.toot("Transmission received: {transmission.title}\n\n{transmission.link}".format(transmission=trans))
time.sleep(1)
try:
newtrans = rss.fetchNew(state["url"],[x["guid"] for x in state["known"]])
if newtrans:
state["known"].extend(newpost(x) for x in newtrans)
for trans in newtrans:
self.say(state["channel"],"Transmission received: {transmission.title} ({transmission.link})".format(transmission=trans))
toot.toot("Transmission received: {transmission.title}\n\n{transmission.link}".format(transmission=trans))
time.sleep(1)
except:
print("Error occurred while loading feed, will try again...")
print("Traceback is below:")
traceback.print_exc()
pass
return state
def on_pubmsg(self,channel,nick,text):
self.is_admin = self.event.source.userhost == bot_op