view docs/NOTES @ 88:1fcdced0246e noffle

[svn] Move posting code to post.c, add command line posting
author bears
date Thu, 18 May 2000 13:17:23 +0100
parents 8b4e3f9e9e4e
children 651334f85995
line wrap: on
line source


-------------------------------------------------------------------------------

    1. NOFFLE Compatibility Notes

        1.1  General
        1.2  kexpress
        1.3  krn
        1.4  Netscape
        1.5  pine
        1.6  slrn
	1.7  tin
        1.8  Emacs Gnus
	1.9  pan
	1.10 trn
	1.11 xrn
	1.12 knews

    2. Using Noffle as a Mail-News Gateway

        2.1 Create a local group
        2.2 Create a mail2news script
        2.3 Create an entry in .procmailrc

-------------------------------------------------------------------------------


1.NOFFLE Compatibility Notes
----------------------------


1.1 General
-----------

Subscribing to groups in "full" mode should work with any news reader.
Caching of articles is unnecessary, since NOFFLE already caches them and
should be switched off.

Subscribing to groups in "overview" or "thread" mode requires more from the
news reader program:

 * It must not cache articles at all (or allow to switch the cache off),
   because the article bodies change from the pseudo article
   "marked for download" to the real body.

 * The reader should rarely open article bodies automatically, because it will
   mark them unwantedly for download.


Here comes a list with news readers that have been tested with NOFFLE,
especially with regards to subscribing to groups in "overview" or "thread"
mode.

Please send me reports on your experiences. If a reader does not work at all,
compile NOFFLE with

 ./configure --enable-debug
  make
  make install

Then you will see every NNTP command and status line in /var/log/news. Most
interesting is the last line, before the reader (or NOFFLE) hangs :-)
Please also send me a short mail, if you successfully used NOFFLE with a
certain version of a news reader for a longer time, so that I can keep this
list up-to-date.


1.2 kexpress
------------

Version 0.2.0;

I found no way to disable caching, apart from writing a wrapper script, which
removes all files from the cache after terminating kexpress:

#!/bin/bash
# kexpress wrapper, save as /usr/local/bin/kexpress

/opt/kde/bin/kexpress $@
rm $HOME/.kde/share/apps/kexpress/data/*


1.3 krn
-------

Version 0.4.0:

Set "Options/NNTP Options/Connect on Startup,Connect without asking"
and "Options/Expire options/Article bodies/Read=0,UnRead=0" Sometimes
the article bodies remain in the cache, the following wrapper script helps:

#!/bin/bash
# krn wrapper, save as /usr/local/bin/krn

/opt/kde/bin/krn $@
rm $HOME/.kde/share/apps/krn/cache/*

Articles can be marked as read/unread without opening with the middle mouse
button. This version of krn is still unstable.


1.4 Netscape
-------------

Version 3.04:

No cache problems, netscape caches the article overviews, but not the
bodies. It is best to use "Options/Show only Unread Messages" and to
keep requested articles in unread state until their bodies are
downloaded. For avoiding unwanted opening of articles one should first
"Message/Mark Newsgroup read", then open the wanted articles one by
one and mark them as unread again ("Message/Mark as Unread")
immediately after opening.


Version 4.0.5:

Same as with netscape 3.04, but automatically opens the first article
of a listed group and marks it for download thereby. If this bothers
you, choose "View/Hide message". This version of netscape still seems
to be unstable for reading news.


Version 4.5:

As with 4.0.5 "View/Show/Message" can be used to switch off automatic
message display (and marking for download).


1.5 pine
--------

Version 3.96, 4.05:

Ok.


1.6 slrn
--------

Version 0.9.5.2:

Ok. You can change some keybindings, by saving the following script to
~/.slrn.sl and adding "interpret .slrn.sl" at the end of your
~/.slrnrc

   % SLRN script for better interplay with NOFFLE news server.
   % Redefines some keys for opening articles without modifying flags.
   define my_article_linedn()
   {
       variable flags = get_header_flags();
       call ( "article_linedn" );
       set_header_flags( flags );
   }
   define my_scroll_dn()
   {
       variable flags = get_header_flags();
       call ( "scroll_dn" );
       set_header_flags( flags );
   }
   define my_hide_article()
   {
       variable flags = get_header_flags();
       call ( "hide_article" );
       set_header_flags( flags );
   }
   definekey( "my_article_linedn", "\r", "article" );
   definekey( "my_scroll_dn", " ", "article" );
   definekey( "my_hide_article", "h", "article" );


1.7 tin
-------

Version tin pre:

Call with "tin -r" or "rtin". 'K' marks articles/thread as read
without opening them. '-' marks them as unread.


1.8 Emacs Gnus
--------------

Some versions of Gnus freeze up when retrieving active groups. Since
NOFFLE's log files in DEBUG mode show nothing unusual, I believe that
this is a bug in Gnus. Sometimes it helps to remove all ".newsrc" and
similar files on ones home directory and restarting Gnus.

Here is a proposal for changing some key-bindings.

   ;; Customising Gnus for use with the NOFFLE news server
   ;; 
   ;;  tick and open article
   ;;          for reading/marking for download
   ;;   scroll article text circular
   ;;          for avoiding automatic opening of next article
   ;;       mark article as read and go to next line
   (defun my-gnus-summary-tick-and-open(n)
     "Tick and open article, so that NOFFLE marks it for download" 
     (interactive "p")
     (gnus-summary-scroll-up n)
     (gnus-summary-mark-article nil gnus-ticked-mark t)
     )
   (defun my-gnus-summary-next-page(n)
     "Next page of article, but do not open next article automatically"
     (interactive "p")
     (gnus-summary-next-page 10 t) ;; Call with argument `circular'.
     )
   (defun my-gnus-summary-mark-read-next-line(n)
     "Mark article as read and go to next line"
     (interactive "p")
     (gnus-summary-mark-article-as-read gnus-read-mark)
     (next-line n)
     )
   (defun my-gnus-summary-mode-hook ()
     (define-key gnus-summary-mode-map "\r"
       'my-gnus-summary-tick-and-open)
     (define-key gnus-summary-mode-map " "
       'my-gnus-summary-next-page)
     (define-key gnus-summary-mode-map "d"
       'my-gnus-summary-mark-read-next-line)
     )
   (add-hook 'gnus-summary-mode-hook 'my-gnus-summary-mode-hook)


1.9 pan
-------

Version 0.8.0beta5:

Ok.


1.10 trn
--------

Version 3.6:

Ok. Use 'm' to mark an article unread. 'J' (junk) marks an entire thread
as read without examining the rest of the articles in the thread.


1.11 xrn
--------

Version 9.01:

There does not appear to be away to stop the body of the first unread
article in the group from being displayed. Otherwise Ok.


1.12 knews
----------

Version 1.0b.0:

knews issues NEWNEWS with a non-compliant 7 digit date field (Y2K bug?).
It will not see new newsgroups as they appear. knews also regards articles
existing in a group when it joins as read, which makes it a bit tricky
reading the subscription trigger message - try the 'All threads' button.
Apart from that, it does not seem to cache article content other than the
current article, and that is re-read if you click on it in the thread
window.


2. Using Noffle as a Mail-News Gateway
--------------------------------------

In combination with procmail, Noffle can be used to gateway all
mails from a maillist to a local newsgroup.
This is convenient for filtering out maillists from your personal emails.
The local group is created without postings allowed,
so mails to the maillist must be sent by email.
This is not a big problem, since most newsreaders allow choosing between
a reply and a followup.

2.1 Create a local group
------------------------

Example:

    noffle --create local.mail-lists.my-maillist-name
    noffle --modify post local.mail-lists.my-maillist-name n

2.2 Create a mail2news script
-----------------------------

You need a program that reads an article from stdin and posts it to
the local group. E.g. the following Python script will post an article
read from stdin to the newsgroup given as the first argument:

    #!/usr/bin/python
    # Post article from stdin to noffle in group given as first argument.
    import StringIO, nntplib, os, sys
    if len(sys.argv) != 2: raise Exception("Need group as argument")
    grp = sys.argv[1]
    buf = StringIO.StringIO()
    buf.writelines("Newsgroups: " + grp + "\n")
    buf.write(sys.stdin.read())
    buf.seek(0)
    os.system("/usr/local/bin/noffle --modify post " + grp + " y")
    srv = nntplib.NNTP("localhost")
    srv.group(grp)
    srv.post(buf)
    srv.quit
    os.system("/usr/local/bin/noffle --modify post " + grp + " n")

2.3 Create an entry in .procmailrc
----------------------------------

Add a procmail entry for recognizing mails from the maillist and
posting it using mail2news.

Example of a ~/.procmailrc:

    PATH=/bin:/usr/bin
    MAILDIR=$HOME/Mail
    LOGFILE=$MAILDIR/procmail.log

    :0
    * ^To.*my-maillist-name@lists.somewhere.org
    |/usr/local/bin/mail2news local.mail-lists.my-maillist-name