Subject: ANNOUNCE: News::Gateway 0.40 (mail <-> news gatewaying support)
From: Russ Allbery <[email-masked]>
Date: 2 Jan 1998 23:57:47 GMT
Newsgroups: comp.lang.perl.announce,comp.lang.perl.modules

Ladies and gentlemen, I'm pleased to announce, after almost two years of
work, my robomoderation, moderation support, mail to news gatewaying, and
news to mail gatewaying package has finally reached the alpha release
stage, thanks in large part to the help of Andrew Gierth.  And yes, this
means that those of you I've promised support packages based on this
script, sometimes far too long ago, should expect them very soon.

News::Gateway is a Perl module, requiring Perl 5.003 or later.  The
distribution at this point includes well over a thousand lines of
documentation, not counting the README, TODO list, and changelogs.

In case you were not previously aware of this project, here is an excerpt
from the README:

  Welcome to my attempt to do robomoderation, moderation support, mail to
  news gatewaying, and news to mail gatewaying right.

  Essentially, robomoderators, moderation support programs, and mail to
  news gateways are all the same thing.  They take an incoming message,
  from either an MTA or from a user filtering program like procmail, or
  perhaps even directly from a user's MUA, perform a variety of rewrites
  required to turn an RFC 822 message into an RFC 1024 message, possibly
  perform a variety of checks and additional rewrites suited to the
  particular application, and then hand the message off to a news server.
  News to mail gateways just do exactly the same thing in reverse.

  From extremely simple procmail hacks through Rich Salz's newsgate
  program to the variety of robomoderators and moderation support packages
  written (most notably, Igor Chudov's STUMP), a variety of people have
  tackled different aspects of this problem, but nearly every effort was
  aimed at a particular view or hard-coded various assumptions, and as a
  result the wheel has been reinvented a ridiculous number of times.

  This is an attempt to generalize out the framework, so that people don't
  have to keep writing the same code to read e-mail messages, post
  messages, send e-mail messages, and do the common rewrites, and instead
  can concentrate on the *interesting* parts, namely the checks and
  rewrites they need for their specific application.  News::Gateway is
  *not* a robomoderator or gateway in and of itself.  Rather, it's a
  toolkit for *building* robomoderators and gateways that attempts to take
  care of all of the nitpicking details for you and drastically decrease
  the amount of code you have to write.  And if your problem happens to
  coincide with one of the supplied example programs, you may not have to
  write any code at all.

  It furthermore sets up a consistent interface for those additional
  checks and rewrites, so once they're done they can be generalized and
  included in the News::Gateway distribution and someone else who is
  trying to solve the same problem can just use (or work with) the
  existing code.  This concept of News::Gateway as a library of reusable
  modules is inherent in its design.

To give you a general idea, the *entire* rec.arts.comics.creative
moderation system including the front-end robomoderation system and the
posting script used by the human moderators is only 109 lines of code
using this module.  (And is included as an example.)

Included in the standard release are the following more specific modules:

     anykeyword.al      Require articles to have some keyword.
     bodyheaders.al     Extracts headers from the message body.
     cleanbody.al       Various standard article body cleaning.
     crosspost.al       Limit crossposts and followups.
     headers.al         Rewrite and trim headers.
     keywords.al        Check for required subject line keywords.
     mailpath.al        Generates an X-Mail-Path from Received.
     mailtonews.al      Translate e-mail into a news article.
     moosesign.al       Sign a post with PGPMoose.
     newsgroups.al      Logic to build Newsgroups header.
     nobinaries.al      Detect and reject binary files.
     previoushop.al     Adds the previous mail hop to the Path.
     whitelist.al       Check the From line against valid posters.

Furthermore, modules have a well-defined interface and the full
functionality of Andrew Gierth's News::Article class to work with; most
modules end up only being a couple score lines of code.

This module has just been uploaded to CPAN, and is also available at:
  <URL:ftp://ftp.eyrie.org/pub/software/modules/Gateway-0.40.tar.gz>

It also uses Andrew Gierth's excellent News::Article module and my own
PGP::Sign module (for PGPMoose support), both available from CPAN or from:
  <URL:http://www.erlenstar.demon.co.uk/perl/>
  <URL:ftp://ftp.eyrie.org/pub/software/modules/PGP-Sign-0.08.tar.gz>
respectively.

This package is in current use for moderating rec.arts.comics.creative,
and earlier versions of this package have been used as mail to news
gateways at various sites, including Stanford, and for moderating
humanities.philosophy.objectivism.

There is a mailing list available for support and development.  From the
README:

  If you are interested in being notified of new releases, helping with
  development, developing, testing, or using new modules, or even just
  getting tips on how to use this module, there is a mailing list
  available.  To subscribe, send mail to [email-masked] with:

        subscribe gateway-users

  in the body.

Happy New Year, everyone!

-- 
#!/usr/bin/perl -- Russ Allbery, Just Another Perl Hacker
$^=q;@!>~|{>krw>yn{u<$$<[~||<Juukn{=,<S~|}<Jwx}qn{<Yn{u<Qjltn{ > 0gFzD gD,
 00Fz, 0,,( 0hF 0g)F/=, 0> "L$/GEIFewe{,$/ 0C$~> "@=,m,|,(e 0.), 01,pnn,y{
rw} >;,$0=q,$,,($_=$^)=~y,$/ C-~><@=\n\r,-~$:-u/ #y,d,s,(\$.),$1,gee,print