# -*- coding: utf-8 -*- import os.path import json, zipfile, subprocess,urllib from os import popen import Util import sys , shutil from threading import Thread class TVersion(Thread): """classe responsável por fornecer as versões do player e do dicionário""" def __init__(self): self.api_dict_version_full = '0.0.0_0.0.0' self.api_dict_version = 000000 self.api_player_version = 000 self.api_player_version_full = '0.0.0' self.url_download_player = '' self.url_download_dict = '' self.local_dict_version_full = '0.0.0_0.0.0' self.local_dict_version = 000000 self.local_player_version = 000 Thread.__init__(self) def run(self): self.loadLocalVersion() self.loadApiVersion() ## Carrega a versão online do dicionario e do play def loadApiVersion(self): try: if(Util.downladFileApi(Util.URL_REQUEST_API+self.local_dict_version_full+'?type=json')): with open(Util.JSON_API_VERSION) as data: json_data = json.load(data) self.api_dict_version_full = json_data['dictionaryVersion'].encode('utf-8') self.api_dict_version = int(json_data['dictionaryVersion'].encode('utf-8').replace(".", "").replace("_", "")) self.api_player_version = int(json_data['playerVersion'].encode('utf-8').replace(".", "")) self.api_player_version_full = json_data['playerVersion'].encode('utf-8') self.url_download_player = json_data['playerUrl'].encode('utf-8') self.url_download_dict = json_data['dictionaryUrl'].encode('utf-8') else: print 'Erro ao fazer download do json de versoes' except: print 'Erro ao carregar JSON_API_VERSION' ## Carrega a versão local do dicionario e do play def loadLocalVersion(self): if os.path.isfile(Util.TXT_DICT_VERSION): fileDictVersion = open(Util.TXT_DICT_VERSION,'r') versionLocalDict = fileDictVersion.readline() fileDictVersion.close() self.local_dict_version_full = versionLocalDict self.local_dict_version = int(versionLocalDict.encode('utf-8').replace(".", "").replace("_", "")) if os.path.isfile(Util.TXT_PLAYER_VERSION): filePlayerVersion = open(Util.TXT_PLAYER_VERSION,'r') versionLocalPlayer = filePlayerVersion.readline() filePlayerVersion.close() self.local_player_version = int(versionLocalPlayer.encode('utf-8').replace(".", "")) ## Verifica se a vesao local do player é menor que a disponível pra download def isUpdatePlayer(self): return self.api_player_version > self.local_player_version ## Verifica se a vesao local do dicionário é menor que a disponível pra download def isUpdateDict(self): return self.api_dict_version > self.local_dict_version ## recarrega as versões def reload(self): self.loadLocalVersion() self.loadApiVersion() """return (1 = player para átualizar, 2 = dicionario para atualizar, 0 = não existe atualização disponível) """ def checkVersion(self): self.reload() if(self.isUpdatePlayer()): return '1'; elif (self.isUpdateDict()): return '2' else: return '0' if __name__ == '__main__': version = TVersion() version.start() version.checkVersion(); print'existe novo player: ',version.isUpdatePlayer() print 'existe novo dicionario: ',version.isUpdateDict() print 'versao local do dicionario: ',version.local_dict_version print 'versao api do dicionario: ',version.api_dict_version