def sinesp(self): # sc = SinespClient(proxy_address='168.228.28.69', proxy_port=4145) sc = SinespClient() result = sc.search(self.placa) json_result = json.dumps(result) y = json.loads(json_result) x = str(y["status_message"]).upper() return x, y
def pesquisaSituacao(placa): try: sc = SinespClient() resultado = sc.search(placa) # print(placa) # print(resultado['status_message']) # print(resultado) if resultado.get('return_code') == '1' or resultado.get('return_code') == '3': print(f'\nATENÇÃO *-* Placa {placa} inválida *-* \n Possíveis motivos:\n' '1 - Essa placa não se encontra no servidor da SINESP \n*-* ATENÇÃO *-*' 'ESSA PLACA PODE SER FALSA!\n' '2 - A placa não foi identificada corretamente\n') arduinoSerial.attentionLED() elif (resultado.get('status_code') == '1'): print('\n*-* ATENÇÃO *-*\n' f'O veículo placa {placa} está marcado como roubado/furtado segundo o SINESP\n' f'{resultado.get("model")} {resultado.get("color")} {resultado.get("model_year")}\n' f'{resultado.get("plate")} - {resultado.get("city")} - {resultado.get("state")}\n' 'Fique atento e chame as autoridades competentes\n' 'EM HIPOTESE NENHUMA TENTE AGIR POR CONTA PRÓPRIA!\n') arduinoSerial.warningLED() elif (resultado.get('status_message') in 'None'): print('\n Não foi possível realizar a pesquisa da situação do veículo junto ao SINESP\n' 'Verifique a possibilidade de uma atualizaçao na API SinespClient\n' 'E torça para uma API oficial ser lançada!') arduinoSerial.attentionLED() else: print(f'\nVeículo placa {placa} regularizado segundo o SINESP\n' 'Fique atento as características do veículo cadastradas no SINESP:\n' f'{resultado.get("model")} {resultado.get("color")} {resultado.get("model_year")}\n' f'{resultado.get("plate")} - {resultado.get("city")} - {resultado.get("state")}\n') except: print('\n Não foi possível realizar a pesquisa da situação do veículo junto ao SINESP\n' 'Possíveis Erros:\n' '1 - Verifique sua conexão com a internet\n' '2 - Confira se não há uma atualização na API\n' '3 - O aplicativo da SINESP pode estar fora do ar no momento\n' '4 - O servidor bloqueou seu acesso devido a muitos acessos seguidos.\n' 'Nesse caso, o acesso pode se normalizar após algumas horas \n' '(talvez seja necessario limpar o cache)\n') arduinoSerial.attentionLED()
# https://github.com/victor-torres/sinesp-client/ # pip install sinesp-client # Python instalado na versão 2.8.1 ou superior from sinesp_client import SinespClient import json import sys placa = str(sys.argv[1]) sc = SinespClient() result = sc.search(placa) resjson = json.dumps(result) cfile = "C:\\temp\\placas\\" + placa + ".json" try: arquivo = open(cfile, 'w') except FileNotFoundError: arquivo = open(cfile, 'w') arquivo.writelines(resjson) arquivo.close()
""" from sinesp_client import SinespClient import requests import json import csv # Mineração de dados dos veículos/Piauí # Criado na data: Quinta-feira - 01/03/2018 # Autor: Emanuel A. Gabriel # Usando API Pública do SINESP # Mineração de dados # Entrada da dados para acesso busca = SinespClient(proxy_address='proxy.tjpi.local', proxy_port=3128) dados_do_veiculo = input("Digite a PLACA do Veículo: EX. ABC1234: ") # Buscando os dados digitados no campo - 'dados_do_veiculo' resultado = busca.search(dados_do_veiculo) # Abrindo arquivos - dados_de_veiculos f = open("veiculos_pi.csv", "w") situcao = csv.writer(f) modelo_da_api = '''return_code return_message status_code status_message chassis model brand color year model_year plate date city state'''.split( ) situcao.writerow(modelo_da_api)
def main(): blnKNNTrainingSuccessful = LeitorPlaca.DetectarCaracteres.loadKNNDataAndTrainKNN( ) # tentativa KNN(o vizinho mais proximo, algoritmo) training if blnKNNTrainingSuccessful == False: # se KNN(o vizinho mais proximo, algoritmo) training não foi bem sucedida print("\nerror: KNN traning was not successful\n") # mostrar mensagem de erro return # e fechar programa # end if print("Executando") cap = cv2.VideoCapture(0) while (True): # Capture frame-by-frame ret, imgCenaOriginal = cap.read() if imgCenaOriginal is None: # se a imagem não foi lida com sucesso print("\nErro: camera não lida\n") # exibir mensagem de erro de impressão # pausar assim que o usuário puder ver a mensagem de erro return # e fechar programa # end if listaDePossiveisPlacas = LeitorPlaca.DetectarPlacas.DetectarPlacasInScene( imgCenaOriginal) # detectar Placas listaDePossiveisPlacas = LeitorPlaca.DetectarCaracteres.DetectarCaracteresNasPlacas( listaDePossiveisPlacas) # detectar caracteres nas Placas if len(listaDePossiveisPlacas) != 0: # Se entrar aqui lista de possíveis Placas tem pelo menos uma Placa # Classificar a lista de possíveis Placas em ordem decrescente (maior número de caracteres para o menos número de caracteres) listaDePossiveisPlacas.sort( key=lambda possivelPlaca: len(possivelPlaca.strCaracteres), reverse=True) # Suponha que o local com os caracteres mais reconhecidos é a placa real licPlaca = listaDePossiveisPlacas[0] # Gravar possivel placa de carro if len(licPlaca.strCaracteres) != 0: desenharRetanguloVermelhoAoRedorDaPlaca( imgCenaOriginal, licPlaca) escreverCaracteresDaPlacaNaImagem(imgCenaOriginal, licPlaca) stringData = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") #exibir de novo a imagem, só que alterada. com as inserções placaCarro = re.compile('[a-zA-Z]{3}[0-9]{4}') if placaCarro.match(licPlaca.strCaracteres): # desenhar um retângulo vermelho em torno de Placa print("\nPlaca lida da imagem = " + licPlaca.strCaracteres + "\n") # escrever o texto da placa para std out print("----------------------------------------") cv2.imwrite("imgOriginal" + stringData + ".png", imgCenaOriginal) cv2.imwrite("imgPlaca" + stringData + ".png", licPlaca.imgPlaca) sc = SinespClient() result = sc.search(licPlaca.strCaracteres) print(result) # gravar essa imagem alterada para o arquivo else: print("placa lida: " + licPlaca.strCaracteres) #print ("Placa não identificada, dados gravados") cv2.imwrite("imgTentativaOriginal" + stringData + ".png", imgCenaOriginal) cv2.imwrite(stringData + "-imgTentativaPlaca.png", licPlaca.imgPlaca) cv2.imwrite(stringData + "-imgTentativaThreshold.png", licPlaca.imgThreshold) cap.release() cv2.destroyAllWindows() return
def get_placa(self, event): placa = self.campo_placa.get() sc = SinespClient() results = sc.search(placa) self.apaga_lstbox() self.escreve_lstbox(results)
def consulta(placa, chat): sc = SinespClient() #print(placa) info = sc.search(placa) retornaPlaca(info, chat)
def cotacao_task(): status_pendente = Status.objects.get(name='pendente') status_cotado = Status.objects.get(name='cotado') cotacoes = None cotacoes = CotacaoRequest.objects.all() for c in cotacoes: if c.status == status_pendente: #""" CONSUMO SINESP """ sc = SinespClient() print(c.placa) result = sc.search(c.placa) print(result) cotacao_request_update_1 = CotacaoRequest( id=c.id, cotacao_type=c.cotacao_type, email=c.email, cpf=c.cpf, placa=c.placa, cep=c.cep, chassi=result['chassis'], modelo=result['model'], marca=result['brand'], anoFabricacao=result['year'], anoModelo=result['model_year'], date_created_at=datetime.date.today(), hour_created_at=datetime.datetime.now()) print(cotacao_request_update_1.cpf) cotacao_request_update_1.save() #""" CONSUMO BIPBOP """ params = { 'q': "USING 'CRAWLER' SELECT FROM 'FINDER'.'CONSULTA' WHERE 'DOCUMENTO'='{}'" .format(cotacao_request_update_1.cpf), 'apiKey': 'e3dc8917fdb86bdf654bfd976696024b' } response = requests.post('https://irql.bipbop.com.br', params=params) infos = xmltodict.parse(response.text) infos_json = json.dumps(infos) print(infos_json) if (infos['BPQL']['body']['xml']['ocorrencia']['codocor'] == '0'): print('encontrado') dados_cadastro = infos['BPQL']['body']['xml']['cadastro'] cotacao_request_update_2 = CotacaoRequest( id=cotacao_request_update_1.id, cotacao_type=c.cotacao_type, email=c.email, cpf=c.cpf, placa=c.placa, cep=c.cep, chassi=result['chassis'], modelo=result['model'], marca=result['brand'], anoFabricacao=result['year'], anoModelo=result['model_year'], nome_completo=dados_cadastro['nome'], data_nascimento=dados_cadastro['dtnascimento'], sexo=dados_cadastro['sexo'], date_created_at=datetime.date.today(), hour_created_at=datetime.datetime.now()) cotacao_request_update_2.save() #salvando telefones if (infos['BPQL']['body']['xml']['telefones']): dados_telefone = infos['BPQL']['body']['xml']['telefones'][ 'telefone'] if isinstance( infos['BPQL']['body']['xml']['telefones'] ['telefone'], list): for i in range(len(dados_telefone)): cotacao_request_update_3 = PhoneList( cotacao_id=cotacao_request_update_2.id, ddd=dados_telefone[i]['ddd'], numero=dados_telefone[i]['numero']) cotacao_request_update_3.save() else: cotacao_request_update_3 = PhoneList( cotacao_id=cotacao_request_update_2.id, ddd=dados_telefone['ddd'], numero=dados_telefone['numero']) cotacao_request_update_3.save() #salvando endereços if (infos['BPQL']['body']['xml']['enderecos']): dados_endereco = infos['BPQL']['body']['xml']['enderecos'][ 'endereco'] if isinstance( infos['BPQL']['body']['xml']['enderecos'] ['endereco'], list): for i in range(len(dados_endereco)): cotacao_request_update_4 = AddressInfos( cotacao_id=cotacao_request_update_2.id, tipo=dados_endereco[i]['tipo'], logradouro=dados_endereco[i]['logradouro'], numero=dados_endereco[i]['numero'], bairro=dados_endereco[i]['bairro'], cidade=dados_endereco[i]['cidade'], estado=dados_endereco[i]['estado'], complemento=dados_endereco[i]['complemento']) cotacao_request_update_4.save() else: cotacao_request_update_4 = AddressInfos( cotacao_id=cotacao_request_update_2.id, tipo=dados_endereco['tipo'], logradouro=dados_endereco['logradouro'], numero=dados_endereco['numero'], bairro=dados_endereco['bairro'], cidade=dados_endereco['cidade'], estado=dados_endereco['estado'], complemento=dados_endereco['complemento']) cotacao_request_update_4.save() change_status = CotacaoRequest( id=c.id, status=status_cotado, ) change_status.save(update_fields=["status"]) print('Cotacao concluida!!') else: print('não encontrado') cotacao_request_update_2 = CotacaoRequest( id=cotacao_request_update_1.id, cotacao_type=c.cotacao_type, email=c.email, cpf=c.cpf, placa=c.placa, cep=c.cep, chassi=result['chassis'], modelo=result['model'], marca=result['brand'], anoFabricacao=result['year'], anoModelo=result['model_year'], date_created_at=datetime.date.today(), hour_created_at=datetime.datetime.now()) cotacao_request_update_2.save() change_status = CotacaoRequest( id=c.id, status=status_cotado, ) change_status.save(update_fields=["status"]) print('Cotacao concluida!!') return Response({'status': 'OK'}) # #ENVIO DE EMAIL # template = Template('cotacao.html') # print("email") # context = Context({ # 'email': email, # 'cpf': cpf, # 'placa': placa, # 'cep': cep, # }) # content = render_to_string('cotacao.html', {'context': context }) # send_email = EmailMessage("Cotação de Seguro Carro: {}".format(placa), content , '*****@*****.**', ['*****@*****.**'], reply_to=[email]) # send_email.content_subtype = 'html' # send_email.send() # return Response({'status': 'OK'}) return Response(status=status.HTTP_200_OK)
def Teste1(self): print("Digite placa do carro") placa = input() sc = SinespClient() result = sc.search(placa) print(result)
def sinesp(placa): sc = SinespClient() result = sc.search(placa) print(result['model'] + "\n" + result['color'] + "\n" + result['year'] + "\n" + result['return_message'] + "\n" + result['status_message'] + "\n" + result['chassis'])
def procura_placa(placa_sinesp): vetor = [] sc = SinespClient() results = sc.search(placa_sinesp) for result in results.values(): vetor.append(result)
import json import sys from sinesp_client import SinespClient sc = SinespClient(proxy_address=sys.argv[1], proxy_port=sys.argv[2]) plate = sys.argv[3] result = sc.search(plate) json_result = json.dumps(result) print(json_result)