 
ubh - The Usenet Binary Harvester

CHANGES 

Version  Date        Description
-------  ----------  --------------------------------------------------------
  2.5    03/07/2002  Misc bugfixes (yenc detection) and maintenance
                     Feature Requests Implemented:
                        525782 Handle SIGHUP and save newsrc

  2.4    03/05/2002  Misc bugfixes (crosspost elimination w/ -z, and yenc
                     detection).

  2.3    03/02/2002  Feature Requests Implemented:
                        517222 Look for dot files in HOME directory
                        524794 Native yEnc support

  2.2    02/22/2002  New cache updating and filtering architecture.

                     Miscellaneous Maintenance:
                     * Greatly improved performance and reduced memory usage.
                     * Now properly handles multiple [xx/yy]'s in Subject.
                     * Eliminated -r and -Z options.
                     * Now uses MIME::Parser parse_DFS() to iterate
                       over MIME articles.

                     Bugs Fixed:
                        513063 -r bug (OBE)
                        513075 Add '<' and '>' to mandatory filter
                        513080 Articles downloaded in random order
                        513085 Improve -u description
                        513091 MIME embedded filename badness

                     Feature Requests Implemented:
                        513062 Apply -I/-X and newsrc earlier
                        513073 Add 'p' to default single and multi exts
                        516455 yEnc support

  2.1    08/05/2001  Maintenance release - removed Class::Struct to allow ubh
                     to run on earlier versions of Perl.

  2.0    07/28/2001  Subject caching, crosspost elimination, multiple server
                     support, plus bug fixes and general maintenance.

                     * Percent complete display.  Thanks to Will Irace,
                       3Jane Tessier-Ashpool, and Guillame Filion.

                     * Eliminated warning about $MacPerl::Version.
                       Thanks to Adam Rice.

                     * Improved SIGINT handler.  Thanks to Guillaume Filion.

                     * DECODER keyword to specify a custom external article
                       decoder command string.
                       Thanks to Jt "The Squeegy" Chiodi.

                     * -D now dumps all selected single and complete articles.
                       Suggested by Guillaume Filion.

                     * CACHEDIR keyword to store all the .ubhcache files in
                       a single directory, if you want to.
                       Thanks to Jt "The Squeegy" Chiodi.

                     * Added support for multiple servers.
                       Inspired by code contributed by Guillaume Filion.

                     * Ripped out existing MIME and uuencode decoders and
                       replaced with the standard MIME::Parser.  You will
                       need to install the following modules/distributions:
                          MailTools-1.15
                          IO-stringy-1.220
                          MIME-Base64-2.12
                          MIME-tools-5.411

                     * Now applies extension filter(s) to the embedded file
                       names in addition to the subject header.

                     * Added NNTPPORT keyword so you can specify a different
                       port to connect to.  Default is 119.
                       Code contributed by Mark Sullivan.  Thanks Mark!

                     * Batch file article selection (-b).
                       Initial implementation provided by Shalon Wood.

                     * Added more evil filename cleanup:
                         - -C now forces filenames to all lowercase.
                         - EVILCHAR so you can control the character
                           to use when replacing evil characters.

                     * Added handling for authinfo() failure.

                     * Fixed coding error for MIME multipart/mixed.
                       Thanks to the Tofu Pup.

                     * Changed -O to accept one of three options: 'yes', 'no',
                       and 'skip'.  'yes' will overwrite and 'no' will create
                       a unique file; 'skip' will keep the existing file,
                       skipping remaining parts if it is a multi-part binary.
                       Thanks to Rod Jenkins for contributing the intial
                       code for this, and thanks to Evan Harris for initially
                       suggesting this.

                     * Fixed broken FORCEDIR implementation; it now allows
                       you to specify paths that are not subdirs of DATADIR.
                       Thanks to Evan Harris for pointing this problem out.

                     * Marks the articles that comprise a multipart binary
                       as read *after* the binary has been decoded.
                       Thanks to Evan Harris for suggesting this.

                     * Added 'contrib' subdir for contributed tools.

                     * Added contributed tool, 'newshark', which maintains
                       your .newsrc.

                     * Implemented subject caching.

                     * Implemented subject sipping - requests Subject:
                       headers in small "sips".

                     * Implemented crosspost elimination.
                       Thanks to Brian Macke and Jason Portwood.

                     * Explicitly close open files when bailing out.

                     * Ran with -w and cleaned up warnings.

                     * The subjects cache files now have the extension 
                       .ubhcache.

                     * Fixed wild bug with metacharacters in MIME boundaries.

                     * Prepend groupname to subjects.log and multiparts.log 
                       when FORCEDIR is in effect to prevent them from being 
                       overwritten.

                     * Added wrappers (with retry loops) to Net::NNTP xhdr(), 
                       xover(), and head().

                     * Added ubhrc keyword NNTPHDRSIP to make header sip 
                       size programmable.

                     * Massive cleanup of header download code.

                     * Added graphical spinner progress indicator.

                     * No longer need '= 1' in ubhrc for OPT_* booleans.
                       Do not create TEMPDIR unless -A is in effect.
                       Thanks to Bjorn Stenberg.

  1.5    01/07/2000  Maintenance release.  Solved '222' reconnect issue.
                     Thanks to Frank Hofmann and Adam Rice.

  1.4    12/28/2000  Disk-based article assembly, plus a round of bug fixes.

                     * Disk-based article assembly (-A).  TEMPDIR keyword to
                       specify where to store the temporary file(s) during
                       assembly.
                       Thanks to special guest programmer Jt "The Squeegy" 
                       Chiodi, squeegy_at_squeegy.org, http://www.squeegy.org/
                     * PERMISSION keyword to control default permission of
                       created subdirectories.
                       Thanks to Jt "The Squeegy" Chiodi squeegy_at_squeegy.org
                     * Made uudecode search for "end" case insensitive.
                       Thanks to Michael Tiedge - 
                       michael.tiedge_at_stud.uni-hannover.de
                     * Use "/o" modifier to only compile regexp's once.
                       Thanks to Adam Rice - wysiwyg_at_glympton.airtime.co.uk
                     * -O option to force overwriting of duplicate files 
                       instead of prepending article number.
                       Thanks to coder_at_mindspring.com
                     * Default single and multi-part inclusion filter greatly
                       expanded to be '(?i)asf|avi|gif|jpg|mov|mpg|mpeg|rm|
                       [cdertsu]\d\d|rar|ace|zip|\d\d\d|nfo|sfv|mp3'.
                       Thanks to Jeff Hedgpeth jhedg_at_swbell.net, and
                       Andi L6hmus andi_at_nex.ee
                     * Fix documentation for -f and -l to say that they
                       update the .newsrc.
                       Thanks to Jeff Hedgpeth jhedg_at_swbell.net
                     * Example ubhrc mentions OPT_c - should be OPT_C
                       instead.
                       Thanks to Ying Zhang ying_at_zippydesign.com
                     * Tested on Mac OS X.
                       Michael J Paluka paluka_at_pacbell.net
                     * -g was not updating .newsrc.
                       Thanks to 3Jane Tessier Ashpool jane3ta_at_yahoo.com
                     * -n was not documented.
                       Thanks to 3Jane Tessier Ashpool jane3ta_at_yahoo.com
                     * MacPerl platform support.
                       Thanks to Mike W. mw487_at_yahoo.com
                     * -g was not obeying -I or -X filters.
                       Thanks to Andreas Wenzel a.wenzel_at_aon.at

  1.3    10/10/2000  Maintenance release.  Just some nice improvements.

                     * Will detect a dropped NNTP connection during group()
                       and body() calls, and will automatically reconnect,
                       re-authenticate (if necessary), re-issue the group() 
                       call, and proceed from where it left off.
                       Thanks to Adam Rice - wysiwyg_at_glympton.airtime.co.uk
                     * Made uudecode search for "begin" case insensitive.
                       Thanks to Michael Tiedge - 
                       michael.tiedge_at_stud.uni-hannover.de
                     * Now ignores trailing whitespace in ubhrc values.
                       Thanks to Hsiao-Yu Chen - chenh_at_cs.purdue.edu

  1.2    08/29/2000  Maintenance release.  Fixed nasty bug which was
                     preventing single-part "(1/1)" articles from being
                     processed.

  1.1    08/10/2000  Maintenance release.  Lots of cleanup and speedups.
                     Some new convenience options.  Minor bug fixes.

                     * Added command line options:
                          -C Changes all non-alphanumeric characters in a 
                             filename to '_'.
                          -L Long filenames - uses the article subject as 
                             the filename.  This makes life easier because 
                             many folks encode their files with terribly 
                             vague filenames.
                          -y chmod 0666 all output files
                          -Z Produce lots and lots of logs (seriously)
                          -z Mark articles that don't pass inclusion/exclusion
                     * Added progress display (prints dots as articles are 
                       processed/downloaded).
                     * Added code to fix filename length problems
                     * Exit code is now set to -1 if there was an error, 
                       otherwise the exit code is the number of files 
                       retrieved.  Useful for wrapper scripts.
                     * Added new .ubhrc keywords: 
                       EXTENSIONS 
                          Sets both multi_ext and single_ext.  Handy.
                       FORCEDIR
                          Forces output to a specific directory instead 
                          of the default data/newsgroup-name.  Handy for 
                          multiple newsgroups which hold similar stuff.
                       NNTPRETRIES
                          Number of times to retry NNTP commands.
                     * Wrapped more nntp calls in retry loops.
                     * Miscellaneous code cleanup.
                     * Comments are included in the source.
                     * Changed article marking
                         Articles now are only marked if they are part of a 
                         successful download, or are not chosen by the 
                         inclusion/exclusion etc.  This makes life easier 
                         because now you don't miss out on files that are 
                         incomplete during a run.  You get them on the next 
                         run.
                    * Added data rate display.  Each body downloaded displays 
                      a data rate (for body downloads only).  Headers are not 
                      measured.  A grand total is displayed at the end of the 
                      run.
                    * Huge improvement in the way headers are retrieved.
                         - Only downloads headers for unread articles.
                         - Requires that your server supports XHDR. 
                           Most do, so don't worry about it.
                    * Can now specify -I and -X simultaneously.
                    * Fixed bug with -i.  Thanks Don H.!
                    * -f and -l now update the .newsrc.  Thanks Joerg S.

Version  Date        Description
-------  ----------  --------------------------------------------------------
  1.0    03/22/2000  First public release.  Finished MIME. Minor bug fixes.

Version  Date        Description
-------  ----------  --------------------------------------------------------
  0.5    02/08/2000  Finished initial MIME implementation.  Implemented reject 
                     logging.

Version  Date        Description
-------  ----------  --------------------------------------------------------
  0.4    01/20/2000  Second beta distribution.  Minor bug fixes and typos.

Version  Date        Description
-------  ----------  --------------------------------------------------------
  0.3    01/16/2000  First beta distribution.
