Skip to content

Commit a97966c

Browse files
committed
traduções de documentações
1 parent 55ac7fe commit a97966c

16 files changed

+515
-182
lines changed

Dockerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
FROM php:8.3-fpm
22

3+
# Install PHP dependencies and extensions
34
# Instala dependências e extensões do PHP
45
RUN apt-get update && apt-get install -y \
56
nginx \
@@ -14,12 +15,15 @@ RUN apt-get update && apt-get install -y \
1415
&& pecl install redis \
1516
&& docker-php-ext-enable redis opcache
1617

18+
# Copy OPCache configuration
1719
# Copia a configuração do OPCache
1820
COPY opcache.ini /usr/local/etc/php/conf.d/opcache.ini
1921

22+
# Install Composer
2023
# Instala o Composer
2124
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
2225

26+
# Copy webservice configuration
2327
# Copia a configuração do webservice
2428
COPY default.conf /etc/nginx/sites-available/default
2529

@@ -29,12 +33,14 @@ COPY app/ /app/
2933
WORKDIR /app
3034
RUN composer install --no-interaction --optimize-autoloader
3135

36+
# Copy and configure initialization script permissions
3237
# Copia e configura permissões do script de inicialização
3338
COPY docker-entrypoint.sh /usr/local/bin/
3439
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
3540

3641
RUN mkdir -p /app/cache /app/logs
3742

43+
# Configure base permissions for /app directory
3844
# Configura permissões base para o diretório /app
3945
RUN chown -R www-data:www-data /app \
4046
&& chmod -R 755 /app

app/api.php

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,40 @@
11
<?php
22

33
/**
4+
* URL Analysis API
45
* API para análise de URLs
56
*
7+
* This file implements a REST endpoint that receives URLs via GET
8+
* and returns processed results in JSON format.
9+
*
610
* Este arquivo implementa um endpoint REST que recebe URLs via GET
711
* e retorna resultados processados em formato JSON.
812
*
9-
* Funcionalidades:
10-
* - Validação de URLs
11-
* - Análise de conteúdo
12-
* - Tratamento de erros
13-
* - Suporte a CORS
13+
* Features / Funcionalidades:
14+
* - URL validation / Validação de URLs
15+
* - Content analysis / Análise de conteúdo
16+
* - Error handling / Tratamento de erros
17+
* - CORS support / Suporte a CORS
1418
*/
1519

1620
require_once 'config.php';
1721
require_once 'inc/URLAnalyzer.php';
22+
require_once 'inc/Language.php';
23+
24+
// Initialize language system with default language
25+
// Inicializa o sistema de idiomas com o idioma padrão
26+
Language::init(LANGUAGE);
1827

28+
// Set content type as JSON
1929
// Define o tipo de conteúdo como JSON
2030
header('Content-Type: application/json');
2131

32+
// Enable CORS (Cross-Origin Resource Sharing)
2233
// Habilita CORS (Cross-Origin Resource Sharing)
2334
header('Access-Control-Allow-Origin: *');
2435
header('Access-Control-Allow-Methods: GET');
2536

37+
// Get request URL from path
2638
// Obtém a URL da requisição a partir do path
2739
$path = $_SERVER['REQUEST_URI'];
2840
$prefix = '/api/';
@@ -31,10 +43,11 @@
3143
$url = urldecode(substr($path, strlen($prefix)));
3244

3345
/**
46+
* Function to send standardized JSON response
3447
* Função para enviar resposta JSON padronizada
3548
*
36-
* @param array $data Dados a serem enviados na resposta
37-
* @param int $statusCode Código de status HTTP
49+
* @param array $data Data to be sent in response / Dados a serem enviados na resposta
50+
* @param int $statusCode HTTP status code / Código de status HTTP
3851
*/
3952
function sendResponse($data, $statusCode = 200)
4053
{
@@ -53,58 +66,72 @@ function sendResponse($data, $statusCode = 200)
5366
exit;
5467
}
5568

69+
// Basic URL validation
5670
// Validação básica da URL
5771
if (!$url || !filter_var($url, FILTER_VALIDATE_URL)) {
72+
$errorMessage = Language::getMessage('INVALID_URL');
5873
sendResponse([
5974
'error' => [
6075
'code' => 'INVALID_URL',
61-
'message' => MESSAGES['INVALID_URL']['message']
76+
'message' => $errorMessage['message']
6277
]
6378
], 400);
6479
}
6580

6681
try {
82+
// Instantiate URL analyzer
6783
// Instancia o analisador de URLs
6884
$analyzer = new URLAnalyzer();
6985

86+
// Try to analyze the provided URL
7087
// Tenta analisar a URL fornecida
7188
$analyzer->analyze($url);
7289

90+
// If analysis is successful, return the processed URL
7391
// Se a análise for bem-sucedida, retorna a URL processada
7492
sendResponse([
7593
'url' => SITE_URL . '/p/' . $url
7694
], 200);
7795
} catch (Exception $e) {
96+
// Error handling with mapping to appropriate HTTP codes
7897
// Tratamento de erros com mapeamento para códigos HTTP apropriados
7998
$message = $e->getMessage();
8099
$statusCode = 400;
81100
$errorCode = 'GENERIC_ERROR';
82-
83-
// Mapeia a mensagem de erro para o código e status apropriados
84-
foreach (MESSAGES as $key => $value) {
85-
if (strpos($message, $value['message']) !== false) {
86-
$statusCode = ($value['type'] === 'error') ? 400 : 503;
87-
$errorCode = $key;
101+
$errorMessage = Language::getMessage('GENERIC_ERROR');
102+
103+
// Try to match the error message with known error types
104+
// Tenta corresponder a mensagem de erro com tipos de erro conhecidos
105+
$errorTypes = ['BLOCKED_DOMAIN', 'DNS_FAILURE', 'HTTP_ERROR', 'CONNECTION_ERROR', 'CONTENT_ERROR'];
106+
foreach ($errorTypes as $type) {
107+
$typeMessage = Language::getMessage($type);
108+
if (strpos($message, $typeMessage['message']) !== false) {
109+
$statusCode = ($typeMessage['type'] === 'error') ? 400 : 503;
110+
$errorCode = $type;
111+
$errorMessage = $typeMessage;
88112
break;
89113
}
90114
}
91115

116+
// Add error header for better client-side handling
92117
// Adiciona header de erro para melhor tratamento no cliente
93118
header('X-Error-Message: ' . $message);
94119

95120
sendResponse([
96121
'error' => [
97122
'code' => $errorCode,
98-
'message' => $message
123+
'message' => $errorMessage['message']
99124
]
100125
], $statusCode);
101126
}
102127
} else {
128+
// Return 404 error for endpoints not found
103129
// Retorna erro 404 para endpoints não encontrados
130+
$errorMessage = Language::getMessage('NOT_FOUND');
104131
sendResponse([
105132
'error' => [
106133
'code' => 'NOT_FOUND',
107-
'message' => MESSAGES['NOT_FOUND']['message']
134+
'message' => $errorMessage['message']
108135
]
109136
], 404);
110137
}

app/data/blocked_domains.php

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
<?php
22

33
/**
4+
* List of blocked domains
45
* Lista de domínios bloqueados
56
*
7+
* Defines domains that cannot be accessed by the system
8+
* due to usage policies or technical restrictions
9+
*
610
* Define os domínios que não podem ser acessados pelo sistema
711
* por questões de política de uso ou restrições técnicas
812
*/
913
return [
10-
// Sites de notícias
11-
//-- Conteudo fica atras de um acesso de login
14+
// News sites / Sites de notícias
15+
//-- Content behind login access / Conteúdo fica atrás de um acesso de login
1216
'wsj.com',
1317
'piaui.folha.uol.com.br',
1418
'economist.com',
@@ -25,14 +29,14 @@
2529
'adage.com',
2630
'couriermail.com.au',
2731
'mittelbayerische.de/',
28-
//-- Bloqueio tecnico de acesso ao conteudo
32+
//-- Technical access blocking / Bloqueio técnico de acesso ao conteúdo
2933
'bloomberg.com',
3034
'sportskeeda.com',
3135
'kansascity.com',
3236
'fastcompany.com',
3337
'expressnews.com',
3438
'nydailynews.com',
35-
// Tracking
39+
// Tracking services / Serviços de rastreamento
3640
'metaffiliation.com',
3741
'google-analytics.com',
3842
'googletagmanager.com',
@@ -53,7 +57,7 @@
5357
'fullstory.com',
5458
'heap.io',
5559
'clearbrain.com',
56-
// Redes sociais
60+
// Social networks / Redes sociais
5761
'facebook.com',
5862
'instagram.com',
5963
'twitter.com',
@@ -67,40 +71,40 @@
6771
'redd.it',
6872
'bsky.app',
6973
'threads.net',
70-
// Streaming
74+
// Streaming services / Serviços de streaming
7175
'netflix.com',
7276
'hulu.com',
7377
'disneyplus.com',
7478
'primevideo.com',
7579
'spotify.com',
7680
'youtube.com',
7781
'twitch.tv',
78-
// E-commerce
82+
// E-commerce sites / Sites de comércio eletrônico
7983
'amazon.com',
8084
'ebay.com',
8185
'aliexpress.com',
8286
'mercadolivre.com.br',
8387
'shopify.com',
84-
// Compartilhamento de arquivos
88+
// File sharing / Compartilhamento de arquivos
8589
'mega.nz',
8690
'mediafire.com',
8791
'wetransfer.com',
8892
'dropbox.com',
8993
'torrent9.pe',
9094
'thepiratebay.org',
91-
// Sites adultos
95+
// Adult sites / Sites adultos
9296
'pornhub.com',
9397
'xvideos.com',
9498
'xnxx.com',
9599
'onlyfans.com',
96100
'privacy.com.br',
97101
'fatalmodel.com',
98-
// Apostas e jogos
102+
// Betting and gaming / Apostas e jogos
99103
'bet365.com',
100104
'betfair.com',
101105
'pokerstars.com',
102106
'casino.com',
103-
// Outros sites populares
107+
// Other popular sites / Outros sites populares
104108
'github.com',
105109
'stackoverflow.com',
106110
'wikipedia.org',

app/data/domain_rules.php

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,32 @@
11
<?php
22

33
/**
4+
* Specific rule configurations for individual domains
45
* Configurações específicas de regras para domínios individuais
56
*
7+
* This file contains custom rules for specific sites, allowing
8+
* system behavior adjustment for each domain individually.
9+
*
610
* Este arquivo contém regras personalizadas para sites específicos, permitindo
711
* ajustar o comportamento do sistema para cada domínio individualmente.
812
*
9-
* Estrutura das regras por domínio:
10-
* - userAgent: Define um User-Agent personalizado para o domínio
11-
* - headers: Headers HTTP personalizados para requisições
12-
* - idElementRemove: Array de IDs HTML que devem ser removidos da página
13-
* - classElementRemove: Array de classes HTML que devem ser removidas
14-
* - scriptTagRemove: Array de scripts que devem ser removidos (partial match)
15-
* - cookies: Array associativo de cookies a serem definidos (null remove o cookie)
16-
* - classAttrRemove: Array de classes a serem removidas de elementos
17-
* - customCode: String contendo código JavaScript personalizado para execução
18-
* - customStyle: String contendo código CSS personalizado para execução
19-
* - excludeGlobalRules: Array associativo de regras globais a serem excluídas para este domínio
20-
* Exemplo:
13+
* Domain rule structure / Estrutura das regras por domínio:
14+
* - userAgent: Define custom User-Agent for the domain / Define um User-Agent personalizado para o domínio
15+
* - headers: Custom HTTP headers for requests / Headers HTTP personalizados para requisições
16+
* - idElementRemove: Array of HTML IDs to be removed / Array de IDs HTML que devem ser removidos da página
17+
* - classElementRemove: Array of HTML classes to be removed / Array de classes HTML que devem ser removidas
18+
* - scriptTagRemove: Array of scripts to be removed (partial match) / Array de scripts que devem ser removidos (partial match)
19+
* - cookies: Associative array of cookies to be set (null removes cookie) / Array associativo de cookies a serem definidos (null remove o cookie)
20+
* - classAttrRemove: Array of classes to be removed from elements / Array de classes a serem removidas de elementos
21+
* - customCode: String containing custom JavaScript code / String contendo código JavaScript personalizado
22+
* - customStyle: String containing custom CSS code / String contendo código CSS personalizado
23+
* - excludeGlobalRules: Associative array of global rules to exclude for this domain / Array associativo de regras globais a serem excluídas para este domínio
24+
* Example / Exemplo:
2125
* 'excludeGlobalRules' => [
22-
* 'scriptTagRemove' => ['gtm.js', 'ga.js'], // Exclui scripts específicos das regras globais
23-
* 'classElementRemove' => ['subscription'] // Exclui classes específicas das regras globais
26+
* 'scriptTagRemove' => ['gtm.js', 'ga.js'], // Excludes specific scripts from global rules / Exclui scripts específicos das regras globais
27+
* 'classElementRemove' => ['subscription'] // Excludes specific classes from global rules / Exclui classes específicas das regras globais
2428
* ]
25-
* - useSelenium: Boolean indicando se deve usar Selenium para extração
29+
* - useSelenium: Boolean indicating whether to use Selenium for extraction / Boolean indicando se deve usar Selenium para extração
2630
*/
2731
return [
2832
'nsctotal.com.br' => [

app/data/global_rules.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
<?php
22

33
/**
4+
* Global rule configurations applied to all domains
45
* Configurações globais de regras aplicadas a todos os domínios
56
*
7+
* This file defines rules that are applied by default to all sites,
8+
* organized into categories for better maintenance and understanding.
9+
*
610
* Este arquivo define regras que são aplicadas por padrão a todos os sites,
711
* organizadas em categorias para melhor manutenção e compreensão.
812
*
13+
* Note: These rules can be overridden or disabled for specific domains
14+
* using the 'excludeGlobalRules' configuration in domain_rules.php
15+
*
916
* Nota: Estas regras podem ser sobrescritas ou desativadas para domínios específicos
1017
* usando a configuração 'excludeGlobalRules' em domain_rules.php
1118
*/
1219
return [
20+
// HTML classes to be removed from all pages
21+
// Classes HTML a serem removidas de todas as páginas
1322
'classElementRemove' => [
1423
'subscription',
1524
'subscriber-content',
@@ -31,6 +40,8 @@
3140
'signup-overlay',
3241
'onesignal-slidedown-container'
3342
],
43+
// Scripts to be removed from all pages
44+
// Scripts a serem removidos de todas as páginas
3445
'scriptTagRemove' => [
3546
'gtm.js',
3647
'ga.js',

app/data/user_agents.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
11
<?php
22

33
/**
4+
* Bot configurations
45
* Configurações dos bots
56
*
7+
* Defines user agents that can be used to make requests
68
* Define os user agents que podem ser utilizados para fazer requisições
9+
*
10+
* These user agents are used to simulate legitimate web crawlers
11+
* Estes user agents são usados para simular crawlers web legítimos
712
*/
813
return [
14+
// Google News bot
15+
// Bot do Google News
916
'Googlebot-News',
17+
18+
// Mobile Googlebot
19+
// Googlebot para dispositivos móveis
1020
'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
21+
22+
// Desktop Googlebot
23+
// Googlebot para desktop
1124
'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36'
1225
];

0 commit comments

Comments
 (0)