Newsstat
Lingua: Italiano
Linguaggio: Perl
Sistema operativo: Unix
Descrizione
Newsstat è lo script Perl che gestisce le statistiche dei newsgroup italiani disponibili in questo sito. Il programma può svolgere varie operazioni: collegarsi ad un news server per esaminare i nuovi messaggi ed estrarne file di dati statistici (operazione normalmente svolta ogni giorno a mezzanotte), generare statistiche HTML o ASCII per singoli newsgroup o l'intera gerarchia a partire da un insieme di file di dati (operazione normalmente svolta pochi minuti dopo l'inizio di ogni mese), archiviare i file di dati di un determinato mese. Durante lo scaricamento dei nuovi messaggi, il server provvede anche alla sottoscrizione dei nuovi gruppi e la desottoscrizione di quelli che sono stati chiusi. Se il collegamento fallisce, lo script riprova a intervalli crescenti di tempo.
ATTENZIONE: L'uso di questo script non è particolarmente semplice, ed esso ovviamente genera un carico non piccolo per il news server (anche se si limita a scaricare soltanto gli header dei nuovi messaggi). Esso dovrebbe quindi essere usato soltanto da news-admin o utenti molto consapevoli di ciò che stanno facendo.
Installazione
Prima di utilizzare lo script è necessario installare il modulo Perl News::NNTPClient, reperibile nei siti CPAN.
E' necessario inoltre creare una directory di dati in cui il programma possa scrivere (ed eventualmente la directory per i report HTML, se diversa), che vanno settate nella parte iniziale dello script (si vedano i commenti - attenzione a inserire una barra finale nei percorsi). Altri possibili settaggi in tale sezione sono il news server a cui ci si deve collegare, la signature e il messaggio di copyright nell'output del programma, la gerarchia a cui si è interessati (il default è ovviamente it), i valori di default per gli switch.
Guida all'uso
Il programma va richiamato con la sintassi
newsstat comando [opzioni] [newsgroup]
I possibili comandi sono:
make | Inizializza le statistiche e genera i file di dati per le ultime 24 ore (da eseguire soltanto una volta, all'inizio). |
update | Genera i file di dati per il periodo che va dall'ultimo collegamento effettuato fino al momento attuale. |
stat | Estrae le statistiche mensili per i singoli gruppi. |
report | Estrae le statistiche mensili per l'intera gerarchia, basandosi sulle statistiche dei singoli gruppi generate dal comando precedente (va quindi eseguito di seguito). |
archive | Archivia in un unico file TAR tutti i file di dati del mese indicato. |
checkex | Controlla l'esistenza dei gruppi indicati su vari news server (prova con tutti quelli indicati nel file $srvfname, che devono ovviamente essere pubblici). |
Per i comandi stat e report, è necessario utilizzare una combinazione dei tre switch seguenti per definire quali statistiche vanno generate:
-stat | Estrae le statistiche complete in formato ASCII. |
-short | Estrae le statistiche ridotte (con le classifiche troncate dopo un certo numero di posizioni) in formato ASCII. |
-html | Estrae le statistiche ridotte (con le classifiche troncate dopo un certo numero di posizioni) in formato HTML. |
Le altre opzioni principali sono:
-loud | Descrive sullo stdout l'andamento delle operazioni. |
-log | Descrive nel log file l'andamento delle operazioni. |
-post | Posta le statistiche di ogni gruppo sul gruppo stesso (solo nella generazione delle statistiche -short). |
-before | Riferisce le operazioni al giorno/mese precedente (questa opzione è normalmente attivata, poichè le statistiche per il mese vengono generate nelle prime ore del mese successivo, e così via). |
-cut=N | Tronca a N gruppi le classifiche per gruppo nei report corti (default N=20). |
-group=gruppo | Tutti i post vengono fatti sul gruppo indicato anzichè sui gruppi a cui si riferiscono le statistiche. |
-bgcolor=RRGGBB | Stabilisce il colore di sfondo per le pagine HTML. |
Uno switch può essere disabilitato con -noswitch (es. -nolog disabilita il log, se esso è attivo di default).
Indicando una serie di gruppi, le operazioni saranno riferite soltanto ai gruppi stessi; se non si indicano gruppi, l'operazione avverrà per tutti i gruppi sottoscritti.
NOTA: Probabilmente molte opzioni hanno dei bug, sono certo del funzionamento soltanto di quelle che io effettivamente uso :-)
Scarica il programma