+ def writeHof(self):
+ def person(num):
+ try: return self.db['users'][self.db['ranks'][num]]['realnick']
+ except: return "none"
+ def pts(num):
+ try: return str(self.db['users'][self.db['ranks'][num]]['points'])
+ except: return 0
+
+ try:
+ f = open(self.db['hofpath'], 'rb+')
+ for i in range(self.db['hoflines']): #skip this many lines
+ f.readline()
+ insertpos = f.tell()
+ fcontents = f.read()
+ f.seek(insertpos)
+ f.write((self.db['hofformat']+"\n") % {
+ 'date': time.strftime("%F", time.gmtime()),
+ 'duration': str(datetime.timedelta(seconds=time.time()-self.db['starttime'])),
+ 'targetscore': self.db['target'],
+ 'firstperson': person(0),
+ 'firstscore': pts(0),
+ 'secondperson': person(1),
+ 'secondscore': pts(1),
+ 'thirdperson': person(2),
+ 'thirdscore': pts(2),
+ })
+ f.write(fcontents)
+ return True
+ except Exception as e:
+ raise e
+ return False
+ finally:
+ f.close()
+