version.py 3.28 KB
# -*- 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