DiGiTaL RiOt

eMule Log Analyzer

Ottobre 2, 2007 · Lascia un Commento

elalogo.png

Ciao a tutti! non pubblico articoli ormai da qualche giorno… sono stato parecchio impegnato XD….tanto per farvi un esempio, oggi è inziata l’università (matricola di ingegneria informatica)!!!!

Ma basta parlare di me…. ecco la novità: ho cominciato a scrivere un tool che potrebbe servire a molti di voi: un analizzatore dei log di eMule, che ,pensate un po, ho chiamato eMule Log analyzer :P .

Il funzionamente è molto semplice: una volta editato il file per definire la versione del client in uso (il default è aMule, utilizzata dal sottoscritto) vi basta eseguire in un interprete Perl lo scriptino e vedrete magicamente comparire la lista degli ultimi download registrati dal Logfile di eMule!.
Per il momento ho inserito pochissime opzioni da riga di comando e soprattutto, le opzioni sono ancora pochissime, diciamo che in questi giorni non avrò il tempo di annoiarmi ;)

Attenzione: Ci tengo a ribadire che è una versione mooolto giovane, mancano molte feature e potrebbero esserci bug, in definitiva il codice potrebbe cambiare di parecchio…. mi impegnerò anche a commentare il codice tranquilli!!!

Se avete consigli o idee per migliorare lo script, postate! ;)

 #!/usr/bin/perl -w
##############################################################
####		eMule Log Analyzer (unofficial)		  ####
####		Scritto da fatmatt Cikkense@gmail.com	  ####
####		Rilasciato sotto licenza GPL		  ####
##############################################################
###Analizza il log di emule ed estrae i download completati###
##############################################################  

#SETUP VARIABILI
$CLIENT = "aMule";
$USER = $ENV{USER};
$PATH = "/home/".$USER."/.".$CLIENT;
#ATTENZIONE: la variabile PATH è pensata per sistemi Linux, se usate un sistema operativo diverso dovete cambiarla a mano  

#È possibile che certi clients impostino una directory diversa, in caso, decommenta e setta a mano questa variabile:
#$PATH = "";  

open(STREAM,"<$PATH/logfile") || die("ERRORE: Impossibile leggere il file di log di $CLIENT\n");
my @files;
while (<STREAM>) {
	#Perl permette di scrivere codice poco Human readable XD
	if (m/(.*)Download completato:(.*)/) {
		push(@files,"Data: ".$1."---------------File:".$2);
	}  

}
close(STREAM);
#@files è un array con la lista dei file  

#Parsing delle opzioni da riga di comando
if ($args[0]) {
	$opt = $args[0];
} else {
	$opt = "normal"
}
unless ($args[0]) {
	print "Attenzione: Nessuna opzione indicata! avvio in modalità normale\n";
	print "Lista file completati salvati nel file di log di $CLIENT : \n";
	foreach my $file (@files) {
		print $file."\n";
	}
}
if ($opt eq "-s" || $opt eq "--store") {
	if (-d "/home/$USER/.eMuleLogChecker") {
		print "Esiste già un file di log per eMuleLogCheker, non ne verrà creato uno nuovo\n";
	} else {
		mkdir("/home/$USER/.eMuleLogChecker") || die("ERRORE: Impossibile creare la directory per i log di eMuleLogChecker");
	}
	open(STREAM,">>/home/$USER/.eMuleLogChecker/eMuleLogChecker.log") || die("ERRORE: Impossibile creare il log di eMuleLogChecker");
	foreach my $downloaded (@files) {
		print STREAM $downloaded."\n";
	}
	close(STREAM);
	print "ATTENZIONE: I download ricavati dal file di log di $CLIENT sono stati aggiunti al file di log di eMuleLogChecker\n";
}
elsif ($opt eq "-l" || $opt eq "--listed") {
print "Ecco la lista dei file scaricati:\n";
}

Categorie: Progetti · eMule · perl

0 risposte finora ↓

  • Non ci sono ancora commenti... Inizia tu riempiendo il modulo sottostante.

Lascia un Commento