NOTA: XPN ora ha una sua
pagina.
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.
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).
Riporto una paio di screenshot ripresi dalla versione corrente per mostrare
alcune caratteristiche di XPN.
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.
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.
In questo ultimo tab invece è possibile impostare il charset utilizzato
nell'invio degli articoli. La scelta è ristretta ad ISO-8859-1/15.
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).
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.
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:
- Python2.2.2
- modulo pygtk0.6.9
- modulo libglade
Ultima versione:
XPN 0.0.6 [tgz - 70kb]
Versioni precedenti:
XPN 0.0.5 [tgz - 70kb]
NewsX 0.0.2 [tgz - 95kb]
.: Lista aggiornamenti :.
- 15/6/2003 : Piccoli ritocchi, ora gli header con
caratteri non ascii vengono gestiti correttamente.
- 18/5/2003 : Prima versione con la possibilità
di inviare articoli, e cambio del nome.
- 29/1/2003 : Rilasciata la versione 0.0.2
Ho apportato soprattutto cambiamenti all'interfaccia, ed ho aggiunto
qualche funzione in più (ad esempio il ROT13).
- 26/1/2003 : Qualche piccolo bug-fix.
- 20/1/2003 : Rilasciata la versione 0.0.1!
Ho introdotto la numerazione perchè in un certo senso si può
ritenere che ho raggiunto tutti i punti che mi ero prefissato prima
di iniziare. Adesso NewsX è praticamente completo, almeno per quanto
riguarda la parte di lettura.
Le ultime novità riguardano la memorizzazione degli articoli gia
letti e la possibilità di scaricare solo i nuovi articoli dal server,
più una serie di piccoli cambiamenti.
- 12/1/2003 : Nuova versione di NewsX, ho
finalmente completato l'algoritmo per il threading degli articoli,
attenti che è leeeento, quindi in ng con molti articoli si può
perdere un bel pò di tempo prima che gli articoli vengano
mostrati.
- 9/1/2003 : Ecco la prima versione di NewsX, non
aspettatevi molto, per ora è solo un simpatico giocattolo per
giocherellare con i newsgroup.