75 lines
2.2 KiB
Perl
75 lines
2.2 KiB
Perl
|
|
#!/usr/bin/perl
|
||
|
|
######################################################################
|
||
|
|
#
|
||
|
|
# $Id: removeold.pl 148 2009-10-13 15:02:22Z alba $
|
||
|
|
#
|
||
|
|
# Copyright 2007 - 2009 Roman Racine
|
||
|
|
#
|
||
|
|
# This program is free software; you can redistribute it and/or modify
|
||
|
|
# it under the terms of the GNU General Public License as published by
|
||
|
|
# the Free Software Foundation; either version 3 of the License, or
|
||
|
|
# (at your option) any later version.
|
||
|
|
#
|
||
|
|
######################################################################
|
||
|
|
use strict;
|
||
|
|
use warnings;
|
||
|
|
|
||
|
|
use Carp qw(confess);
|
||
|
|
use MOD::Utils();
|
||
|
|
use MOD::DBIUtils();
|
||
|
|
use MOD::Spamfilter();
|
||
|
|
|
||
|
|
my %config = MOD::Utils::read_private_config($ARGV[0]);
|
||
|
|
my $dbi = MOD::DBIUtils->new(\%config) || confess;
|
||
|
|
|
||
|
|
{
|
||
|
|
#Zeige Postings an, die zwischen 0 und 1 Tagen alt sind
|
||
|
|
#und den Status 'moderated' haben.
|
||
|
|
my $dataref = $dbi->select_old_postings(0,1,'moderated');
|
||
|
|
while (my $ref = $dataref->fetchrow_arrayref) {
|
||
|
|
my ($id,$posting) = @{$ref};
|
||
|
|
#Fuettere sie an Spamassassin als Ham (kein Spam)
|
||
|
|
MOD::Spamfilter::spamlearn($posting,0);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#Zeige Postings an, die aelter als x Tage sind und den
|
||
|
|
#Status 'spam' tragen, d.h. in den letzten x Tagen
|
||
|
|
#entweder von einem Moderator als Spam klassifiziert
|
||
|
|
#worden sind oder bereits als Spam erkannt wurden, ohne
|
||
|
|
#dass ein Moderator sie im Nachhinein als "kein Spam" klassifiziert
|
||
|
|
#haette.
|
||
|
|
|
||
|
|
my $delete_spam_after = $config{'delete_spam_after'};
|
||
|
|
if ($delete_spam_after)
|
||
|
|
{
|
||
|
|
my $dataref = $dbi->select_old_postings($delete_spam_after, undef, 'spam');
|
||
|
|
while (my $ref = $dataref->fetchrow_arrayref) {
|
||
|
|
my ($id,$posting) = @{$ref};
|
||
|
|
#Fuettere sie an Spamassassin als Spam
|
||
|
|
MOD::Spamfilter::spamlearn($posting,1);
|
||
|
|
#Loesche das Posting
|
||
|
|
$dbi->delete_posting($id);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#Zeige Postings an, die aelter als x Tage sind
|
||
|
|
my $delete_posting_after = $config{'delete_posting_after'};
|
||
|
|
if ($delete_posting_after)
|
||
|
|
{
|
||
|
|
my $dataref = $dbi->select_old_postings($delete_posting_after, undef, undef);
|
||
|
|
while (my $ref = $dataref->fetchrow_arrayref) {
|
||
|
|
my ($id,$posting) = @{$ref};
|
||
|
|
#Loesche sie aus der Datenbank
|
||
|
|
$dbi->delete_posting($id);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
my $delete_error_after = $config{'delete_error_after'};
|
||
|
|
if ($delete_error_after)
|
||
|
|
{
|
||
|
|
$dbi->delete_old_errors($delete_error_after, undef);
|
||
|
|
}
|
||
|
|
|
||
|
|
# End of file
|