#!/usr/bin/perl

use strict;
use warnings;

# Definisci la directory di cui vuoi analizzare i file
my $directory = "/var/spool/news/articles/news/lists/filters/";

# Apri la directory
opendir(my $dh, $directory) or die "Impossibile aprire la directory $directory: $!";

# Leggi i file nella directory uno per uno
while (my $file = readdir($dh)) {
    # Ignora le voci speciali "." e ".."
    next if ($file eq '.' or $file eq '..');

    # Costruisci il percorso completo del file
    my $file_path = "$directory/$file";

    # Apri il file in lettura
    print "Apro file $file\n";
    open(my $fh, '<', $file_path) or die "Impossibile aprire il file $file_path: $!";

    # Inizializza una variabile per memorizzare l'ID del messaggio
    my $message_id;

    # Leggi il file riga per riga
    while (my $line = <$fh>) {
        if ($line =~ /^Message-ID: (.+)/) {
            # Trova la riga con l'ID del messaggio
            $message_id = $1;
            last; # Esci dal ciclo una volta trovata la riga
        }
    }

    # Chiudi il file
    close($fh);

    if ($message_id) {
        # Rimuovi la parte "Message-ID: " e il fine riga
	print "Trovato M-ID: $message_id\n";
        chomp($message_id);

    # Racchiudi l'ID del messaggio tra virgolette singole
    my $quoted_message_id = "'$message_id'";
# Escapamento dell'ID del messaggio con quotemeta
    $message_id = quotemeta($message_id);
    print "M-id è $message_id\n";
    $message_id = substr($message_id, 0, -2); # Rimuovi l'ultimo carattere "\\"
    print "M-id adesso è $message_id\n";

    # Esegui il comando con l'ID del messaggio racchiuso tra virgolette singole come argomento
    my $command = "/usr/lib/news/bin/grephistory $message_id | /usr/lib/news/bin/perl-nocem";

        #print "il comando è:\n";
        #print "$command\n";
        my $result = system($command);
        #print " e result è: $result\n";
        #print "Elimino file $file_path";
        #unlink $file_path;

# Aggiungi un ritardo di 10 secondi
#    sleep(1);

    }
}

# Chiudi la directory
closedir($dh);

exit 0;
