# Infobot 0.43.6

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

## Description
Infobot is a standalone IRC bot that learns facts from declarative statements and responds to queries based on those facts.

## Key Features
- Learns facts by processing `.is` and `.are` files.
- Responds to queries with learned facts.
- Manages user interactions through commands like `+o`, `+r`, and `+u`.
- Tracks seen times of users.
- Supports plusplus (karma) system for tracking positive or negative interactions.

## File Analysis
- **get_stuff.pl** — Processes `.track` files to extract and update facts.
- **run_if_needed.pl** — Ensures the bot runs if not already running.
- **track2fact.pl** — Converts a tracking file into fact files.
- **ANSI.pl** — Provides ANSI color codes for text formatting.
- **CTCP.pl** — Handles CTCP (Client-to-Client Protocol) requests.
- **DBM.pl** — Manages database operations using DBM files.
- **DNS.pl** — Queries DNS to resolve IP addresses and domain names.
- **Help.pl** — Provides help documentation based on a configuration file.
- **Internic.pl** — Summarizes information from the Internic database.
- **Irc.pl** — Handles IRC protocol interactions, including connecting to servers.
- **IrcExtras.pl** — Extends Irc functionality with additional hooks and timers.
- **IrcHooks.pl** — Hooks for handling IRC messages and actions.
- **Math.pl** — Performs basic math operations based on user input.
- **Misc.pl** — Manages miscellaneous functions like logging and message formatting.
- **NOAA.pl** — Fetches weather forecasts from NOAA.
- **Norm.pl** — Normalizes user queries to improve matching accuracy.
- **Params.pl** — Loads and manages parameter files for the bot.
- **Process.pl** — Processes incoming IRC messages.
- **Question.pl** — Handles question-based interactions.
- **Reply.pl** — Generates responses based on learned facts.
- **Search.pl** — Allows users to search through stored facts.
- **Setup.pl** — Sets up the bot with initial parameters and configurations.
- **Speller.pl** — Provides spell checking functionality.
- **Statement.pl** — Handles statement-based interactions.
- **Traceroute.pl** — Performs traceroute queries.
- **Update.pl** — Updates database entries based on user input.
- **User.pl** — Manages user-specific configurations and permissions.
- **metar.pl** — Fetches METAR aviation weather reports.
- **myRoutines.pl** — User-defined routines for extending the bot's functionality.
- **nickometer.pl** — Evaluates nicknames for "lame" or "cool" attributes.
- **README** — Instructions for updating configuration files and running the bot.
- **README.scripts** — Scripts for database management.
- **IMPORTANT:_read_REVISIONS_and_infobot.html** — Important notes on changes in the latest version.
- **REVISIONS** — Log of changes from previous versions.
- **infobot** — The main script that runs the infobot.
- **infobot_guide.html** — User guide for interacting with the bot.
- **infobot-are.txt** — Database file containing facts ending with "are".
- **infobot-is.txt** — Database file containing facts ending with "is".
- **infobot.config** — Configuration settings for the infobot.
- **infobot.config~** — Backup or previous version of the configuration file.
- **infobot.crontab** — Cron job to run the bot at regular intervals.
- **infobot.help** — Documentation on interacting with the bot.
- **infobot.users** — User permissions and configurations.
- **sane-are.txt**, **sane-is.txt** — Example database files for testing.
- **curl** — Script for responding to queries from a command-line interface.
- **dump_db** — Script to dump database contents into flat files.
- **makepasswd** — Script to generate password hashes.
- **unupdate_dbs** — Script to undo updates in the bot's log file.
- **update_db** — Script to update the database with new facts.