From db682de691f8c4982495ee96d3e71da91c7813c3 Mon Sep 17 00:00:00 2001 From: "daniel.rodrigues" Date: Fri, 31 Oct 2025 14:51:43 -0300 Subject: [PATCH] att --- extranet_token.py | 102 +++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 60 deletions(-) diff --git a/extranet_token.py b/extranet_token.py index 7f22ad7..2e10831 100644 --- a/extranet_token.py +++ b/extranet_token.py @@ -6,7 +6,6 @@ import re import json from datetime import datetime import pyodbc -import time @@ -14,10 +13,6 @@ hoje_coluna = datetime.today() # Pegando a Data e Hora de hoje hoje_formatado = hoje_coluna.strftime('%Y-%m-%d') data_atual = datetime.now().strftime("%Y-%m-%d %H:%M:%S") -# Constantes de tempo em segundos -TEMPO_ESPERA_SUCESSO = 45 * 60 # 45 minutos -TEMPO_ESPERA_ERRO = 3 * 60 # 3 minutos - def generate_code_verifier(): """Gera um code_verifier aleatório.""" return base64.urlsafe_b64encode(os.urandom(32)).decode('utf-8').rstrip("=") @@ -233,71 +228,58 @@ def insert_token_to_db(token): except Exception as e: print(f"Erro ao inserir token no banco de dados: {e}") -def main_loop(): +def main(): """ - Função principal que executa em loop, controlando os tempos de espera + Função principal que executa uma única vez """ - while True: - try: - print(f"\n[{datetime.now()}] Iniciando processo de obtenção do token...") - - session = requests.Session() - code_verifier = generate_code_verifier() - code_challenge = generate_code_challenge(code_verifier) - - # Enviar requisição GET para obter tokens - html_content = send_authorization_request(session, code_challenge) - csrf_token, state_properties = extract_tokens(html_content) + try: + print(f"\n[{datetime.now()}] Iniciando processo de obtenção do token...") - if not csrf_token or not state_properties: - print(f"[{datetime.now()}] Falha ao extrair CSRF Token ou StateProperties.") - print(f"Aguardando {TEMPO_ESPERA_ERRO/60} minutos antes de tentar novamente...") - time.sleep(TEMPO_ESPERA_ERRO) - continue + session = requests.Session() + code_verifier = generate_code_verifier() + code_challenge = generate_code_challenge(code_verifier) - # Dados de login - username = "daniel.rodrigue" - password = "Iphone2513@" + # Enviar requisição GET para obter tokens + html_content = send_authorization_request(session, code_challenge) + csrf_token, state_properties = extract_tokens(html_content) - # Enviar requisição POST para login - login_response = send_login_request(session, csrf_token, state_properties, username, password) + if not csrf_token or not state_properties: + print(f"[{datetime.now()}] Falha ao extrair CSRF Token ou StateProperties.") + return - if not login_response: - print(f"[{datetime.now()}] Falha no login.") - print(f"Aguardando {TEMPO_ESPERA_ERRO/60} minutos antes de tentar novamente...") - time.sleep(TEMPO_ESPERA_ERRO) - continue + # Dados de login + username = "daniel.rodrigue" + password = "Iphone2513@" - # Enviar requisição final - final_page_html = send_final_request(session, csrf_token, state_properties) - code = extract_code_from_html(final_page_html) - - if not code: - print(f"[{datetime.now()}] Falha ao extrair código.") - print(f"Aguardando {TEMPO_ESPERA_ERRO/60} minutos antes de tentar novamente...") - time.sleep(TEMPO_ESPERA_ERRO) - continue + # Enviar requisição POST para login + login_response = send_login_request(session, csrf_token, state_properties, username, password) - token = send_token_request(code, code_verifier) - tokens = extract_tokens_2(token) - - if tokens: - access_token = tokens["access_token"] - insert_token_to_db(access_token) - print(f"[{datetime.now()}] Token obtido e salvo com sucesso!") - print(f"Aguardando {TEMPO_ESPERA_SUCESSO/60} minutos antes da próxima atualização...") - time.sleep(TEMPO_ESPERA_SUCESSO) - else: - print(f"[{datetime.now()}] Falha ao processar tokens.") - print(f"Aguardando {TEMPO_ESPERA_ERRO/60} minutos antes de tentar novamente...") - time.sleep(TEMPO_ESPERA_ERRO) + if not login_response: + print(f"[{datetime.now()}] Falha no login.") + return - except Exception as e: - print(f"[{datetime.now()}] Erro inesperado: {str(e)}") - print(f"Aguardando {TEMPO_ESPERA_ERRO/60} minutos antes de tentar novamente...") - time.sleep(TEMPO_ESPERA_ERRO) + # Enviar requisição final + final_page_html = send_final_request(session, csrf_token, state_properties) + code = extract_code_from_html(final_page_html) + + if not code: + print(f"[{datetime.now()}] Falha ao extrair código.") + return + + token = send_token_request(code, code_verifier) + tokens = extract_tokens_2(token) + + if tokens: + access_token = tokens["access_token"] + insert_token_to_db(access_token) + print(f"[{datetime.now()}] Token obtido e salvo com sucesso!") + else: + print(f"[{datetime.now()}] Falha ao processar tokens.") + + except Exception as e: + print(f"[{datetime.now()}] Erro inesperado: {str(e)}") if __name__ == "__main__": - main_loop() + main()