# Infobot 0.44.1

**Category:** Standalone_Bot
**Original Author:** Kevin Lenzo

## Description
Infobot is a standalone IRC bot that learns from declarative statements and responds to queries based on its database of factoids.

## Key Features
- Learns by observing "x is y" type statements.
- Responds to questions with "x is y".
- Maintains persistent state between shutdowns using DBM files.
- Supports private and public messaging.
- Can be configured via a `infobot.config` file.
- Includes various modules for different functionalities (e.g., weather, math, trivia).

## File Analysis
- **get_stuff.pl** — Processes tracking logs to update the database.
- **run_if_needed.pl** — Ensures Infobot runs as a background process.
- **track2fact.pl** — Converts tracking log files into factoid databases.
- **ANSI.pl** — Provides ANSI color codes for text formatting.
- **CTCP.pl** — Handles CTCP (Client-to-Client Protocol) requests and replies.
- **DBM.pl** — Manages database operations using DBM files.
- **DNS.pl** — Performs DNS lookups to resolve domain names.
- **Help.pl** — Provides help documentation for the bot's commands.
- **Internic.pl** — Retrieves information from Internic (NIC) servers.
- **Irc.pl** — Handles IRC protocol interactions and connections.
- **IrcExtras.pl** — Extends Irc functionality with additional features.
- **IrcHooks.pl** — Hooks into IRC events for custom processing.
- **Math.pl** — Performs basic math operations based on natural language input.
- **Misc.pl** — Manages miscellaneous utilities and text formatting.
- **NOAA.pl** — Fetches weather forecasts from NOAA.
- **Norm.pl** — Normalizes user inputs to improve matching accuracy.
- **Params.pl** — Loads configuration parameters from files.
- **Process.pl** — Processes incoming messages for factoid updates or queries.
- **Question.pl** — Handles question-based queries and responses.
- **Reply.pl** — Retrieves and formats replies based on the database.
- **Search.pl** — Allows users to search the bot's knowledge base.
- **Setup.pl** — Sets up the initial configuration of the bot.
- **Slashdot.pl** — Fetches Slashdot headlines for public display.
- **Speller.pl** — Provides spell checking and suggestions.
- **Statement.pl** — Handles statement-based updates to the database.
- **Traceroute.pl** — Performs traceroute queries.
- **Update.pl** — Updates the bot's knowledge base with new factoids.
- **User.pl** — Manages user permissions and configurations.
- **babel.pl** — Translates text using Babelfish.
- **insult.pl** — Sends random insults over Zephyr.
- **metar.pl** — Fetches METAR aviation weather reports.
- **myRoutines.pl** — User-defined routines for extending bot functionality.
- **nickometer.pl** — Evaluates nicknames based on a scoring system.
- **README** — Documentation for the latest version of Infobot.
- **README.scripts** — Instructions for creating and dumping databases.
- **infobot** — The main script to run the infobot.
- **how_to_fix_files_uploaded_from_windows_to_unix.txt** — Guide for fixing files uploaded from Windows.
- **infobot_guide.html** — HTML guide for using Infobot.
- **infobot-are.txt, infobot-is.txt** — Factoid databases.
- **infobot.config** — Configuration settings for the bot.
- **infobot.crontab** — Cron job to run the infobot at regular intervals.
- **infobot.help** — Documentation on how to interact with Infobot.
- **infobot.users** — User permissions and configurations.
- **sane-ignore.txt, sane-is.txt** — Example ignore and is files for factoids.
- **curl** — Utility script for interacting with the bot's databases.
- **dump_db** — Script to dump database contents to a flat file.
- **makepasswd** — Utility to generate password hashes.
- **unupdate_dbs** — Script to undo updates in log files.
- **update_db** — Script to update databases from text files.
- **Zephyr_README** — Documentation for Zephyr-specific bits.
- **airport.txt, areacodes.txt** — Geographical data used by the bot.