NAME
    ThreatNet::Bot::AmmoBot - Tail threat messages from a file to ThreatNet

DESCRIPTION
    "ThreatNet::Bot::AmmoBot" is the basic foot soldier of the ThreatNet bot
    ecosystem, fetching ammunition and bringing it to the channel.

    It connects to a single ThreatNet channel, and then tails one or more
    files scanning for threat messages while following the basic channel
    rules.

    When it sees a ThreatNet::Message::IPv4-compatible message appear at the
    end of the file, it will report it to the channel (subject to the
    appropriate channel rules).

    Its main purpose is to make it as easy as possible to connect any system
    capable of writing a log file to ThreatNet. If an application can be
    configured or coded to spit out the appropriately formatted messages to
    a file, then "ammobot" will patiently watch for them and then haul them
    off to the channel for you (so you don't have to).

    It the data can be extracted from an existing file format, then a
    "Filter" property can be set which will specify a class to be used as a
    customer POE::Filter for the event stream.

METHODS
  new %args
    The isn't really any big reason that you would be wanting to instantiate
    a "ThreatNet::Bot::AmmoBot" yourself, but if it comes to that you do it
    by simply passing a list of the appropriate arguments to the "new"
    method.

      # Create the ammobot
      my $Bot = ThreatNet::Bot::AmmoBot->new( %args );
  
      # Run the ammobot
      $Bot->run;

  args
    The "args" accessor returns the argument hash.

  tails
    The "tails" accessor returns the "HASH" of "FollowTail" objects indexed
    by file name.

  running
    The "running" accessor returns true if the bot is currently running, or
    false if the bot has not yet started.

  Session
    Once the bot has started, the "Session" accessor provides direct access
    to the POE::Session object for the bot.

  files
    The "files" accessor returns a list of the files the bot is tailing (or
    will be tailing), or in scalar context returns the number of files.

  add_file $file [, Filter => $POEFilter ]
    Once you have created the Bot object, the "add_file" method is used to
    add the list of files that the bot will be tailing.

    It takes as argument a file name, followed by a number of key/value
    parameters.

    For the time being, the only available param is "Filter". The filter
    param provides a class name. The class will be loaded if needed, and
    then a new default object of it created and used as a custom POE::Filter
    for the file.

  run
    Once the bot has been created, and all of the files have been added, the
    "run" method is used to start the bot, and connect to the files and the
    IRC server.

    The method dies if the bot has not had any files added.

TO DO
    - Add support for additional outbound filters

SUPPORT
    All bugs should be filed via the bug tracker at

    <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=ThreatNet-Bot-AmmoBot>

    For other issues, or commercial enhancement and support, contact the
    author

AUTHORS
    Adam Kennedy (Maintainer), <http://ali.as/>, cpan@ali.as

SEE ALSO
    <http://ali.as/devel/threatnetwork.html>, POE

COPYRIGHT
    Copyright (c) 2005 Adam Kennedy. All rights reserved. This program is
    free software; you can redistribute it and/or modify it under the same
    terms as Perl itself.

    The full text of the license can be found in the LICENSE file included
    with this module.

