<?php


$oab = $_GET['oab'];

function trazer1($str, $start, $end) {
    $parts = explode($start, $str);
    if (isset($parts[1])) {
        $subParts = explode($end, $parts[1]);
        return $subParts[0];
    }
}


$state_atual = file_get_contents('botT/estado.txt');


// exit;

// User-Agents reais e modernos (2024–2025)
$userAgents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.208 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.78 Safari/537.36"
];

$userAgent = $userAgents[array_rand($userAgents)];



function extrairCA($html) {
    $cas = [];

    $padrao = "/\/consultapublica\/ConsultaPublica\/DetalheProcessoConsultaPublica\/listView\.seam\?ca=([a-f0-9]{40,})/";


    // Procura todas as ocorrências
    if (preg_match_all($padrao, $html, $matches)) {
        $cas = array_unique($matches[1]); // Remove duplicatas
    }

    return $cas;
}





$url = "https://pje1g.trf1.jus.br/consultapublica/ConsultaPublica/listView.seam";

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$headers = array(
    'Host: pje1g.trf1.jus.br',
    'Connection: keep-alive',
    'Cache-Control: max-age=0',
    'sec-ch-ua: "Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"',
    'sec-ch-ua-mobile: ?0',
    'sec-ch-ua-platform: "Windows"',
    'Upgrade-Insecure-Requests: 1',
    'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_COOKIEJAR, __DIR__ . "/cookies.txt"); // Salva cookies
$resp = curl_exec($curl);



$tk = trazer1($resp, 'input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="','"');



// $ch = curl_init();

// Defina a URL e as opções de cURL
curl_setopt($curl, CURLOPT_URL, 'https://pje1g.trf1.jus.br/consultapublica/ConsultaPublica/listView.seam');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Retorna a resposta em vez de exibir
curl_setopt($curl, CURLOPT_POST, true); // Define o método POST
curl_setopt($curl, CURLOPT_USERAGENT, $userAgent); // Define o método POST
curl_setopt($curl, CURLOPT_HEADER, true); // Define o método POST
curl_setopt($curl, CURLOPT_ENCODING, true); // Define o método POST
curl_setopt($curl, CURLOPT_POSTFIELDS, "AJAXREQUEST=_viewRoot&fPP%3AnumProcesso-inputNumeroProcessoDecoration%3AnumProcesso-inputNumeroProcesso=&mascaraProcessoReferenciaRadio=on&fPP%3Aj_id152%3AprocessoReferenciaInput=&fPP%3Adnp%3AnomeParte=&fPP%3Aj_id170%3AnomeAdv=&fPP%3Aj_id179%3AclasseProcessualProcessoHidden=&tipoMascaraDocumento=on&fPP%3AdpDec%3AdocumentoParte=&fPP%3ADecoration%3AnumeroOAB=".trim($oab)."&fPP%3ADecoration%3Aj_id214=&fPP%3ADecoration%3AestadoComboOAB=".trim($state_atual)."&fPP=fPP&autoScroll=&javax.faces.ViewState=$tk&fPP%3Aj_id220=fPP%3Aj_id220&AJAX%3AEVENTS_COUNT=1&"); // Envia os dados do formulário
curl_setopt($curl, CURLOPT_HTTPHEADER, [
   'Host: pje1g.trf1.jus.br',
    'Connection: keep-alive',
    // 'Content-Length: 526',
    'sec-ch-ua-platform: "Windows"',
    'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
    'sec-ch-ua: "Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"',
    'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
    'sec-ch-ua-mobile: ?0',
    'Accept: */*',
    'Origin: https://pje1g.trf1.jus.br',
    'Sec-Fetch-Site: same-origin',
    'Sec-Fetch-Mode: cors',
    'Sec-Fetch-Dest: empty',
    'Referer: https://pje1g.trf1.jus.br/consultapublica/ConsultaPublica/listView.seam',
]);

// Configura para armazenar cookies e manter a sessão
curl_setopt($curl, CURLOPT_COOKIEJAR, __DIR__ . "/cookies.txt"); // Salva cookies
curl_setopt($curl, CURLOPT_COOKIEFILE, __DIR__ . "/cookies.txt"); // Usa cookies salvos
curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1); // Usa cookies salvos
$html = curl_exec($curl);







// // Exemplo de uso:
// $listaCA = extrairCA($html);
// // echo count($listaCA);

// // exit;
// foreach ($listaCA as $ca) {
//     echo "CA encontrado: $ca\n";
// }
// exit;












// $count_page = substr_count($html, 'class="paginacao"');

// $resumo = $count_page / 2 + 1;



// $coun_prcs = str_replace('  ','',trim(trazer5($html, '<span id="contadorDeProcessos" class="resultadoPaginacao unj-font unj-lh-32 unj-caption">','<')));



// $processos = extrairNumerosProcessos($html);

// if ($processos == '0') {
//     sendMessage(CHAT_ID,"```ENCERRANDO POR FALTA DE PROCESSO GERE NOVA OAB``` *". count($processos) ."*");
    
//     exit;
// }








require('tele.php');






// Exemplo de uso:
$listaCA = extrairCA($html);
// echo count($listaCA);


if (count($listaCA) == '0') {
    # sem processos
    send2Message('Infelizmente no sistema PJE nao tem processos para esta OAB'); // fallback, se chat/message id não foram enviados

}


// exit;
// foreach ($listaCA as $ca) {
//     echo "CA encontrado: $ca\n";
// }
// exit;






if ($page == '') {
    $page='1';
}

include('botT/bot.php');
$arquivo = 'banco.txt'; // Arquivo com os dados

$page = isset($page) ? (int)$page : 1;
$porPagina = 70;

// Verifica se o arquivo existe
if (!file_exists($arquivo)) {
    die("Arquivo de banco de dados não encontrado.");
}

// Carrega os destinatários do banco
$dados = file($arquivo, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$usuarios = [];

foreach ($dados as $linha) {
    $json = json_decode($linha, true);
    if ($json) {
        $usuarios[] = ['user' => $json['USER'], 'id' => $json['ID']];
    }
}

// Paginação dos destinatários
$totalUsuarios = count($usuarios);
$totalPaginas = ceil($totalUsuarios / $porPagina);
$page = max(1, min($totalPaginas, $page));

$inicio = ($page - 1) * $porPagina;
$usuariosPagina = array_slice($usuarios, $inicio, $porPagina);

// Monta os botões dos usuários
$botoes = ['inline_keyboard' => []];
$tempRow = [];

foreach ($usuariosPagina as $usuario) {
    $tempRow[] = [
        'text' => $usuario['user'],
        'callback_data' => "select_{$usuario['id']}ob_{$oab}pag_{$page}"
    ];

    if (count($tempRow) == 2) {
        $botoes['inline_keyboard'][] = $tempRow;
        $tempRow = [];
    }
}
if (!empty($tempRow)) {
    $botoes['inline_keyboard'][] = $tempRow;
}

// Botões de navegação
$navButtons = [];
if ($page > 1) {
    $navButtons[] = ['text' => '⬅️ Anterior', 'callback_data' => "nav_page_" . ($page - 1) . "_ob_" . $oab];
}
if ($page < $totalPaginas) {
    $navButtons[] = ['text' => 'Próxima ➡️', 'callback_data' => "nav_page_" . ($page + 1) . "_ob_" . $oab];
}
if (!empty($navButtons)) {
    $botoes['inline_keyboard'][] = $navButtons;
}

// Aqui voltam os valores originais da lógica dos processos
$mensagem = "```TOTAL DE PROCESSOS ENCONTRADOS NESTA PAGINA:``` *" . count($listaCA) . "*";
$mensagem .= "\n\n```TOTAL DE PROCESSOS ENCONTRADOS TODAS PAGINAS:``` *" . count($listaCA) . "*";
$mensagem .= "\n\n```TOTAL DE PAGINAS ENCONTRADOS:``` *1*";
$mensagem .= "\n\n```PAGINA SELECIONADA:``` *1*";
$mensagem .= "\n\n\n\n```SELECIONE QUEM IRA RECEBER ESTES PROCESSOS:``` *🔽🔽🔽*";


// Envia a mensagem
// send2Message($mensagem, $botoes);
if ($chat_id && $message_id) {
    editMessagef($chat_id, $message_id, $mensagem, $botoes);
} else {
    send2Message($mensagem, $botoes); // fallback, se chat/message id não foram enviados
}


