sub init()
    m.top.functionName = "go"
end sub
sub go()
    good = check_user()
    if good <> invalid then
        m.top.auth = good.user_info.auth.ToStr()  ' Convertir auth a cadena para comparación
        if m.top.auth = "1" then
            ' Autenticación exitosa, continuar con el proceso
            m.top.message = good.user_info.message
            m.top.status = good.user_info.status
            m.global.max_connections = good.user_info.max_connections
            m.global.active_cons = good.user_info.active_cons
            m.global.user = good.user_info.username
            m.global.pass = good.user_info.password
            m.global.expire = "Never"
            if good.user_info.exp_date <> invalid then
                m.global.expire = good.user_info.exp_date.toInt()
            end if
            m.global.timeServer = good.server_info.timestamp_now
        else
            ' Si auth es "0", no hacer nada o puedes agregar un mensaje de error aquí si lo deseas
            print "Autenticación fallida: auth = 0"
        end if
    else
        Dbg("❌ Eliminated account - no servidor válido")

        ' Validación para no explotar si no se encontró servidor
        appName = ""
        if m.global.config <> invalid and m.global.config.appName <> invalid
            appName = m.global.config.appName
        end if

        if appName <> ""
            regDelete("userTV", appName)
            regDelete("passTV", appName)
            regDelete("lock", appName)
            regDelete("channelCategory", appName)
            regDelete("moviesCategory", appName)
            regDelete("seriesCategory", appName)
            regDelete("live", appName)
            regDelete("movie", appName)
            regDelete("series", appName)
            regDelete("sort", appName)
            regDelete("streamFormat", appName)
        else
            Dbg("⚠️ No se pudo determinar appName para eliminar registros.")
        end if
    end if
end sub
function check_user() As Object
    ' Recorremos cada servidor del array
    print "Iniciando verificación de usuarios"
    
    for each cfg in m.global.config_activa
        print "Procesando servidor: " + cfg.serverURL
        user = regread("userTV", cfg.appName)
        pass = regread("passTV", cfg.appName)

        print "Usuario leído: " + user
        print "Contraseña leída: " + pass

        if user <> invalid and pass <> invalid and user <> "" and pass <> "" then
            url = cfg.serverURL + "/player_api.php?username=" + user.Escape() + "&password=" + pass.Escape()
            print "Generando URL: " + url
            http = NewHttp(url)
            response = http.GetToStringWithRetry()

            print "Respuesta de la API: " + response

            if len(response) > 0 and (Left(response, 1) = "{" or Left(response, 1) = "[")
                print "Respuesta es un JSON válido"
                json = ParseJson(response)

                print "Estructura JSON recibida: " + response

                if json.user_info <> invalid then
                    print "user_info está presente"
                    if json.user_info.auth = 1
                        print "Inicio sesión con auth = 1"
                        print "Servidor válido: " + cfg.serverURL

                        ' Guardar servidor válido
                        m.global.user = user
                        m.global.pass = pass
                        m.global.config = config(cfg)
                        return json
                    else
                        print "auth no es igual a 1"
                    end if
                else
                    print "user_info es inválido"
                end if
            else
                print "La respuesta no es un JSON válido"
            end if
        else
            print "Usuario o contraseña inválidos"
        end if
    end for

    print "No se encontró ningún servidor válido"
    return invalid
end function


function config(cfg)
    print "Entro a config cfg"
  return {
        "serverURL": cfg.serverURL,
        "appName": cfg.appName,
        "api_key": "46270abd00c39663cde5d450ff83cbb8",
        "version": "4.5"
        }
end function