<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$db = new SQLite3('./.ansdb.db');

// Função para verificar a URL com cURL
function getresult($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_exec($ch);
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    return $httpcode;
}

if (isset($_GET['username']) && isset($_GET['password'])) {
    $username = $_GET['username'];
    $password = $_GET['password'];

    // Verifica o username e password no banco de dados
    $res = $db->query("SELECT * FROM ibo WHERE username = '" . SQLite3::escapeString($username) . "' AND password = '" . SQLite3::escapeString($password) . "'");
    $row = $res->fetchArray(SQLITE3_ASSOC);

    if ($row) {
        $url_user = rtrim($row['dns'], '/');  // Remove a barra final se houver
        $stream_id = $_GET['stream_id'] ?? '';  // Se não tiver stream_id, deixa vazio

        // Monta a URL de redirecionamento
        $redirect_url = "{$url_user}/live/{$username}/{$password}/{$stream_id}";

        // Verifica se a URL é acessível
        $httpcode = getresult($redirect_url);

        if ($httpcode == 200) {  // Se o código HTTP for 200 (OK)
            header("HTTP/1.1 301 Moved Permanently");
            header("Location: " . $redirect_url);
            exit;
        } else {
            // Caso a URL não seja acessível
            header("HTTP/1.1 404 Not Found");
            echo "URL não encontrada ou inacessível.";
        }
    } else {
        // Caso username ou password estejam errados
        header("HTTP/1.1 403 Forbidden");
        echo "Credenciais inválidas.";
    }
} else {
    header("HTTP/1.1 400 Bad Request");
    echo "Parâmetros ausentes.";
}
?>