# Infobot 0.43.2

**Category:** Standalone_Bot
**Original Author:** Kevin Lenzo & Patrick Cole

## Description
Infobot is a standalone IRC bot that learns from declarative statements and provides information in response to queries. It runs unattended, processes commands, and updates its knowledge base.

## Key Features
- Processes `is` and `are` statements to update the database.
- Responds to user queries with stored information.
- Manages a database of key-value pairs for quick lookups.
- Supports CTCP and DCC functionalities.
- Tracks and logs interactions for debugging and maintenance purposes.
- Includes various modules for different functionalities like math, traceroute, and DNS lookup.

## File Analysis
- **get_stuff.pl** — Extracts and processes `track` files to update the database.
- **run_if_needed.pl** — Manages bot process lifecycle, ensuring it runs if not already running.
- **track2fact.pl** — Converts tracking logs into a format suitable for database updates.
- **ANSI.pl** — Handles ANSI color codes for text formatting.
- **CTCP.pl** — Processes CTCP requests and replies.
- **DBM.pl** — Manages database operations using DBM files.
- **DNS.pl** — Performs DNS lookups and caches results.
- **Help.pl** — Provides help documentation based on a configuration file.
- **Internic.pl** — Summarizes information from Internic domain records.
- **Irc.pl** — Handles IRC protocol interactions, including channel joining and message processing.
- **IrcExtras.pl** — Extends Irc functionality with additional features like timer handling.
- **IrcHooks.pl** — Hooks into IRC events to process messages and actions.
- **Math.pl** — Performs simple mathematical calculations.
- **Misc.pl** — Manages miscellaneous functions including logging and message formatting.
- **Norm.pl** — Normalizes user input for better processing.
- **Params.pl** — Loads and manages configuration parameters.
- **Process.pl** — Processes incoming IRC messages, determining their type and handling them appropriately.
- **Question.pl** — Handles question-based queries.
- **Reply.pl** — Generates responses based on the database content.
- **Search.pl** — Allows users to search for specific patterns in the database.
- **Setup.pl** — Sets up initial configurations and variables.
- **Statement.pl** — Processes statements that update the database.
- **Traceroute.pl** — Performs traceroute requests.
- **Update.pl** — Updates the database with new information from statements.
- **User.pl** — Manages user permissions and flags.
- **myRoutines.pl** — Extends bot functionality through custom routines.
- **nickometer.pl** — Evaluates nicknames for quality.
- **Zephyr.pl** — Hooks into Zephyr messaging system.
- **ZephyrExtras.pl** — Additional features for the Zephyr version.
- **ZephyrHooks.pl** — Hooks into Zephyr events to process messages and actions.