mirror of
https://github.com/manualdousuario/marreta.git
synced 2025-04-09 15:19:09 +00:00
196 lines
5.3 KiB
PHP
196 lines
5.3 KiB
PHP
<?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'
|
|
]);
|