Ejemplo n.º 1
0
class Storage:
    def __init__(self, sid, user_name, user_rank, test):
	self.sid = sid
	self.user_name = user_name
	self.user_rank = user_rank
	self.test = test
	self.answer = Answer()

	self.result = 0

	self.path = USER_PATH+sid
	os.mkdir(self.path)

	self.saveTest()
	self.populateIndex()

    def populateIndex(self):
	db_conn = sqlite3.connect(USER_DB)
	db_cursor = db_conn.cursor()

	db_cursor.execute('INSERT INTO `users` (`name`, `rank`, `test`, `result`, `date`, `sid`)VALUES(?, ?, ?, ?, ?, ?)', (self.user_name, self.user_rank, self.test.caption, '0', str(int(time.mktime(datetime.now().timetuple()))), self.sid))
	db_conn.commit()

	db_cursor.close()
	db_conn.close()

    def saveTest(self):
	test_file = open(self.path+'/test', 'wb')
	test_file.write(self.test.serializeForFile())
	test_file.close()

    def saveResult(self):
	db_conn = sqlite3.connect(USER_DB)
	db_cursor = db_conn.cursor()
	
	self.result = self.test.getPoints()
	db_cursor.execute('UPDATE `users` SET `result`=? WHERE `sid`=?', ( str(self.result), self.sid) )
	db_conn.commit()

	db_cursor.close()
	db_conn.close()

    def populateAnswers(self, post):
	self.answer.addFromPost(post)

	test_file = open(self.path+'/answer', 'ab')
	test_file.write(self.answer.serializePostForFile(post))
	test_file.close()