                      YAM2Usenet v0.6a : 21-Nov-98
          ©1998 Ridwan Hughes <yam2usenet@ridhughz.demon.co.uk>
               http://www.ridhughz.demon.co.uk/yam2usenet/
          -----------------------------------------------------

If you've been wanting to access usenet with YAM2 then these scripts are
for you, they allow you to download usenet posts into YAM2 and reply back
to them.




                          --=-- Features --=--

o  Small scripts (in byte size).
o  It uses your favourite emailer, no need for any bulky newsreader ;)
o  Easy to reply back to the newsgroup(s) or to the person who posted the
   article when replying back to posts.
o  Lets you know when things don't go as planned when downloading/posting
   so that when you reply back to me about a bug it's easy to squish it.
o  Authentication feature for those that have a user/pass to access news.
o  Message-ID history so you can set the datestamp back and not download
   duplicate articles. Currently defaults to storing the last 500 ID's.
o  Killfile ability so you can try and avoid posts from spammers/people
   you don't like.
o  A lot of automation of parsing the posts into YAM2 since v0.6, making
   the scripts much much easier to use.


Note: You can join binary groups as YAM2 is fairly competant at handling
      binary posts, but you won't get wonderful download times and the CPU
      load will be higher than using a dedicated newsreader, remember it's
      ARexx that's doing the downloading with these scripts.






                         --=-- Requirements --=--


o  An Amiga (no really? I thought I could run this on my Mac ;)
o  YAM2 Preview 6 or better (get preview 6 at http://www.yam.ch/preview)
o  AmiTCP or Miami or Miami Deluxe with the TCP: device (this is a virtual
   IO device that effectively allows access to any machine's open port on
   the internet, hence it's used in these scripts to connect to a
   newsserver). And NO, TermiteTCP will never be supported because it
   doesn't have TCP:
o  pipe: to be mounted    |
o  c:requestchoice        |__these are standard Workbench things.
o  c:run                  |
o  c:rename               |
o  c:version              |
o  RexxMast to be running |
o  libs:rexxreqtools.library (this is installed with the YAM2Usenet
   installation procedure)
o  Access to a newsserver, a list of public newsservers is included in
   this guide and in the installation script.






                         --=-- Installation --=--

Installation is fairly straightforward, clicking on the usenet.install.rexx
icon will install the rexreqtools.library into libs:, it will also copy this
document and usenet.read.rexx into YAM:, it will the procede with the
following:


1st: Greeting. You're greeted with an intro saying this is only beta
     (cos it is), then you must choose wether to only update the scripts
     or install from scratch.

2nd: Newsserver name. Then you must enter in the newsserver name that you
     use, most ISP's run their own so use the one that your ISP may have
     if not there are @{"public access servers" LINK "Public newsservers"}, a list is provided in this
     guide of ones I have foung.

3rd: Newsgroups. Enter in a newsgroup to join, you must at least join 1
     newsgroup or why did you download this script?
     Then goes into a loop, asking if you want to join more newsgroups and
     shows the newsgroup(s) you have already joined.

4th: Datestamp. Usenet mainly relys on datestamps for downloading articles,
     so here you must either use your own computers' datestamp (current),
     or get the current newsserver's datestamp (must be online for that),
     or you can enter your own datestamp in so you can get backlogged
     articles usually up to a month or so back.

5th: Killfile. You have the ability to not download posts from certain
     domains of your choosing (spam and the like), if you want to killfile
     someone who for example has the Message-ID:
     <qRdezgAqqUl1EaAl@some.spam.net>   then you would enter in the line
     @some.spam.net>   which would prevent the downloading of posts from
     that domain.

6th: Authentication. If your newsserver requires you to access news with a
     user/pass situation then enter in your user and pass here. This is
     only experimental, I don't have access to a user/pass newsserver so I
     don't know if this works.
     WARNING: the user/pass is stored in text format in usenet.auth, I
     have no plans to use encryption cos I don't know how.








                     --=-- Further Configuration --=--


Once the installation script has been run through and the various
YAM:usenet.#? files exist then you must set up folders and filters so that
YAM2 will parse the posts into their respective folders, to do this read
the following:


1st: Click on the Config icon to bring up the window.

2nd: Click on Folders and then click on the [New] button.

3rd: A requestor will appear showing you the assign of YAM:, leave that bit
     alone and type into the Directory box say "compsysamiga" so that drawer
     will be created and used.

4th: Top right of the Config window it says Name and Path below it, enter
     in the new name, best to stick with the same Name as the Path here.

5th: Click on [Filters] then click on [New] to add a new filter for the new
     folder, then enter in say "c.s.a.misc-NG" so you know it's a
     newsgroup filter.

6th: Select the Comparison section of the config window.

7th: Where it says "Search in [@|  From field  ]", select from the menu
     "Other field:", then write in the box next to it "Newsgroups:"

8th: Leave the "[@| = ]" selection as is then write into the box next to it
     "*comp.sys.amiga.misc*" and the Comparison section is completed.

9th: Select the Action section of the menu, click on [Move] so that it's
     ticked, then click on the selector button to the right of it and
     select the c.s.a.misc folder (or whatever folder) you created.


10th: If you have joined other newsgroups then repeat steps 2-11 until done.

11th: Click on [Save] to save your configuration prefrences.


Note: with filtering you can put say all comp.sys.amiga.* newsgroups into
      a single folder by putting "*comp.sys.amiga.*" into step 10 above.






                --=-- Manually installing/configuring --=--


After you have run the installation script you still can add/remove
newsgroups and killfile lines by editing the YAM:usenet.#? files with a
normal text editor. I may get round to writing some sort of configuration
script to allow you to alter the files effortlesly, who knows.

To manually install it you need to create the following text files:

YAM:usenet.groups    - newsgroup(s) you wish to download from.
YAM:usenet.server    - single line file with the newsserver name.
YAM:usenet.killfile  - domains to killfile (this is the only file that the
                       read script can run without requiring it to exist)
YAM:usenet.auth      - only create this file if you need authentication to
                       access your newsserver, the username & pass must
                       be on a single line with a space seperating them.
YAM:usenet.datestamp - in the format of YYYYMMDDHHMMSS.
                       that is: year month day hour minute second
                       for example: 19980714051736
YAM:usenet.downloaded-ids - this must exist, even if it's a single line with
                            "<>" as the line, it stores the list of the
                            article ID's downloaded so duplicates aren't
                            downloaded if you set the datestamp back.


And with those 5/6 files created and YAM2 setup with the right
folders+filters you can download+post to usenet.






                      --=-- Public newsservers --=--

I had a little search on the web for a list of public newsservers, the
fruits of my labour turned out these:

              Name:                    No. of newsgroups carried:
              news-reader.wcg.net      60000
              194.78.80.195            34000
              209.125.132.138          29000
              sion1.bathspa.ac.uk      28000
              206.28.168.22            28000
              209.75.104.10            25000
              news.okidata.com         24000
              209.60.156.214           23500
              195.204.199.88           22600
              news.uov.net             21000
              pub.news.uk.psi.net      18500
              news.spar.ca             18500
              news.ausmail.com         ??

Note that not all newsservers will carry the newsgroups you want, a little
trial and error will tell you wether they have the newsgroups you want, I
am intending to do some newsserver test script to test wether the newsserver
has the newsgroups you want and wether you can post with it.






                       --=-- Downloading posts --=--

Just click on the usenet.read.rexx icon in your YAM folder which will then
download posts from the newsgroup(s) you have selected. A TCP/IP stack
such as AmiTCP or Miami or Miami Deluxe must be running as must YAM2 or the
script will abort telling what's up.

Since v0.6 of my scripts, the importing and filtering of the downloaded
posts is done completely automatically, although you must have YAM2 preview6
or newer for this to work, and for the mail filters+folders to be set up
properly.

Now you can read all the posts you've downloaded.


**NOTE** if you break the download script and YAM2 gives you a busy pointer
when you try to use it, then type this into a cli/shell:

rx "address yam appnobusy"







                --=-- Posting/Replying back to Usenet --=--


The moral side of Usenet:
Yes part of Usenet is about free speech but do not post SPAM to newsgroups
which do not welcome it, and that's virtually all the respectable newsgroups,
do not post adverts which people do not want, accounts can get suspended or
even deleted for abusing Usenet so don't do it.

If you want to join a newsgroup and aren't sure what it's like then lurk a
while, say a couple of weeks (or download the past two weeks of posts)
before you post and say hi, if it's a technical newsgroup then don't just
post a single lined "HELP ME!!!!!" post, state what the problem is and what
equipment/software you're using.

Also please do not post with sigs longer than 4 lines because some people
can get very irate about it, not everyone likes to download 5 lines of post
with 15 lines of sig, think about others.


Ok that's over with, now to posting back to Usenet.


When you click on [Reply] to do just that with a post, it should bring up
a requestor saying something like:

    Sender address (From) is <someone@somewhere.com>, but
    return address (Reply-To) is <alt.blah.blah.whatever@newsgroup>
    What address(es) do you want to use?
           [From]     [Reply-To]     [Both]     [Cancel]

DON'T click on [Both] because that doesn't work (and I don't know if I will
get it to work or not).
To reply to the individual then click on [From].
Or to reply to the newsgroup then click on [Reply-To].

Edit your mail as you want, then when you want to post it back DON'T click
on [Sent now] or it will just bounce and won't get to usenet, you MUST click
on [Hold] so that it won't be normally posted off, the usenet.post.arexx
script deals with that.

When you have outgoing posts to usenet waiting in your Outgoing folder,
click on the usenet.post.arexx icon which will the post them all off to
usenet.






       --=-- Crossposting and posting new posts (not replying) --=--

(Note: crossposting has been fixed since 0.5)

To post a new post you click on [Write] then write your post, to choose
what newsgroup(s) you want it to go to then enter in say:
 comp.sys.amiga.misc@newsgroup
or
 comp.sya.amiga.misc^comp.sys.amiga.networking@newsgroup
as you can see the "^" character (shift 6) seperates the newsgroup names
and crossposts the post to those newsgroups, the @newsgroup as the address
tells the usenet posting script to post it to usenet, if you were to post
it as a normal mail then it will surely bounce.
Be careful about crossposting, when you reply to usenet look at the groups
you may be replying to, trimming of excess newsgroups can be done by editing
the To: box.

When you have outgoing posts to usenet waiting in your Outgoing folder,
click on the usenet.post.arexx icon which will the post them all off to
usenet.






                          --=-- The Future --=--

These scripts are by no means as complete as I would like them to be, yes
they work well at what they do but there's lots of room for improvement,
for example on the list of things to do are:

-GUI, to add a much better GUI for the install script and also create a
 configuration GUI so you can edit prefs & download posts/upload posts with
 a single GUI. I don't know how well I'll be able to accomplish this though.
 I have a simple ascii drawing of a proposed GUI layout below:

                    Proposed GUI layout using MUIRexx

  .----+-------------------------------------------------------+----+----.
  | [] | YAM2Usenet v1.0 c1998 Ridwan Hughes                   |`'  |  . |
  +----+-------------------------------------------------------+----+----+
  | .------Newsgroups----+-.  ___                                        |
  | |alt.life.universe.ev|||  [ ] Stop www.dejanews.com from adding      |
  | |demon.ip.support.ami|||  ~~~ your posts to it's database            |
  | |demon.tech.amiga    |||  ___                                        |
  | |comp.sys.amiga.netwo|_|  [ ] Add .killspam. into your email address |
  | |                    |^|  ~~~ to stop spam bots from getting your    |
  | |                    |v|      real email address to spam you with    |
  | `--------------------+-'                                             |
  | .----Kill addresses--+-.  Newsserver: [ news.demon.co.uk           ] |
  | |@mammoth.psnw.com>  |||                                             |
  | |@hats-n-specs.com>  |||  Datestamp: [ 21-03-1999 | 14:41:37 ]       |
  | |@news.swbell.net>   |_|                                             |
  | |@news1.tinet.ie>    |^| .-------------..---------. .----Prefs----.  |
  | |@papanui.win-uk.net>|v| |Download news||Post news| | Save | Load |  |
  | `--------------------+-' `-------------'`---------' `-------------'  |
  `----------------------------------------------------------------------'


-Having the read script check that the newsgroups you want to download from
 actually exist on the server you're trying to read from.

-Along the above lines have newsserver testing to see wether the newsserver
 you select has the newsgroups you want and if you can post back with it.

-Automatic configuration of YAM2's folders+filters so that when you add a
 newsgroup to configuration then a folder+filter is automatically created
 in YAM2. (this is far off in the future though, that's if I decide to do it)

-Anti SPAM measures, basically screw up your email address intentionally
 so that the SPAM bots that roam usenet don't pick up your real email
 address.

-Stop DejaNews from archiving your posts into it's database with the
 X-No-Archive: Yes
 line being added to the header, if you so wish.

-More powerful killfiling, say like you could avoid downloading posts that
 are crossposted to many groups at a time (a spammers speciality).

-No I will not be supporting newsservers that do not allow you to use the
 NEWNEWS command, to do that I would have to practically re-write the
 complete usenet.read.rexx script from scratch.

-Better icons ;)

-Erm, ask me what else you want to see :)






                         --=-- Thanks go to --=--

Marcel Beck for the stonkingly brilliant emailer YAM2.
Rafael D'Halleweyn for rexxreqtools.library used in the installer script.
Paul Compton for helping with the amigaguide.
And lastly all you people out there unknowingly betatesting for me ;)
(feedback is appreciated, especially on any bugs I can squish)






                            --=-- History --=--

0.1-->First version, the spark of the idea basically, nobody got this one.

0.2-->Wrote an installation script over a couple of days, and wrote the
      posting script in a night, the first released one (hardly anyone got).

                              * 13-Jul-98 *
0.3+->Bugfix of the installation script.
   ]->Made sure that the newsserver allows posting when trying to post.
   `->Stopped the download script from making YAM2 import nothing when no
      posts were downloaded.

                              * 14-Jul-98 *
0.4+->Added an option to the installation script to just install the new
   |  scripts instead of installing the whole configuration all over again.
   ]->Optimised the download and upload loops of the read & post scripts so
   |  that binary downloads/uploads are mor possible (I don't reccomend
   |  binary transfers on a slow (slower than 030) Amiga), and minor
   |  optimisations were carried out on the post/read scripts.
   `->Added to this doc and to the main installation script a list of some
      public newsservers.

                              * 16-Jul-98 *
0.5+->Added in tons of failsafes into the install script, the post script
   |  and the read script so that if the script(s) can't open a file or
   |  post with a newsserver then it lets you know, giving as much reasons
   |  as to why as possible so you can change newsservers or make sure the
   |  file missing is created.
   `->Proper threading of posts. Altered the read script so that the
      References: line of usenet gets translated into the In-Reply-To:
      line that YAM2 is used to dealing with for proper threading of posts,
      it intelligently trims down long References: line(s) into just one
      message ID. It's the opposite of what I earlier added to the post
      script so that the posts you send are threaded properly in people's
      newssreaders, but now they're also threaded properly in YAM2.

                              * 21-Nov-98 *
0.6+->Added an authentication feature after someone requested the need for
   |  such a function. (this is experimental though)
   ]->Amigaguide document thanks to Paul Compton for turning the .doc into
   |  .guide giving me a base to work on.
   ]->Message ID history file so duplicate posts aren't downloaded when you
   |  set your datestamp back if needs be. Also when downloading posts it
   |  ignores duplicate posts, say you read 2 different newsgroups and
   |  someone crossposts to both newsgroups then only one copy is downloaded,
   |  but it only gets put into one of the newsgroups. It currently defaults
   |  to storing the last 500 ID's downloaded.
   ]->Simple ascii progress bar for checking for duplicate articles and when
   |  downloading the posts.
   ]->Further speed optimisation.
   `->Bugfixed the crossposting, it now works (sorry about that).

                              * 21-Nov-98 *
0.6a->Fixed some really stupid bugs (sorry about that folks)





Well if you read all that and you still have questions about using it or
can't figure out how to post/read usenet articles then email me at
<yam2usenet@ridhughz.demon.co.uk> but please read through all the above text.

If you have any suggestions (not to far out please) then contact me, or
want to totally re-write the scripts in something like C then please go
ahead and do so but crediting me for the idea.



Happy posting and don't get yourself in trouble, Rid.


Darwin on IRCNet #amiga, http://adoom.ml.org webmaster
