Formatting of traceback.
authorCMDR furrycat <elite@furrycat.net>
Thu, 13 Apr 2017 10:17:56 +0000 (11:17 +0100)
committerCMDR furrycat <elite@furrycat.net>
Thu, 13 Apr 2017 10:17:56 +0000 (11:17 +0100)
bot.py

diff --git a/bot.py b/bot.py
index adf6df5..8d543e9 100644 (file)
--- a/bot.py
+++ b/bot.py
@@ -36,8 +36,13 @@ def is_admin(user, server = None):
     ret = True
     break
   db.close_db()
-  caller_file, caller_line, caller_function, caller_text = traceback.extract_stack()[-2]
-  log.info('{}@{}:{}: User {} {} an administrator{}; called by '.format(caller_function, caller_file, caller_line, user.name, 'is' if ret else 'is not', ' on server {}'.format(server.name) if server is not None else ''))
+  tb = traceback.extract_stack()
+  if len(tb) > 2:
+    caller = tb[-2]
+  else:
+    caller = tb[-1]
+  caller_file, caller_line, caller_function, caller_text = caller
+  log.info('{}@{}:{}: User {} {} an administrator{}'.format(caller_function, caller_file.split('/')[-1], caller_line, user.name, 'is' if ret else 'is not', ' on server {}'.format(server.name) if server is not None else ''))
   return ret
 
 def is_member(member, name, *, author = None, check_nick = True):