Skip to content

Commit 84b605d

Browse files
committed
adicionada caixa de debug para validar regras ativadas
1 parent 11d4676 commit 84b605d

File tree

1 file changed

+39
-5
lines changed

1 file changed

+39
-5
lines changed

app/inc/URLAnalyzer.php

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ class URLAnalyzer
4747
*/
4848
private $cache;
4949

50+
/**
51+
* @var array Lista de regras ativadas durante o processamento
52+
*/
53+
private $activatedRules = [];
54+
5055
/**
5156
* Construtor da classe
5257
* Inicializa as dependências necessárias
@@ -99,6 +104,9 @@ public function checkRedirects($url)
99104
*/
100105
public function analyze($url)
101106
{
107+
// Reset activated rules for new analysis
108+
$this->activatedRules = [];
109+
102110
// 1. Limpa a URL
103111
$cleanUrl = $this->cleanUrl($url);
104112
if (!$cleanUrl) {
@@ -514,6 +522,7 @@ private function processContent($content, $host, $url)
514522
$styleElement = $dom->createElement('style');
515523
$styleElement->appendChild($dom->createTextNode($domainRules['customStyle']));
516524
$dom->getElementsByTagName('head')[0]->appendChild($styleElement);
525+
$this->activatedRules[] = 'customStyle';
517526
}
518527

519528
if (isset($domainRules['customCode'])) {
@@ -526,36 +535,39 @@ private function processContent($content, $host, $url)
526535
if (isset($domainRules['classAttrRemove'])) {
527536
foreach ($domainRules['classAttrRemove'] as $class) {
528537
$elements = $xpath->query("//*[contains(@class, '$class')]");
529-
if ($elements !== false) {
538+
if ($elements !== false && $elements->length > 0) {
530539
foreach ($elements as $element) {
531540
$this->removeClassNames($element, [$class]);
532541
}
542+
$this->activatedRules[] = "classAttrRemove: $class";
533543
}
534544
}
535545
}
536546

537547
if (isset($domainRules['idElementRemove'])) {
538548
foreach ($domainRules['idElementRemove'] as $id) {
539549
$elements = $xpath->query("//*[@id='$id']");
540-
if ($elements !== false) {
550+
if ($elements !== false && $elements->length > 0) {
541551
foreach ($elements as $element) {
542552
if ($element->parentNode) {
543553
$element->parentNode->removeChild($element);
544554
}
545555
}
556+
$this->activatedRules[] = "idElementRemove: $id";
546557
}
547558
}
548559
}
549560

550561
if (isset($domainRules['classElementRemove'])) {
551562
foreach ($domainRules['classElementRemove'] as $class) {
552563
$elements = $xpath->query("//*[contains(@class, '$class')]");
553-
if ($elements !== false) {
564+
if ($elements !== false && $elements->length > 0) {
554565
foreach ($elements as $element) {
555566
if ($element->parentNode) {
556567
$element->parentNode->removeChild($element);
557568
}
558569
}
570+
$this->activatedRules[] = "classElementRemove: $class";
559571
}
560572
}
561573
}
@@ -564,22 +576,24 @@ private function processContent($content, $host, $url)
564576
foreach ($domainRules['scriptTagRemove'] as $script) {
565577
// Busca por tags script com src ou conteúdo contendo o script
566578
$scriptElements = $xpath->query("//script[contains(@src, '$script')] | //script[contains(text(), '$script')]");
567-
if ($scriptElements !== false) {
579+
if ($scriptElements !== false && $scriptElements->length > 0) {
568580
foreach ($scriptElements as $element) {
569581
if ($element->parentNode) {
570582
$element->parentNode->removeChild($element);
571583
}
572584
}
585+
$this->activatedRules[] = "scriptTagRemove: $script";
573586
}
574587

575588
// Busca por tags link que são scripts
576589
$linkElements = $xpath->query("//link[@as='script' and contains(@href, '$script') and @type='application/javascript']");
577-
if ($linkElements !== false) {
590+
if ($linkElements !== false && $linkElements->length > 0) {
578591
foreach ($linkElements as $element) {
579592
if ($element->parentNode) {
580593
$element->parentNode->removeChild($element);
581594
}
582595
}
596+
$this->activatedRules[] = "scriptTagRemove: $script";
583597
}
584598
}
585599
}
@@ -604,6 +618,26 @@ private function processContent($content, $host, $url)
604618
$marretaHtml->appendXML('Chapéu de paywall é <a href="'.SITE_URL.'" style="color: #fff; text-decoration: underline; font-weight: bold;" target="_blank">Marreta</a>!');
605619
$marretaDiv->appendChild($marretaHtml);
606620
$body->appendChild($marretaDiv);
621+
622+
// Adiciona painel de debug se DEBUG for true
623+
if (DEBUG) {
624+
$debugDiv = $dom->createElement('div');
625+
$debugDiv->setAttribute('style', 'z-index: 99999; position: fixed; bottom: 10px; right: 10px; background: rgba(0,0,0,0.8); color: #fff; font-size: 13px; line-height: 1.4; padding: 10px; border-radius: 3px; font-family: monospace; max-height: 200px; overflow-y: auto;');
626+
627+
if( empty($this->activatedRules)) {
628+
$ruleElement = $dom->createElement('div');
629+
$ruleElement->textContent = 'Nenhuma regra ativada';
630+
$debugDiv->appendChild($ruleElement);
631+
} else {
632+
foreach ($this->activatedRules as $rule) {
633+
$ruleElement = $dom->createElement('div');
634+
$ruleElement->textContent = $rule;
635+
$debugDiv->appendChild($ruleElement);
636+
}
637+
}
638+
639+
$body->appendChild($debugDiv);
640+
}
607641
}
608642

609643
return $dom->saveHTML();

0 commit comments

Comments
 (0)