<?php /** * Arquivo de configuração principal * * Este arquivo contém todas as configurações globais do sistema, incluindo: * - Carregamento de variáveis de ambiente * - Definições de constantes do sistema * - Configurações de segurança * - Mensagens do sistema * - Configurações de bots e user agents * - Lista de domínios bloqueados */ require_once __DIR__ . '/vendor/autoload.php'; // Carrega as variáveis de ambiente do arquivo .env $dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load(); /** * Configurações básicas do sistema */ define('SITE_NAME', isset($_ENV['SITE_NAME']) ? $_ENV['SITE_NAME'] : 'Marreta'); define('SITE_DESCRIPTION', isset($_ENV['SITE_DESCRIPTION']) ? $_ENV['SITE_DESCRIPTION'] : 'Sua arma secreta contra sites sovinas!'); define('SITE_URL', isset($_ENV['SITE_URL']) ? $_ENV['SITE_URL'] : 'https://' . $_SERVER['HTTP_HOST']); define('MAX_ATTEMPTS', 3); // Número máximo de tentativas para acessar uma URL define('DNS_SERVERS', isset($_ENV['DNS_SERVERS']) ? $_ENV['DNS_SERVERS'] : '94.140.14.14, 94.140.15.15'); define('CACHE_DIR', __DIR__ . '/cache'); /** * Mensagens do sistema * * Array associativo contendo todas as mensagens de erro e avisos * que podem ser exibidas ao usuário durante a execução do sistema */ define('MESSAGES', [ 'BLOCKED_DOMAIN' => [ 'message' => 'Este domínio está bloqueado para extração.', 'type' => 'error' ], 'DNS_FAILURE' => [ 'message' => 'Falha ao resolver DNS para o domínio. Verifique se a URL está correta.', 'type' => 'warning' ], 'HTTP_ERROR' => [ 'message' => 'O servidor retornou um erro ao tentar acessar a página. Tente novamente mais tarde.', 'type' => 'warning' ], 'CONNECTION_ERROR' => [ 'message' => 'Erro ao conectar com o servidor. Verifique sua conexão e tente novamente.', 'type' => 'warning' ], 'CONTENT_ERROR' => [ 'message' => 'Não foi possível obter o conteúdo. Tente usar os serviços de arquivo.', 'type' => 'warning' ], 'INVALID_URL' => [ 'message' => 'Formato de URL inválido', 'type' => 'error' ], 'NOT_FOUND' => [ 'message' => 'Página não encontrada', 'type' => 'error' ], 'GENERIC_ERROR' => [ 'message' => 'Ocorreu um erro ao processar sua solicitação.', 'type' => 'warning' ] ]); /** * Configurações dos bots * * Define os user agents e headers específicos para diferentes bots * que podem ser utilizados para fazer requisições */ define('BOT_CONFIGS', [ 'Googlebot' => [ 'user_agent' => 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', 'headers' => [ 'From' => 'googlebot(at)googlebot.com', 'X-Robots-Tag' => 'noindex' ] ], 'Bingbot' => [ 'user_agent' => 'Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)', 'headers' => [ 'From' => 'bingbot(at)microsoft.com', 'X-Robots-Tag' => 'noindex', 'X-MSEdge-Bot' => 'true' ] ], 'GPTBot' => [ 'user_agent' => 'Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)', 'headers' => [ 'From' => 'gptbot(at)openai.com', 'X-Robots-Tag' => 'noindex', 'X-OpenAI-Bot' => 'true' ] ] ]); /** * Lista de User Agents * * Extrai os user agents da configuração dos bots * Mantido para compatibilidade com código legado */ define('USER_AGENTS', array_column(BOT_CONFIGS, 'user_agent')); /** * Lista de domínios bloqueados * * Define os domínios que não podem ser acessados pelo sistema * por questões de política de uso ou restrições técnicas */ define('BLOCKED_DOMAINS', [ // Sites de notícias 'wsj.com', 'bloomberg.com', 'piaui.folha.uol.com.br', 'jota.info', 'haaretz.com', 'haaretz.co.il', 'washingtonpost.com', 'gauchazh.clicrbs.com.br', 'economist.com', // Tracking 'metaffiliation.com', 'google-analytics.com', 'googletagmanager.com', 'doubleclick.net', 'analytics.google.com', 'mixpanel.com', 'segment.com', 'amplitude.com', 'hotjar.com', 'kissmetrics.com', 'crazyegg.com', 'optimizely.com', 'newrelic.com', 'pingdom.com', 'statcounter.com', 'chartbeat.com', 'mouseflow.com', 'fullstory.com', 'heap.io', 'clearbrain.com', // Redes sociais 'facebook.com', 'instagram.com', 'twitter.com', 'x.com', 'linkedin.com', 'tiktok.com', 'pinterest.com', 'snapchat.com', 'reddit.com', 'bsky.app', 'threads.net', // Streaming 'netflix.com', 'hulu.com', 'disneyplus.com', 'primevideo.com', 'spotify.com', 'youtube.com', 'twitch.tv', // E-commerce 'amazon.com', 'ebay.com', 'aliexpress.com', 'mercadolivre.com.br', 'shopify.com', // Compartilhamento de arquivos 'mega.nz', 'mediafire.com', 'wetransfer.com', 'dropbox.com', 'torrent9.pe', 'thepiratebay.org', // Sites adultos 'pornhub.com', 'xvideos.com', 'xnxx.com', 'onlyfans.com', // Apostas e jogos 'bet365.com', 'betfair.com', 'pokerstars.com', 'casino.com', // Outros sites populares 'github.com', 'stackoverflow.com', 'wikipedia.org' ]);