From 69270da763b87037abe51a90ff5ce759f41be0be Mon Sep 17 00:00:00 2001 From: gpkvt Date: Fri, 12 Aug 2022 10:06:42 +0200 Subject: [PATCH] Improved error handling --- tts.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/tts.py b/tts.py index ecabd3e..ab02cfc 100644 --- a/tts.py +++ b/tts.py @@ -65,6 +65,7 @@ class IRC: except ConnectionResetError: logging.warn('JOIN was refused, will try again in 5 seconds.') time.sleep(5) + logging.warn('Please check your credentials, if this error persists.') self.irc.send(bytes("JOIN " + channel + "\r\n", "UTF-8")) def sendpriv(self, channel, user, msg): @@ -78,6 +79,7 @@ class IRC: except socket.timeout: return False except: + logging.exception('An unknown error occured while getting a IRC response.') sys.exit(255) if resp.find('PING') != -1: @@ -108,6 +110,14 @@ class IRC: return True + if resp.find('NOTICE') != -1: + if 'Login authentication failed' in resp: + try: + raise RuntimeError() + except RuntimeError: + logging.exception('Login failed, please check your credentials and try again.') + sys.exit(251) + if resp.find('PRIVMSG') != -1: logging.debug('PRIVMSG received') badges = False @@ -347,16 +357,16 @@ def load_config(): conf['IRC_CHANNEL'] = cfg['irc']['channel'] conf['IRC_USERNAME'] = cfg['irc']['username'] conf['IRC_OAUTH_TOKEN'] = cfg['irc']['oauth_token'] - conf['IRC_SERVER'] = cfg['irc']['server'] - conf['IRC_CLEARMSG_TIMEOUT'] = cfg['irc']['clearmsg_timeout'] + conf['IRC_SERVER'] = cfg['irc']['server'] or "irc.chat.twitch.tv" + conf['IRC_CLEARMSG_TIMEOUT'] = cfg['irc']['clearmsg_timeout'] or 60 - conf['IRC_SUBONLY'] = cfg['bot']['subonly'] - conf['IRC_MODONLY'] = cfg['bot']['modonly'] - conf['IRC_TTS_LEN'] = cfg['bot']['message_length'] + conf['IRC_SUBONLY'] = cfg['bot']['subonly'] or False + conf['IRC_MODONLY'] = cfg['bot']['modonly'] or False + conf['IRC_TTS_LEN'] = cfg['bot']['message_length'] or 200 - conf['LOG_LEVEL'] = cfg['log']['level'] - conf['HTTP_PORT'] = cfg['http']['port'] - conf['HTTP_BIND'] = cfg['http']['bind'] + conf['LOG_LEVEL'] = cfg['log']['level'] or "INFO" + conf['HTTP_PORT'] = cfg['http']['port'] or 80 + conf['HTTP_BIND'] = cfg['http']['bind'] or "localhost" conf['MESSAGE'] = {} conf['MESSAGE']['TOO_LONG'] = cfg['messages']['too_long'] or "Sorry, your message is too long" @@ -402,7 +412,7 @@ msg_queue_raw = [] msg_queue = {} logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(module)s %(threadName)s %(levelname)s: %(message)s') -sys.tracebacklimit = 1 +sys.tracebacklimit = 0 def main(): conf = load_config()