User:Neustradamus/Darkbot

Darkbot is a very fast, lightweight and flexible infobot type IRC bot written in C and distributed under the GNU General Public License. It has a small memory footprint and runs under Unix or the Windows operating system. It is easy to configure and uses factoids to automatically respond to users' questions with almost human-like conversations and reactions.

Development History
Darkbot was originally created by Jason Hamilton to answer repeated questions as an aid for help channels. The current version of Darkbot has its roots in darkbot 2 which was created by Jason in March 1998.

Database
Darkbot supports a virtually unlimited database and is able to give straight or random answers to keywords or phrases in human style.

It allows for wildcards within topics and triggers and supports several flexible predefined variables that can be inserted into replies.

Darkbot can pick words from users and display them in its replies with a tokenized mechanism and can respond with more than one line of text or commands at a time.

Data can be added and managed dynamically online via commands or the database files can be modified offline.

Darkbot features a fast internal search engine allowing for database word searches.

Languages
Darkbot supports the following languages:

Arabic, Chinese, Dutch, English, French, German, Greek, Italian, Latin, Norwegian, Portuguese, Romanian, Russian (KOI8 and CP1251 encodings), Spanish, Swedish

It also supports Pig Latin and Ebonics.

Commands
Darkbot has dozens easy to use commands to control functions of bot administration, database management, channel operation, user access, utilities, and status information. It also features some channel operation functions and levels of protection.

Administration commands are available to change the bot's nickname, user id, virtual host, default channel and its command character prefix. Other commands allow changing servers, restarting its session, deactivation, or putting it into a sleep mode to temporarily keep it from reacting to channel text. It also has a command to send raw messages or notices to the server, channels or users.

Channel operation commands can be used to op, deop, simulate op, voice, devoice, kick, place bans and temporary bans. Commands can also be used to make the bot join, part and cycle channels, set the channel topic and auto-topic, return channel information, and display the total number of users the bot has seen join the channel.

User access commands are available to add, delete and list users, and allow users to login or change their password. Other commands allow setting the bot to greet registered users on join and allow for checking a user's idle time, mask, or last seen time.

Status information commands can be used to display the memory usage, database uptime, and other information

Extras
Darkbot features a number of handy utilities like an alarm clock, calculator, date and time display, Unix time calculation, ping, and a way to check the length of words or phrases.

Raw IRC commands can be issued to the server on connect giving the possibility to automatically perform tasks like many IRC client programs.

Darkbot also supports standard CTCP ping and version replies.

Many more options and functions can be changed via the configuration scripts.

Support
Support for Darkbot is available via the Darkbot website or via IRC in #darkbot on Undernet.