-def person(num): return state.db['users'][state.db['ranks'][num]]['realnick']
-def pts(num): return str(state.db['users'][state.db['ranks'][num]]['points'])
-def country(num, default="??"): return lib.mod('userinfo')._get(person(num), 'country', default=default)
+def person(num, throwindexerror=False):
+ try:
+ return state.db['users'][state.db['ranks'][num]]['realnick']
+ except IndexError:
+ if throwindexerror:
+ raise
+ else:
+ return ''
+
+def pts(num):
+ try:
+ return str(state.db['users'][state.db['ranks'][num]]['points'])
+ except IndexError:
+ return 0
+
+def country(num, default="??"):
+ return lib.mod('userinfo')._get(person(num), 'country', default=default).upper()
+
+class MyTimer(threading._Timer):
+ def __init__(self, *args, **kwargs):
+ threading._Timer.__init__(self, *args, **kwargs)
+ self.daemon = True