Nem01::Python>XPN

Introduzione

NOTA: XPN ora ha una suo sito: http://xpn.altervista.org.

XPN sta per X Python Newsreader. Quindi come dice il nome, è un newsreader scritto in Python e che gira sotto X, per la precisione usa le librerie GTK+ 1.2.

XPN è un on-line newsreader, cioè necessità di una connessione sempre attiva col server news, per questo motivo potrete utilizzarlo con un server remoto solo se siete connessi ad internet, oppure potete utilizzarlo con il vostro server locale (se ne avete uno, e cmq è sempre consigliabile averne uno).

Questo programma è una evoluzione del vecchio NewsX che avevo reso disponibile su questo sito tempo fa. Rispetto a quest'ultimo si differenzia per il nome (cambiato perchè esiste gia un altro progetto che utilizza il nome newsx) e per la possibilità di postare articoli (newsx permetteva solo di leggere). Più una serie di piccoli bugfix e modifiche, nonchè un (molto) parziale supporto per le specifiche MIME.

Funzionalità

Attualmente XPN permette di compiere in pratica tutte le funzioni necessarie alla lettura di un newsgroup.

Sostanzialmente quindi si ha la possibilità di compiere operazioni come: scaricare la lista dei gruppi, "sottoscrivere" i gruppi che ci interessano, leggere gli articoli presenti nei gruppi sottoscritti.

Al momento della sottoscrizione di un newsgroup viene anche memorizzata una lista di msg-id, che poi rappresenta la lista degli articoli non ancora letti. I messaggi non vengono memorizzati, semplicemente ogni qualvolta leggiamo un articolo il suo msg-id viene eliminato dalla lista di quelli ancora da leggere. E possibile definire la grandezza massima di questa lista proprio in fase di sottoscrizione, se si sceglie quindi come valore ad esempio 500, solo i msg-id dei 500 articoli più recenti verranno memorizzati.

Successivamente è possibile aggiornare i gruppi andando ad aggiungere i nuovi articoli che si sono resi disponibili sul server.

Ci tengo a precisare che l'algoritmo che mi permette di riorganizzare gli articoli in thread è abbastanza lento (sul mio P233/64M impiega circa 1min a ricreare i thread per un ng con circa 4000 articoli) quindi vi sconsiglio di usare XPN con server remoti (a meno che non abbiate una connessione flat), molto meglio il vostro bel server locale (io faccio tutte le mie prove con leafnode, tuttavia ho utilizzato XPN anche direttamente con powernews.libero.it).

Screenshot

Riporto una paio di screenshot ripresi dalla versione corrente per mostrare alcune caratteristiche di XPN.

Configurazione1
Ingrandisci
Questa immagine mostra il primo tab della finestra di configurazione. Qui è possibile impostare l'indirizzo del server nntp e i parametri dell'utente, che sono il Nickname, l'Email e la locazione della signature.
Configurazione2
Ingrandisci
In questo secondo tab invece è possibile modificare il font utilizzato nella visualizzazione degli articoli, ed i colori utilizzati per il testo la firma ed il quote.
Configurazione3
Ingrandisci
In questo ultimo tab invece è possibile impostare il charset utilizzato nell'invio degli articoli. La scelta è ristretta ad ISO-8859-1/15.
Finestra gruppi
Ingrandisci
Questa è la finestra di gestione della lista dei gruppi e delle sottoscrizioni. Da qui è possibile scaricare la lista dei gruppi, ricercare un gruppo nella lista ed eventualmente sottoscriverlo. All'atto della sottoscrizione verranno un certo numero di msg-id, questo numero è impostabile nello spin-button presente nella finestra (nella figura è 500).
Finestra Followup
Ingrandisci
Questa è la finestra che si apre quando si risponde ad un articolo (o se ne compone un nuovo). Il testo dell'articolo originale viene automaticamente quotato e colorato secondo il colore impostato, viene anche aggiunta automaticamente la firma.
Finestra Main
Ingrandisci
Questa è la finestra principale. E' possibile osservare la lista dei gruppi sottoscritti, gli articoli riordinati in thread ed il pane di visualizzazione dell'articolo.

Informazioni Tecniche

Come dicevo il programma è scritto in Python, per l'interfaccia grafica mi sono affidato alla Gtk+, quindi è necessario disporre del modulo Pygtk.

L'interfaccia l'ho disegnata tramite il tool visuale Glade, questo produce come uscita una descrizione in XML dell'interfaccia, per poter utilizzare questo file è necessario utilizzare un altro modulo chiamato libglade.

In definitiva per far funzionare XPN (ammesso che lo vogliate ^__-) dovrete avere a installati i seguenti componenti:

  1. Python2.2.2
  2. modulo pygtk0.6.9
  3. modulo libglade

Scarica XPN

Attenzione le versioni che trovate qui sono vecchie. Per scaricare le versioni più recenti di XPN visitate il suo sito: http://xpn.altervista.org.

Ultima versione:
tgz file XPN 0.0.6 [tgz - 70kb]

Versioni precedenti:
tgz file XPN 0.0.5 [tgz - 70kb]
tgz file NewsX 0.0.2 [tgz - 95kb]

Lista Aggiornamenti