
This is a news reader. It needs a name (at least a better one :).
Copyright 2001-2002 Alexander Malmberg <alexander@malmberg.org>

It's released under the GNU General Public License.

The icon (News.app.tiff) comes from a collection of icons drawn by
Andrew Lindesay.


This is an early, but functional, version. At this stage it should be
fully usable as an online news reader.

Comments, suggestions, bug reports etc. are appreciated. Send them to
<alexander@malmberg.org>.


There's a basic LuserNET site at:

http://w1.423.telia.com/~u42308495/alex/LuserNET/LuserNET.html


-- Installing --

Requires gnustep-make, gnustep-base, gnustep-gui and Pantomime. I've
used late (even future :) cvs versions, YMMV.

To build:
	make

If you want to install it to some standard location:
	make install


-- Setting up --

To change settings, select Info->Preferences in the menu.


The message database is by default stored in ~/GNUstep/Library/LuserNET/
(or equivalent). It will be created the first time you run the program.
To get some messages, you'll need to add some sources.

The sources tab has a list of message-sources. Currently only NNTP sources
are supported. Click Add to add one. Double-click on it (or select it
and click properties) to bring up the properties panel for that source.

The NNTP properties panel lets you enter the host for this source and
the port (leave it blank to use the standard nntp port, 119). You can
also add and remove groups that are downloaded through this source.
To add a source, enter it's name, click Query, look in the log window to
get the valid range of messages, and enter a suitable value for 'Last
message'. 0 will download _all_ messages your news server has for that
group, which might take a _very_ long while.

To actually download any new messages that have arrived, press alt-u (or
select update in the menu). Note that you need to click OK or Query in
the NNTP properties panel to update the internal values for host and port.


The read-ahead tab lets you change the read-ahead settings: which messages
are downloaded, and how large they may be. If you're on a slow link,
you might want to disable some of these settings or reduce the maximum
size that's downloaded.


The message viewing tab lets you change settings related to how you
view messages.

The two fonts (primary and alternate, defaulting to the normal user
font and the normal fixed pitch font, respectively) used when viewing
messages can be changed here.

Coloring lines based on quoting depth helps readability (IMO), but can
be slow on large messages).

Intelligent scroll means that when you hit ' ' to scroll a page down in
the current message, quoted sections and signatures will be automatically
skipped. This helps a lot when	   people quote too long portions of
other's messages since it saves you from having to search for the new
parts manually.

The size limit for automatically downloading a message when you click
on it can also be changed here. If you're on a slow link you might want
to decrease it.


-- Using --

The log window contains a log of interesting stuff that has happened. You
can probably ignore it most of the time as long as things are running
smoothly.

The folder list contains a list of (non-empty) folders. Double-click on
a folder to open the folder window for that folder.


A folder window has a list of messages in that folder and a view of the
currently selected message. Keys:

up/down/ page-up/ page-down/ home/end
  Move around in the list

space
  Scroll down in current message, or move to next unread message if
  you're at the end of the current message. If intelligent message
  scrolling is enabled this will scroll intelligently.

n    Next unread message s/x  Move up/down a small amount in the current
message P    Move to this message's parent b	Move to the next branch B
Mark this branch as read and move to the next branch t	  Move to the
next thread T	 Mark this thread as read and move to the next thread
m    Toggle message read/unread A    Mark all messages in the current
folder as read

The references header will be used to thread the messages. If an unknown
message is referenced, it'll be created and displayed with it's Message-ID
as its subject (due to out-of-order delivery it might appear with real
headers if you update again).

By default the folder window is threaded. You can change this in
'Folder->Sort by'. Current options are threaded (new threads added at the
bottom), reverse-threaded (new threads added at the top), arrival order
(the order in which the messages arrived to the program, not necessarily
the order in which they were sent), and reverse arrival order. Thread
based movement will currently only work in threaded folders (not
reverse-threaded). (The order setting will be remembered for each folder.)


Normal messages will be displayed as plain text (maybe colored based on
quoting depth) prefixed by some interesting headers for that message. If
a message was a MIME message it might consist of multiple parts. In
that case, each part will have a short header that tells you what it
is. Generally, deep blue text is information, and red text is clickable
('link':s, for lack of better words).

Different content-types are handled as follows:

text/* parts (usually plain text)
  Displayed 'normally' if it could be decoded. If it couldn't be decoded
  (most likely due to an unknown character set), it'll be treated like
  raw data but with the addition of a 'Try to show as text' link. If you
  click this, the message will be treated as ASCII text. If the message
  was encoded with a character set that's similar to ASCII (the first 128
  characters), this will probably display most of the message correctly.

multipart/alternative
  The last part will be displayed by default. The header will have a
  list of content-types for all parts; clicking on one will display that
  part instead (thus, if you get an html message with a plain text part
  as an alternative, you can view that part instead).

multipart/*
  All parts will be displayed.

everything else
  The header will tell you the content-type, and information like the
  size and filename, if available. There'll be a save option you can
  use to save the raw data of the part (which is what you'll usually
  want to do with eg. attachments).


If a message has not been downloaded yet, you'll get a status message
instead, sometimes with links. (For example, if a message was larger
than the automatic-download size limit, or the size is unknown, you can
click the link to download it anyway.)


-- Notes --

Current versions of GNUstep are very slow when it comes to arranging text.
Thus, for large messages it might take a few seconds after it has been
downloaded for it to appear.

If you get an error when downloading a message it most likely means that
the server doesn't have that message. It might appear later.

Threading will only be cached in memory. Threading a large folder happens
the first time you open it and might take a little while.

It is possible to remove sources and groups, but messages that have
already been downloaded can't be deleted (currently). If you want to start
from scratch again just delete ~/GNUstep/Library/LuserNET/metahead.txt .

The text-based version is no longer included. If you're interested in it,
tell me.


-- Planned features --

Support for uuencoded binary files in messages. (MIME is better, but
this seems common.)

Posting support.

Viewing image parts of messages inline.

