#!/usr/bin/python import cgi import os import sys #recebe por get ou post os parametros username e score #caso o score recebido esteja entre os 10 melhores #atualiza o arquivo top10.txt e retorna a lista dos 10 melhores em formato querystring # Required header that tells the browser how to render the text. print "Content-Type: text/plain\n\n" username = '' score = '0' try: form = cgi.FieldStorage() username = form['username'].value score = form['score'].value except: print '&sucesso=2&' def readHighscoreFile(filename='top10.txt',path=None): try: #abre o arquivo para leitura fileobject = open(filename,'r') #preenche cada elemento da lista entradas com uma linha do arquivo entradas = fileobject.readlines(); #para cada elemento da lista for i in range(len(entradas[:])/2): #retira os espacos em branco entradas[i] = entradas[i].strip() nomes.append(entradas[i]) for i in range(len(entradas[:])/2): entradas[i+(len(entradas[:])/2)] = entradas[i+(len(entradas[:])/2)].strip() scores.append(entradas[i+(len(entradas[:])/2)]) #nao conseguiu abrir o arquivo except IOError, (errno, strerror): print "erro de E/S(%s): %s" % (errno, strerror) except: print "Erro inesperado:", sys.exc_info()[0] raise def updateHighscoreFile(filename='top10.txt',path=None): try: #abre o arquivo para escrita fileobject = open(filename,'w') #para cada elemento da lista for i in range(len(nomes[:10])): fileobject.write(nomes[i]+"\n") for i in range(len(scores[:10])): fileobject.write(scores[i]+"\n") fileobject.close() #nao conseguiu abrir o arquivo except IOError, (errno, strerror): print "erro de E/S(%s): %s" % (errno, strerror) except: print "Erro inesperado:", sys.exc_info()[0] raise nomes = [] scores = [] readHighscoreFile(); for i in range(len(scores[:])): if eval(score) > eval(scores[i]): scores.insert(i,score) nomes.insert(i,username) posicao = i; break for i in range(len(scores[:])): print "&nome"+str(i)+"="+nomes[i]+"&score"+str(i)+"="+scores[i]+"&" print '&sucesso=1&posicao='+str(posicao) updateHighscoreFile();