Files
gustavoo-me/wp-content/plugins/automatic-ai-posts/bin/run-pipeline.php
T
Gustavo 0ea3651fb5 Automatic AI Posts, setup automatizado e seeder de permalinks/avatar
Plugin automatic-ai-posts (v2.0.0)
- Pipeline completo: coleta de feeds RSS/Atom, filtro por IA, reescrita,
  categoria, imagem de capa e agendamento
- Página de configuração com teste real do provedor de IA
- Editor: botão para refazer imagem de capa e metadados, textos em PT-BR
- Ajuda com botão Pix (copia-e-cola + QR) e sem nota de avaliação
- Cache-busting por mtime nos assets do admin

Tema gustavoo-portfolio
- Marca do cabeçalho reduzida a "Gustavo"
- Suporte a título próprio da marca

Setup (docker/wp-init.sh, compose.yaml)
- Plugins de terceiros (Post Views Counter, Rank Math, Site Kit)
  instalados do WordPress.org em vez de versionados
- Falha explícita ao final se algum plugin obrigatório não instalar
- WPCLI_UID/WPCLI_GID configuráveis

Seeder do tema
- Links permanentes "Dia e nome" e avatar "Iniciais" aplicados
  apenas em instalação nova, com regravação do .htaccess
2026-11-02 13:33:30 -03:00

56 lines
1.3 KiB
PHP

<?php
/**
* CLI bootstrapper: runs the pipeline in a separate PHP process.
* Usage: php bin/run-pipeline.php <author_id>
*/
$dir = __DIR__;
for ($i = 0; $i < 10; $i++) {
if (file_exists($dir . '/wp-load.php')) {
break;
}
$dir = dirname($dir);
}
if (!file_exists($dir . '/wp-load.php')) {
fwrite(STDERR, "[Automatic AI Posts] wp-load.php not found.\n");
exit(1);
}
set_time_limit(0);
ignore_user_abort(true);
ini_set('memory_limit', '-1');
define('WP_INSTALLING', false);
require_once $dir . '/wp-load.php';
$author_id = isset($argv[1]) ? (int) $argv[1] : 0;
register_shutdown_function(static function (): void {
$error = error_get_last();
if (!$error || !in_array($error['type'], [E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_PARSE], true)) {
return;
}
\AAP\Modules\Logs\Logger::error(
'Fatal PHP error: ' . $error['message'] . ' at ' . $error['file'] . ':' . $error['line'],
'pipeline'
);
\AAP\Modules\Pipeline\RunState::stop();
});
try {
do_action('aap_run_pipeline_cli', $author_id);
} catch (\Throwable $e) {
\AAP\Modules\Logs\Logger::error(
'Uncaught exception: ' . $e->getMessage() . ' at ' . $e->getFile() . ':' . $e->getLine(),
'pipeline'
);
\AAP\Modules\Pipeline\RunState::stop();
exit(1);
}