/**
* Plugin Name: PIRANOT AI (Lite – Automação Diária)
* Description: Solução simplificada em arquivo único. Gera posts diários (Loterias/Bicho) às 08h30 e monitora resultados via API/Scraper.
* Version: 1.0.Lite
* Author: Equipe PIRANOT
*/
if (!defined(‘ABSPATH’)) exit;
// ==========================================================================
// 1. CONFIGURAÇÕES E CONSTANTES
// ==========================================================================
define(‘PIRANOT_LITE_VERSION’, ‘1.0’);
// ==========================================================================
// 2. PAINEL ADMINISTRATIVO (SIMPLIFICADO)
// ==========================================================================
add_action(‘admin_menu’, ‘piranot_lite_menu’);
function piranot_lite_menu() {
add_menu_page(‘PIRANOT AI’, ‘PIRANOT AI’, ‘manage_options’, ‘piranot-lite’, ‘piranot_lite_page’, ‘dashicons-update’, 2);
}
function piranot_lite_page() {
// Processar Salvamento Manual ou Teste
if (isset($_POST[‘run_now’]) && check_admin_referer(‘piranot_run’)) {
piranot_lite_daily_routine(); // Força a criação dos posts
echo ‘
Rotina de Criação (08h30) executada manualmente!
‘;
}
if (isset($_POST[‘check_results’]) && check_admin_referer(‘piranot_run’)) {
piranot_lite_check_results(); // Força a checagem de resultados
echo ‘
Verificação de Resultados executada!
‘;
}
?>
🤖 PIRANOT AI – Central de Comando
Status do Sistema
Cron de Criação (08h30): Agendado.
Cron de Monitoramento (20h30+): Agendado (5 em 5 min).
Ações Manuais (Teste)
Últimos Resultados Salvos (Cache)
return $schedules;
});
add_action(‘init’, function() {
if (!wp_next_scheduled(‘piranot_daily_creation’)) {
wp_schedule_event(strtotime(’08:30:00′), ‘daily’, ‘piranot_daily_creation’);
}
if (!wp_next_scheduled(‘piranot_result_check’)) {
wp_schedule_event(time(), ‘five_minutes’, ‘piranot_result_check’);
}
});
// Hook para as funções
add_action(‘piranot_daily_creation’, ‘piranot_lite_daily_routine’);
add_action(‘piranot_result_check’, ‘piranot_lite_check_results’);
// ==========================================================================
// 4. LÓGICA DE CRIAÇÃO DE POSTS (08h30)
// ==========================================================================
function piranot_lite_daily_routine() {
$hoje = date(‘Y-m-d’);
$dia_semana = date_i18n(‘l’); // Ex: Segunda-feira
// Verifica se já rodou hoje para não duplicar
if (get_option(‘piranot_created_’ . $hoje)) return;
// — 1. POST GERAL DO BICHO —
$html_bicho = piranot_get_template_bicho();
// Substitui variáveis
$html_bicho = str_replace(‘{DATA}’, date(‘d/m/y’), $html_bicho);
$html_bicho = str_replace(‘{DIA_SEMANA}’, $dia_semana, $html_bicho);
piranot_create_post(“Resultado Jogo do Bicho de Hoje ({$hoje})”, $html_bicho, ‘bicho’);
// — 2. LOTERIAS CAIXA —
// Aqui precisaríamos de uma lógica para saber qual concurso é hoje.
// Simplificação: Consultamos a API para saber o PRÓXIMO concurso.
$loterias = [‘megasena’, ‘lotofacil’, ‘quina’];
foreach ($loterias as $tipo) {
$dados = piranot_api_caixa_next($tipo); // Função auxiliar que pega o próximo
if ($dados && $dados[‘data_sorteio’] == date(‘d/m/Y’)) {
// É hoje! Cria o post.
$template = piranot_get_template_loto($tipo);
// Troca variáveis do Template
$conteudo = str_replace(
[‘{CONCURSO}’, ‘{DATA}’, ‘{PREMIO}’],
[$dados[‘concurso’], $dados[‘data_sorteio’], $dados[‘premio_estimado’]],
$template
);
// Injeta o Shortcode Visualizador
// [piranot_loto tipo=”mega” concurso=”1234″]
$shortcode = ‘[piranot_loto tipo=”‘.$tipo.’” concurso=”‘.$dados[‘concurso’].’”]’;
// Onde colocar? No seu HTML tem “>>> VER NÚMEROS AGORA <<<“, podemos substituir ou colocar abaixo // O seu template já tem uma área esperando, vamos assumir que você insere manualmente ou // inserimos no final do template: //$conteudo .= “\n\n” . $shortcode; // MELHOR: Seu HTML já tem links. Vamos injetar o shortcode logo após o H3 “VER NÚMEROS”. piranot_create_post(“Resultado $tipo {$dados[‘concurso’]}”, $conteudo, ‘loterias’); } } update_option(‘piranot_created_’ . $hoje, true); } function piranot_create_post($titulo, $conteudo, $tipo) { // Verifica duplicidade por título $exists = get_page_by_title($titulo, OBJECT, ‘post’); if ($exists) return; $post_data = array( ‘post_title’ => $titulo,
‘post_content’ => $conteudo,
‘post_status’ => ‘publish’, // Já publica para indexar
‘post_author’ => 1,
‘post_category’ => array(1) // Mude para ID correto
);
wp_insert_post($post_data);
}
// ==========================================================================
// 5. LÓGICA DE VERIFICAÇÃO (20h30 – Monitoramento)
// ==========================================================================
function piranot_lite_check_results() {
// Só roda se for depois das 08h da manhã (Bicho) ou 20h (Loto)
// Para simplificar, roda sempre e o cache segura a onda.
// 1. Loterias Caixa
$loterias_ativas = [‘megasena’, ‘lotofacil’, ‘quina’];
foreach ($loterias_ativas as $tipo) {
// Tenta pegar último resultado
$resultado = piranot_fetch_api_caixa($tipo);
if ($resultado) {
// Salva no banco: piranot_result_megasena_2650
update_option(“piranot_result_{$tipo}_{$resultado[‘concurso’]}”, $resultado);
}
}
// 2. Jogo do Bicho (Scraper)
$horarios = [‘PPT’, ‘PTM’, ‘PT’, ‘PTV’, ‘PTN’, ‘COR’];
foreach ($horarios as $h) {
$res_bicho = piranot_scrape_bicho($h);
if ($res_bicho) {
update_option(“piranot_result_bicho_” . date(‘Ymd’) . “_$h”, $res_bicho);
}
}
}
// ==========================================================================
// 6. API & SCRAPER (O TRABALHO SUJO)
// ==========================================================================
function piranot_fetch_api_caixa($tipo, $concurso = ”) {
$url = “https://loteriascaixa-api.herokuapp.com/api/{$tipo}/{$concurso}”;
$resp = wp_remote_get($url, [‘timeout’ => 10]);
if (is_wp_error($resp)) return false;
$body = json_decode(wp_remote_retrieve_body($resp), true);
// Validação básica
if (isset($body[‘dezenas’])) return $body;
return false;
}
function piranot_api_caixa_next($tipo) {
// Pega o último para saber o próximo (estimativa)
$ultimo = piranot_fetch_api_caixa($tipo);
if (!$ultimo) return false;
return [
‘concurso’ => $ultimo[‘proximoConcurso’],
‘data_sorteio’ => $ultimo[‘dataProximoConcurso’],
‘premio_estimado’ => ‘R$ ‘ . number_format($ultimo[‘valorEstimadoProximoConcurso’], 2, ‘,’, ‘.’)
];
}
function piranot_scrape_bicho($horario) {
// Simulação de Scraper (Substituir por DOMDocument real se o servidor permitir)
// Aqui usamos uma lógica simples: se o site deunoposte.online tiver o texto do horário e números
$url = “https://deunoposte.online/”;
$resp = wp_remote_get($url);
if (is_wp_error($resp)) return false;
$html = wp_remote_retrieve_body($resp);
// Regex simples para tentar achar “PTM … 1234”
// Isso precisará de ajuste fino vendo o HTML real do dia
if (preg_match(“/$horario.*?(\d{4}-\d{1,2})/s”, $html, $matches)) {
return $matches[1]; // Retorna algo como “1234-5″
}
return false;
}
// ==========================================================================
// 7. SHORTCODES & VISUALIZADOR (DESIGN BONITO)
// ==========================================================================
// [piranot_loto tipo=”megasena” concurso=”1234″]
add_shortcode(‘piranot_loto’, ‘piranot_render_loto’);
function piranot_render_loto($atts) {
$a = shortcode_atts([‘tipo’ => ‘megasena’, ‘concurso’ => ”], $atts);
// Tenta pegar do banco (salvo pelo cron)
$dados = get_option(“piranot_result_{$a[‘tipo’]}_{$a[‘concurso’]}”);
// Se não tem no banco, tenta API em tempo real (fallback)
if (!$dados) {
$dados = piranot_fetch_api_caixa($a[‘tipo’], $a[‘concurso’]);
// Se achou, já salva
if ($dados) update_option(“piranot_result_{$a[‘tipo’]}_{$a[‘concurso’]}”, $dados);
}
if (!$dados) {
return ‘
Atualize após as 20h30
‘;
}
// O TRITURADOR DE ERROS (Números grudados)
$lista = $dados[‘dezenas’];
if (count($lista) == 1 && strlen($lista[0]) > 2) {
$lista = str_split($lista[0], 2);
}
// Cores
$cores = [‘megasena’=>’#209869’, ‘quina’=>’#260085’, ‘lotofacil’=>’#930089’];
$cor = $cores[$a[‘tipo’]] ?? ‘#333’;
$html = ”
$html .= ”
Resultado Oficial: “.ucfirst($a[‘tipo’]).” {$dados[‘concurso’]}
“;
$html .= ”
foreach($lista as $n) {
$html .= “$n“;
}
$html .= “
“;
if ($dados[‘acumulou’]) $html .= ”
⚠️ ACUMULOU!
“;
else $html .= ”
🎉 SAIU!
“;
$html .= ”
“;
return $html;
}
// [piranot_bicho horario=”PTM”]
add_shortcode(‘piranot_bicho’, ‘piranot_render_bicho’);
function piranot_render_bicho($atts) {
$a = shortcode_atts([‘horario’ => ‘PTM’], $atts);
$res = get_option(“piranot_result_bicho_” . date(‘Ymd’) . “_{$a[‘horario’]}”);
if (!$res) return “Aguardando…”; // Mantém o texto simples para a lista
return “$res (Resultado Confirmado)”;
}
// CSS Inline (para garantir beleza)
add_action(‘wp_enqueue_scripts’, function() {
echo ‘
‘;
});
// ==========================================================================
// 8. TEMPLATES HTML (Seus Rascunhos)
// ==========================================================================
function piranot_get_template_bicho() {
return <<<EOD
BICHO
TAGS JOGO DO BICHO:
jogo do bicho, deu no poste, resultados
Acompanhe aqui os resultados atualizados do Jogo do Bicho de hoje…
Confira o que DEU NO POSTE nesta {DIA_SEMANA} ({DATA})
PPT – 09h00: [piranot_bicho horario=”PPT”]
PTM – 11h00: [piranot_bicho horario=”PTM”]
PT – 14h00: [piranot_bicho horario=”PT”]
PTV – 16h00: [piranot_bicho horario=”PTV”]
PTN – 18h00: [piranot_bicho horario=”PTN”]
COR – 21h00: [piranot_bicho horario=”COR”]
EOD;
}
function piranot_get_template_loto($tipo) {
if ($tipo == ‘megasena’) {
return <<<EOD
MEGA-SENA
Resultado Mega-Sena {CONCURSO} acumulada em {PREMIO} de hoje {DATA}
A Caixa sorteia neste dia {DATA}, no concurso {CONCURSO}…
>>> VER NÚMEROS AGORA <<<
[piranot_loto tipo=”megasena” concurso=”{CONCURSO}”]
Boa sorte!
EOD;
}
// Adicione os outros if (lotofacil, quina) com seus HTMLs aqui…
return “Template não encontrado.”;
}






