123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- use strict;
- use v5.10;
- AddModuleDescription('list-banned-content.pl');
- our ($q, %Action, %Page, $BannedContent, $BannedRegexps, $FullUrlPattern);
- $Action{'list-banned-content'} = \&DoListBannedContent;
- sub DoListBannedContent {
- print GetHeader('', T('Banned Content'), '');
- my @pages = AllPagesList();
- my %url_regexps;
- my %text_regexps;
- foreach (split(/\n/, GetPageContent($BannedContent))) {
- next unless m/^\s*([^
- $url_regexps{qr($1)} = $4;
- }
- foreach (split(/\n/, GetPageContent($BannedRegexps))) {
- next unless m/^\s*([^
- $text_regexps{qr($1)} = $4;
- }
- print '<div class="content banned"><p>';
- print $BannedContent . ': ' . scalar(keys(%url_regexps)) . $q->br() . "\n";
- print $BannedRegexps . ': ' . scalar(keys(%text_regexps)) . $q->br() . "\n";
- PAGE: foreach my $id (@pages) {
- OpenPage($id);
- my @urls = $Page{text} =~ /$FullUrlPattern/g;
- foreach my $url (@urls) {
- foreach my $re (keys %url_regexps) {
- if ($url =~ $re) {
- print GetPageLink($id) . ': '
- . Tss('Rule "%1" matched "%2" on this page.', $re, $url) . ' '
- . ($url_regexps{$re}
- ? Ts('Reason: %s.', $url_regexps{$re})
- : T('Reason unknown.')) . $q->br() . "\n";
- next PAGE;
- }
- }
- }
- foreach my $re (keys %text_regexps) {
- if ($Page{text} =~ $re) {
- print GetPageLink($id) . ': '
- . Tss('Rule "%1" matched on this page.', $re) . ' '
- . ($text_regexps{$re}
- ? Ts('Reason: %s.', $text_regexps{$re})
- : T('Reason unknown.')) . $q->br() . "\n";
- next PAGE;
- }
- }
- }
- print '</p></div>';
- PrintFooter();
- }
|