import json

# Caminho do arquivo TXT de entrada
arquivo_txt = "/mnt/dados/www/speedtest/log.txt"
arquivo_json = "/mnt/dados/www/speedtest/dados.json"

# Lista para armazenar os valores convertidos
speed_tests = []

with open(arquivo_txt, "r", encoding="utf-8") as file:
    lines = file.readlines()

i = 0
while i < len(lines):
    line = lines[i].strip()

    # Verifica se a linha contém um timestamp
    if line.startswith("[") and "]" in line:
        timestamp = line.split("]")[0].strip("[]")  # Extraindo a data e hora

        # Verifica se há pelo menos duas linhas seguintes
        if i + 2 < len(lines):
            download_line = lines[i + 1].strip()
            upload_line = lines[i + 2].strip()

            if "Download Speed" in download_line and "Upload Speed" in upload_line:
                download_speed = float(download_line.split(":")[1].strip().split()[0])  # Pega o valor após ":"
                upload_speed = float(upload_line.split(":")[1].strip().split()[0])  # Pega o valor após ":"

                # Adiciona ao JSON
                speed_tests.append({
                    "Timestamp": timestamp,
                    "Download Speed": download_speed,
                    "Upload Speed": upload_speed
                })
                
        i += 3  # Avança para o próximo bloco de dados
    else:
        i += 1  # Se não for um timestamp, pula para a próxima linha

# Criando o dicionário final
dados_json = {"speed_tests": speed_tests}

# Salvando em um arquivo JSON formatado
with open(arquivo_json, "w", encoding="utf-8") as json_file:
    json.dump(dados_json, json_file, indent=4)

#print(f"Arquivo JSON gerado com sucesso: {arquivo_json}")

