XPN is a newsreader written in python using the Gtk+ toolkit for the GUI. It is a multiplatform newsreader, it should work wherever GTK+ and Python work.
XPN has a good support for MIME standards, but hasn't any support for binary articles, so please use it on text-only newsgroups. XPN is fully Unicode compliant.
Simply extract the tarball. A directory named "xpn-x.y.z" will be created. In this directory you will find the executable file "xpn.py" that launchs the newsreader. Type ./xpn.py --help to get informations on command-line options.
Launch "xpn.py". The first time you have to configure the program. Follow the instructions and fill all the fields.
Now you can download the newsgroups list from the server (this operation is very slow, so please be patient). Open the newsgroups window with the first button on the toolbar (or the voice in the file menu).
Download the list and subscribe the newsgroups. In the main window, when you click
on the newsgroup name, XPN shows the unread articles in a thread view.
Clicking on the article you will read it.
You can also use the keyboad. With key "n" you will read the
next article ("b" for the previous and "u" for the parent) and with "g" the next
group. The spacebar will scroll the article until reaching the bottom, and then
will move to the next article.
Pressing "p" you can post a new article to the selected group, while pressing "f" you can post a followup to the article selected. When you compose an article XPN automatically chooses the best encoding.
XPN has a scoring/actions system. It is very simple, every article has a "score", initially
it is equal to 0.
The score is calculated when you download new headers, with the rules you define. The syntax
is very similar to the Hamster's one, however it is simplified.
Rules are saved in scores.txt (it's better if you don't edit it with an external editor, use
the internal rule editor), it is divided in ScoreBlocks. Every ScoreBlock starts with a Scope
Definition, it defines the groups in wich rules are applied.
[*] Means: apply the rule in the whole groups
[group1 group2 group3] Means: apply the rule in the listed groups
With a rule you test an header (like From, Subject ...) searching for strings and things like that, if the
match is successful the score is modified.
Every rule is composed by three parts:
# use this for comments [*] +100 From c"Nemesis" #increase the score for the author 'Nemesis' =+1000 Subject "xpn" #assign the score for the articles with the 'xpn' word in the subject =-9999 Subject ~c{[a-z]} #assign the score for the articles with a subject that doesn't contain small letters [it.comp.software.newsreader it.comp.lang.python] -500 Age %>10 #decrease the score for articles ten days old =-100 Xpost %>2 #assign the score for article posted on more than 2 groups
Actions Rules are very similar to Scoring Rules. When an action rule is successful XPN apply the
action specified on the article. You can choose one of these actions :!kill, !markread, !markunread, !mark,
!unmark, !retrieve, !keep,!unkeep, !watch, !ignore, !unsetwatchignore, !setcolor(foreground;background).
The headers are the same of the Scoring Rules plus the field Score. Actions Rules are always applied
after Scoring Rules (even if they are placed before scoring rules in the scores.txt file), so you
can modify the score of an article and then apply an action according the score value.
Examples:
[*] !watch Score %>5000 #Watch articles with Score greater than 5000 !markread Score %[-1000,4000] #Mark as read articles with Score in range !kill From "Pinco@pallino.com" #Kill articles from 'Pinco@pallino.com' !setcolor(black;yellow) Lines ~%[10,20] #Set the background color to yellow for articles whith more than #20 lines and less than 10 lines