DarkBot

http://www.darkbot.org/mambo/

Runs on Windows and Unix, Low memory usage, Small size program and easy to configure.

Multi-lingual - English, French, Spanish, Dutch, Latin, Arabic, Greek, Ebonics, Pig Latin, Russian- KOI8 encoding, Russian - CP1251 encoding, Portuguese, German, Italian, Chinese, Swedish, Norwegian, Romanian.

Dozens of commands and aliases, controlling functions of Darkbot Administration, Database Management, Channel Operation, User Access, Utilities, Status and Information.

Robot administration with commands to change online Darkbot's nickname, user id, virtual host, default channel and it's command character prefix; change servers, restart session or deactivate it; a sleep mode to temporarily stop reacting to channel text; it also has a command to send raw messages or notices to the server, channels or users.

Database controlled online or/and offline with dozens of commands making it possible to give strait or random answers to key-words or phrases, in human style, picking words from users and displaying them in the replies with a tokenized mechanism, output of replies with more than one line of text, or commands at a time; management of it's database with functions to add, delete, replace, display and backup topics/replies; use of wildcards on it's topics; several pre-defined but flexible variables that can be inserted on replies; a fast internal search engine permitting look for words in the database.

Commands ABOUT ACCESS ADD ADDUSER ALARM ALARMCLOCK AUTOTOPIC BACKUP BAN BANLIST CALC CHANINFO CMDCHAR? CYC CYCLE DATASEARCH DATE DEL DELBAN DELETE DELUSER DEOP DEV DEVOICE 	DFIND DIE DISPLAY DOWN DSEARCH DV DVOICE FIND FORGET HELP HLIST HUSH IDLE ILC INFO INFO2 J JOIN JOINS? JUMP K KICK L LANG 	LANGUAGE LEAVE LENGTH LOCATE LOCATION? LOGIN LOOK MASK MATH MEM N NAIL NICK OP OS P PART PASS PASSWD PASSWORD PERMBAN PERMBANS? PING QUE? QUIT RAM 	RAM? RANDOMSTUFF RANDOMSTUFF? RANDSTUFF RANDSTUFF? RAW RDB REHASH REMEMBER REMOVE REPEAT REPLACE RESTART SAVE SEARCH SEEN SENDQ? SERVER SETCHAN SETCHAR SETINFO SETNICK SETUSER SHITLIST 	SLEEP STORE T TEASEOP TELL TEMPBAN TIME TIMER TO TOPIC UNIXTIME UP UPTIME USERLIST V VARIABLES VHOST VOICE WACK WAKEUP WHAT WHERE WHO

Administration Nickname Change 	[3] Changes for seconds Darkbot's current nickname to the one specified. Command 	N | NICK Syntax 	!NICK Example 	BotUser: !nick test123 -DB- Attempting to /nick test123 Related Messages 	(if the user is not registered, logged in or type Darkbot's command character by mistake): -DB- Try /nick Nick-dork.
 * DB is now known as test123
 * test123 is now known as DB

(if no nick is specified): -DB- Specify a nick! See also: Set Nickname

top
Quit IRC 	[3] Makes Darkbot log off IRC and shut down. Command 	DIE | QUIT Syntax 	!DIE Example 	(with default reason): BotUser: !die
 * Quits: DB (Killed (BotUser (cause I say so!)))

(with reason): BotUser: !die hard Obs. 'cause I say so' is the default reason. You can specify yours instead of that one See also: Restart Session
 * Quits: DB (Killed (BotUser (hard)))

top
Raw Input 	[3] Instructs Darkbot to send raw information directly to the server. You can use !raw privmsg #channel or nick and !raw notice #channel or nick followed by :text Command 	RAW Syntax 	!RAW Example 	BotUser: !raw privmsg #darkbot :I'm a help robot DB: I'm a help robot

BotUser: !raw notice #darkbot :test -DB:#darkbot- test

top
Repeat Data 	[3] Repeats a given raw input command a number of times with a delay. Command 	REPEAT | TIMER Syntax 	!REPEAT   <:data> Example 	BotUser: !repeat 3 1 privmsg #darkbot :test DB: test DB: test DB: test Related Messages 	(if no parameters are specified): -DB- Syntax: REPEAT  See also: Raw Input

top
Restart Session 	[3] Restarts Darkbot with any changes saved to the configuration. Command 	REHASH | RESTART Syntax 	!RESTART Example 	BotUser: !restart See also: Quit IRC
 * Quits: DB (Restarting Darkbot6f6 ...)
 * Joins: DB

top
Server Jump 	[3] Makes Darkbot switch to another IRC server. Command 	JUMP | SERVER Syntax 	!SERVER  [port] Example 	BotUser: !jump irc.superchat.org Related Messages 	(if no parameter set): -DB- Syntax: JUMP [port] Obs. if no port is specified DB defaults to 6667
 * Quits: DB (Jumping to irc.superchat.org:6667)
 * Joins: DB

top
Set Channel 	[3] Sets the Darkbot's default channel. Command 	SETCHAN Syntax 	!SETCHAN <#channel> Example 	BotUser: !setchan #darkbot -DB- Default channel: #darkbot Related Messages 	(if no parameter set): -DB- Syntax: SETCHAN

top
Set Command Character 	[3] Sets Darkbot's command character (by default, it is "!"). Command 	SETCHAR Syntax 	!SETCHAR  Example 	BotUser: !setchar > -DB- New command char now: > Related Messages 	(if no parameter set): -DB- Syntax: SETCHAR

top
Set Nickname 	[3] Changes Darkbot's default nick to the new one specified Command 	SETNICK Syntax 	!SETNICK  Example 	BotUser: !setnick HelpBot Related Messages 	(if no parameter set): -DB- Syntax: SETNICK
 * is now known as HelpBot

top
Set UserID 	[3] Changes Darkbot's userid. Command 	SETUSER Syntax 	!SETUSER Example 	!setuser botident -DB- Default userid now: botident Related Messages 	(if no parameter set): -DB- Syntax: SETUSER Obs. requires a restart

top
Set Vhost 	[3] Changes Darkbot's virtual host. Command 	VHOST Syntax 	!VHOST  Example 	!Vhost VirtualHost.com -DB- Default Vhost now: VirtualHost.com Related Messages 	(if no parameter set): -DB- Syntax: !VHOST  Obs. requires a restart

top
Sleep (deactivate) 	[3] Prevents Darkbot from listening to topic queries or commands for 120 seconds (default). Command 	SLEEP | HUSH Syntax 	 SLEEP Example 	BotUser: DB sleep Related Procedures 	Check defines.h file [#define SLEEP_LEVEL] if you want to change the level at which user's can make Darkbot shut up (aka hush) (default is 3) Modify [#define SLEEP_TIME 400] if you want to change the default sleep time from the default 400 seconds Modify [#define GOSLEEP_ACTION "1ACTION falls asleep... ZzzZZzzZZzz1"] if you want to change the default message for SLEEP. Obs. This command is useful for help channels when is necessary to make Darkbot stop 'talking' while something important is being addressed in the chan. See also: Wakeup
 * DB falls asleep... ZzzZZzzZZzz

top
Wake Up (reactivate) 	[3] Reactivates Darkbot after being in sleep mode. Command 	WAKEUP Syntax 	 WAKEUP Example 	BotUser: DB wakeup Related Procedures 	Check defines.h file [#define WAKEUP_ACTION "1ACTION wakes up from a snooze..1"] if you want to modify the default message for wake up. See also: Sleep (deactivate)
 * DB wakes up from a snooze.

top
Database Management Adding Random Stuff 	[2] Adds a string of text to be randomly displayed in the channel Command 	RANDOMSTUFF | RANDSTUFF Syntax 	 RANDOMSTUFF Example 	BotUser: DB randomstuff test123 DB: BotUser, done. There are now 128 randomstuffs. Related Messages 	(if no randomstuff is added): BotUser, what do you want to add? Related Procedures 	Check defines.h file [#define RANDOM_STUFF] if you want to enable or disable RANDOM_STUFF If you want to change the required access level at which user's can on-line add Random Stuff (default is 2) change in [#define RAND_LEVEL 2] To define the time in seconds you want Darkbot to say something in home channel when no one says anything modify [#define RAND_IDLE] (this will override the RAND_STUFF_TIME counter (default is 10 min).

top
Add Topic Reply 	[1] Adds a topic and corresponding reply to Darkbot's database. Command 	ADD | REMEMBER | SAVE | STORE simple topic/reply Syntax 	 ADD Example 	: DB add test This is a simple topic and reply : Okay : DB, test : BotUser, This is a simple topic and reply multiple word topic uses '+' as words separator Syntax 	<DB> ADD <topic+topic> Example 	<BotUser>: DB add word1+word2 This is a multiple word topic test <DB>: Okay <BotUser>: DB, word1 word2 <DB>: BotUser, This is a multiple word topic test Topic with wildcards uses '?' to substitute 1 character and '*' for anything in that place of the word or phrase Syntax 	<DB> ADD <topic|*|?> Example 	<BotUser>: DB add wil?card This is a wildcard topic example using ? <DB>: Okay <BotUser>: DB, wildcard <DB>: BotUser, This is a wildcard topic test using ?

<BotUser>: DB add *wildcard This is a wildcard topic example using * <DB>: Okay <BotUser>: DB, show me wildcard <DB>: BotUser, This is a wildcard topic example using * reply with variables uses Darkbot's data variables Syntax 	<DB> ADD <data-N~|C~|T~|B~|Q~|R~|!~|S~|P~|V~|W~| H~|h~|t~|BAN|TEMPBAN> Example 	<BotUser>: DB add variables Hi N~, welcome to C~. I'm glad you asked now (T~) about "Q~" as R~ witnessed. I can tell you that I'm running V~ on server S~, port P~ and you can learn how this can be done at W~ or by typing !~Q~ and me, B~, will display Q~ <DB>: Okay <BotUser>: DB, variables <DB>: Hi BotUser, welcome to #darkbot. I'm glad you asked now (Sun Jul 1 02:41:56 2001) about "variables" as UserABC witnessed. I can tell you that I'm running Darkbot 6.f.6 on server irc.superchat.org, port 6667 and you can learn how this can be done at http://darkbot.org or by typing !variables and DB will display variables action reply uses a '+' right before the reply Syntax 	<DB> ADD <+> Example 	<BotUser>: DB add test +reply with an action <DB>: Okay <BotUser>: DB, test user's action reply uses '?action' right before the topic and '?' or '*' right after the topic to match on those places regular IRC CTCP action sufix and prefix Syntax 	<DB> ADD <?> <?|*> Example 	<BotUser>: DB add ?action+test? topic must start with ?action+ and finish with a wildcard (* or ?) <DB>: Okay <DB>: BotUser, topic must start with ?action+ and finish with a wildcard (* or ?) raw IRC commands reply uses raw IRC commands PRIVMSG, NOTICE, TOPIC, KICK, BAN and MODE prefixed by "-" Syntax 	<DB> ADD <-><Raw IRC command> <N~ | C~> <:> Example 	(full examples/replies are not shown here, so add the instructions and try yourself)
 * DB reply with an action
 * BotUser test

<BotUser>: DB add test -PRIVMSG N~ :this is a reply using prefix '-' and IRC command PRIVMSG which sends a private message to the user

<BotUser>: DB add test -NOTICE C~ :this is a reply using prefix '-' and IRC command NOTICE which sends a notice to all users in the channel

<BotUser>: DB add test -TOPIC C~ :this is a reply using prefix '-' and IRC command TOPIC which changes channel's topic

<BotUser>: DB add test -KICK C~ N~ :this is a reply using prefix '-' and IRC command KICK which applies a kick to the user on the channel

<BotUser>: DB add test -BAN C~ N~ :this is a reply using prefix '-' and IRC command BAN which applies a ban to the user on the channel

<BotUser>: DB add test -MODE C~ :+tn (this is a reply using prefix '-' and IRC command MODE which changes channel's modes - needs to be defined in defines.h) (DO NOT USE THIS COMMAND. Not active) PRIVMSG data reply as action uses $char(01) right before ACTION. To do _ type a space followed by $chr(01) and press key TAB - delete the space afterwards Syntax 	<DB> ADD <-><PRIVMSG> <N~ | C~> <$chr(01)><ACTION> Example 	<BotUser>: DB add test -PRIVMSG C~ :.ACTION (to do the code before ACTION type a space followed by $chr(01) and press TAB. Delete the space afterwards) multiple replies uses '|' (pipe) to separate multiple instructions of raw IRC commands PRIVMSG, NOTICE, TOPIC, KICK and MODE. First instruction must be prefixed by "-" Syntax 	<DB> ADD <-><Raw IRC command> <N~|C~> <:> <|> <Raw IRC Command> <N~|C~> <:> Example 	<BotUser>: DB add test -PRIVMSG C~ :1st line needs '-' before the redirection command | PRIVMSG C~ :line2 <DB>: Okay <BotUser>: test Related Messages 	(if no topic is added): DB: Add what, BotUser?

(if no reply is added): DB: BotUser: What info to be added for test1?

(if already exists an entry for the topic): DB: Sorry, there is an existing entry under keyword test1

(if there is an error opening info2): DB: Unable to open dat/info2.db :( Related Procedures 	Check defines.h file [#define REQ_ACCESS_ADD] if you want to change the required user access level to add help topics (default is 1) The max length of each reply in info2.db (default is 400 characters) can be changed in darkboc.c [#define MAX_DATA_SIZE 400] (if you are loading your data from ram and the replies are all less than 400 chars you can save some ram). You can also change the max topic length in [#define MAX_TOPIC_SIZE] (default is 50 characters); Modify [#define EXISTING_ENTRY "Sorry, there is an existing entry under keyword"] if you want to change the default message for existing entries in topics. See also: Replace Reply - Recall Topic - Delete Topic/Reply - variables

top
Add Tokenized Replies 	[1] It's a function that makes Darkbot to pick a word out of a phrase by it's corresponding string number. Command 	basically the same commands for adding topics ADD | REMEMBER | SAVE | STORE and tokens 1~ 2~ 3~... Syntax 	<DB> ADD Example 	BotUser: DB ADD darkbot* 3~ 4~ 2~ 1~ DB: Okay, BotUser :) UserABC: Darkbot is the best

DB: the best is darkbot BotUser: DB ADD give+me+* +gives N~ 3~ big 4~ DB: Okay, BotUser :) UserABC: give me a kiss
 * DB gives UserABC a big kiss

top
Backup Database 	[3] Backs up the Darkbot database (dat/info2.db file). Command 	BACKUP Syntax 	!BACKUP Example 	BotUser: !backup DB: Backed up database. Obs. Execute this command regularly so you have a copy of your topics in case of any data loss

top
Delete Topic/Reply 	[1] Deletes a topic that has been stored in Darkbot's database. Command 	DEL | DELETE | FORGET | REMOVE Syntax 	<DB> DELETE Example 	BotUser: DB delete test123 DB: BotUser: I have deleted topic #2, test123. Related Messages 	if there is no topic test123 the answer will be: DB: BotUser: I was unable to find the topic test123. Delete failed. Related Procedures 	Check defines.h file [#define REQ_ACCESS_DEL] if you want to change the required user access level to delete help topics (default is 1) Modify [#define CANT_FIND "Was unable to find"] if you want to change the default unable to find message. See also: Display Topic Syntax - Replace Reply

top
Display Topic Syntax 	[0] Displays the syntax of a topic's reply; also, will tell what file is being linked to when done with Random Topic's Replies commands Command 	DISPLAY Syntax 	<DB>DISPLAY Example 	BotUser: DB display sup DB: Raw data for sup is: ~sup

BotUser: DB display test123 DB: Raw data for test123 is: 123 Obs. This command is useful when you have a similar topic such as "hi" and "hello", you don't want to waste time by making two rdb files for each, just ask Darkbot what it's using for one, and link it in the other.

top
ILC 	[1] ILC = Is Lamer Channel. This function is implemented to give channel helpers, operators or IRC operators a way of having a quick and brief background information about a given channel, as well as the date and mask of who wrote it. (Check Obs.) Command 	ILC Syntax 	<DB> <ADD|REMEMBER|SAVE|STORE> <ILC><+>[#] Example 	BotUser: DB add ilc+#channelABC known for spamming bots. DB: Okay BotUser :) UserABC: ILC #channelABC DB: UserABC, ([Thu Sep 13 08:47:40 2001] BotUser!ident@host.domain.org): known for spamming bots. Related Messages 	(if there is no ILC in Darkbot's database): 'DB: BotUser, I found no matching ILC for that channel.' Obs. 	As more people is using Darkbot for purposes other than a robot to support general help channels, some commands can be adapted to accomplish different tasks without the need of changing the code. It's a matter of BotUser's imagination. For instance, because you can perform ILC without '#' prefix, you can register information about users; rename in your mind ILC's acronym for Identity Lamer Check and add user information instead of channel.

Example: BotUser: DB ADD ILC+UserABC UserXYZ did a mass flood to #mychannel DB: Okay BotUser :) UserABC: ILC UserXYZ DB: UserABC, ([Thu Sep 13 08:47:40 2001] BotUser!ident@host.domain.org): UserXYZ did a mass flood to #mychannel

top
Random Topic/Replies 	[2] (RANDOMFILE commands) Adds topics that give random replies. These topics start with ~. Command 	basically the same commands for managing single topics and randomstuffs plus rdb status commands. Explanation 	How it works? Lets say instead of having only one reply for each keyword (topic) you want to have several ones. For instance, you want DB to randomly reply to 'hi" with 'Hi Nick ;)', 'Hello Nick ;)' and 'Hey Nick ;)'. First is necessary to create a topic with the correspondent link to the rdb file. Ex: DB add hi ~hi. (DB adds an entry 'hi ~hi' to dat/info2.db and creates a file hi.rdb in /dat directory). Next you need to add random replies. Ex: 'DB randstuff ~hi Hi N~ ;)', 'DB randstuff ~hi Hello N~ ;)' and 'DB randstuff ~hi Hey N~ ;)'. (DB will add those entries in hi.rdb). When someone writes 'Hi', DB will read from dat/info2.db which file is linked to 'Hi' (hi ~hi = hi.rdb), picks randomly one of the 3 entries from hi.rdb and displays it to the user. You can link more topics to the same random reply file, display, delete and see status of rdb files..	To add random topic/files	Commands 	ADD | REMEMBER | SAVE | STORE	Syntax 	<DB> ADD <random_topic> <~random_link_entry)	Example 	BotUser: DB add hi ~hi DB: Okay, BotUser :)	Related Messages 	-(if there are no replies set for that topic): DB: Sorry, I cannot answer that topic because DB random text file (rdb) "dat/hi.rdb" was not found.	To add random replies	Commands 	RANDSTUFF | RANDOMSTUFF	Syntax 	<DB> RANDSTUFF <~random_link_entry> 	Example 	BotUser: DB randstuff ~hi Hi N~ ;) DB: Done, there is 1 topic under dat/hi.rdb

BotUser: DB randstuff ~hi Hello N~ ;) DB: BotUser, done. There are now 2 randomstuffs

BotUser: DB randstuff ~hi Hey N~ ;) DB: BotUser, done. There are now 3 randomstuffs.

(now DB replies randomly (Hi N~, Hello N~ and Hey N~) to hi) To link more topics to random file Commands 	ADD | REMEMBER | SAVE | STORE Syntax 	<DB> ADD <random_topic> <~random_link_entry> Example 	BotUser: DB add hello ~hi DB: Okay, BotUser :) (now DB uses the same reply of ~hi to hello)	To delete random files	Commands 	DELETE | REMOVE | FORGET | DEL	Syntax 	<DB> DELETE <~random_link_entry>	Example 	BotUser: DB del ~hi DB: I have unlinked dat/hi.rdb.	Related Messages 	(if the file doesn't exist): DB: BotUser, hi.rdb does not exist.	Obs. 	This command only removes the dat/*.rdb file. You might want to delete also the corresponding topics-links from dat/info2.db (in this case 'hi' and 'hello'). If not, users will get the error message "Sorry, I cannot answer that topic because DB random text file (rdb) "dat/hi.rdb" was not found".	To display random (rdb) files -- Informs witch file is being linked to the topic. This command is useful if you have a similar topic an don't want to waste time by making two rdb files for each one. Ask Darkbot what is using for one and link it in the other.	Commands 	DISPLAY	Syntax 	<DB> DISPLAY <random_topic> Example 	BotUser: DB display hi DB: Raw data for sup is: ~hi

BotUser: DB display hello DB: Raw data for hello is: ~hi Related Messages 	(if there is no topic associated with the query): DB: BotUser, I do not know of any topic named hi. To inform the number of rdb files in database Commands 	RDB Syntax 	<DB> RDB Example 	BotUser: DB rdb DB: 1 1 11 (number of files = 1 = ~hi) To inform rdb file's creation date and author as well as linked rdb file Commands 	Command: RDB Syntax 	<DB> RDB <random_topic> Example 	BotUser: DB rdb hi DB: -rw-rw-r-- 1 botuser botuser 33 Nov 29 00:06 dat/hi.rdb Related Messages 	(if the syntax is not correct): DB: BotUser, rdb files are made up of letters and or numbers, no other text is accepted.' Related Procedures 	Check defines.h file [#define RAND_LEVEL 2] if you want to change the required access level at which user's can on-line add Random Topic Replies (default is 2) See also: Add Topic/Reply - Delete Topic/Reply - Display Topic Syntax

top
Recall Topic 	[0] Displays an entry stored in Darkbot's database. This is not really a command but the main objective of Darkbot - the ability to reply to any channel text if that text is matched by any of the topics (keywords) stored in it's database. Syntax 	<DB> or (if GENERAL_QUESTIONS is enabled) Example 	BotUser: DB, test123 DB: BotUser: 123

(if GENERAL_QUESTIONS is enabled) BotUser: test123 DB: BotUser, 123 Related Messages 	(if Darkbot's nick is mentioned but no topic specified): DB: hmmm?

(if Darkbot don't have a reply for the query) DB: BotUser, *shrug* Related Procedures 	Check defines.h file [#define GENERAL_QUESTIONS] if you want Darkbot to answer questions only whenDarkbot nick is specified before the topic (not recommended) (it's enabled by default) Modify [#define WHUT "hmmm?"] and [#define DONNO_Q "*shrug*"] if you want to change those default messages. Obs. Darkbot can be triggered when addressed in the following formats: DB, DB: DB: and DB .... See also: Recall Topic Human Style

top
Recall Topic human style 	[0] Triggers Darkbot with an interrogative human style sentence that begins with an interrogative adverb or pronoun (presently who, what, where) followed by any transitory word (usually a verb) and a topic Command 	WHO | WHAT | WHERE Syntax 	<DB> < WHAT | WHERE | WHO > <any_transitory_word> Example 	BotUser: DB, who is test123 DB: Last I heard, 123

BotUser: DB what is test123 DB: BotUser: rumor has it, 123

BotUser: DB, where is test123 DB: BotUser heh, 123 Obs. The use of the transitory word is mandatory See also: Recall Topic

top
Replace Reply 	[0] Replaces a topic's reply to Darkbot's database Command 	REPLACE Syntax 	<DB> REPLACE <new_reply> Example 	...first add a topic ... BotUser: DB add test123 123 DB: Okay, BotUser :) ... BotUser: DB replace test123 123456 DB: BotUser: I have deleted topic #7, test123. DB: BotUser, test123 has been updated. ... now topic test123 replies 123456 instead of 123 Related Messages 	(if topic not found): DB: I was unable to find entry: test123 Related Procedures 	Check defines.h file [#define NO_ENTRY "I was unable to find entry:"] if you want to modify the default message for no entry found.in topics. See also: Add Topic - Display Topic Syntax - Delete Topic

top
Search in Topics 	[0] Searches Darkbot's database for any replies that matches the string you enter. Command 	FIND | LOOK | SEARCH Syntax 	<DB> SEARCH Example 	BotUser: DB search darkbot DB: I found one match, BotUser: darkbot Related Messages 	-(if no itens found): DB: Sorry, I don't have any entry for item_searched.. ## entries searched.

-(if more than ## matches): DB: Found more than ## matches, please narrow down your search: (followed by the fist ## matched topics)

-(if no search string specified when used SEARCH): DB: What should i be searching for, BotUser?;

-(if no search string specified when used FIND): DB: What am I trying to find, BotUser? Related Procedures 	Check defines.h file [#define NO_TOPIC "Sorry, I don't have any entry for"] if you want to modify the default message for no entry found in replies and topics. Modify [#define TRY_FIND "What am I trying to find"] if you want to change default message for no entry found in replies and topics when command FIND is used.. See also: Search in Replies

top
Search in Replies 	[0] Searches Darkbot's database for any topics that matches the string you enter. Command 	DATASEARCH | DSEARCH | DFIND Syntax 	<DB> DSEARCH Example 	BotUser: DB dsearch darkbot DB: I found one match, BotUser: darkbot Related Messages 	-(if no itens found): DB: Sorry, I don't have any entry for item_searched.. ## entries searched.

-(if more than ## matches): DB: Found more than ## matches, please narrow down your search: (followed by the fist ## matched topics)

-(if no search string specified): DB: What should i be dsearching for, BotUser? Related Procedures 	Check defines.h file [#define NO_TOPIC "Sorry, I don't have any entry for"] if you want to modify the default message for no entry found in topics and replies. See also: Search in Topics

top
Tell User 	[0] Displays a topic in reference to the person specified Command 	TELL and [ABOUT] Syntax 	<DB> TELL [ABOUT] Example 	BotUser: DB tell UserABC about Darkbot DB: UserABC: Information about darkbot can be obtained at http://darkbot.net Related Messages 	-(if missing user and topic): BotUser: DB tell DB: Tell who, BotUser?

-(if missing topic): BotUser: DB tell UserABC DB: BotUser: What do you want me to tell UserABC?

-(if missing topic): BotUser: DB tell UserABC about DB: BotUser, Tell user about what? Obs. transition word ABOUT is facultative See also: Recall Topic

top
Variables 	[0] Displays a list of variables to use with Darkbot. Command 	VARIABLES Syntax 	!VARIABLES Example 	BotUser: !variables DB: BotUser, data variables are: N~ (Nick), C~ (Chan), T~ (Time/date) B~ (Botnick), Q~ (Question asked), R~ (random nick), !~ (command char), S~ (current Server), P~ (current port) V~ (botVer), W~ (db WWW site), H~ (u@h), h~ (user's u@h without the suffix ~ if present), t~ (unixtime), BAN (sets a ban), TEMPBAN (bans for 60 sec) See also: Add Randomstuff - Random Topic/Replies - Add Topic/Reply

top
Channel Operation BAN 	[2] IRC raw command permitting to ban users from the channel. Command 	BAN Syntax 	<DB> <ADD> <-><PRIVMSG> <C~> :text | BAN Example 	BotUser: DB add ban+me -PRIVMSG C~ :okay N~. | BAN Obs. It takes no parameters. Just "BAN" (all caps). The topic must be a raw one (starts with a - prefix). A kickban can be done using this syntax: BotUser: DB add kickban+me -KICK C~ N~ :get out! | BAN See also: Permban User - Delete Permban - Ban List - TEMPBAN

top
Ban List 	[1] Lists permbans in Darkbot's database. Command 	BANLIST Syntax 	!BANLIST Example 	BotUser: !banlist -DB- *@poste*.ulaval.ca:0 -DB- End of PERMBAN list; 1 ban found.

(if ban list is empty) -DB- End of PERMBAN list; 0 bans found. See also: Permban User - Delete Permban - BAN - TEMPBAN

top
Channel Autotopic 	[3] Automatically cycles channel's topic every 30 minutes. To turn autotopic off, use "0" (zero) in place of the topic. Command 	AUTOTOPIC Syntax 	!AUTOTOPIC Example 	BotUser: !autotopic This is a test topic -DB- AUTOTOPIC @ #channel ON: This is a test topic

BotUser: !autotopic 0 -DB- Autotopic on #darkbot is now OFF Related Messages 	-(if no parameters are specified): -DB- SYNTAX: !AUTOTOPIC (set to "0" to turn off) Related Procedures 	Check defines.h file [#define AUTOTOPIC_TIME 1800] if you want to change the time interval in the cycle (default is 30 min) Obs. DB needs to be +op

top
Channel Information 	[0] Displays users totals in channel and slots allocated in ram. Command 	CHANINFO Syntax 	!CHANINFO Example 	BotUser: !chaninfo DB: BotUser, I see 2 users in #darkbot (2 user slots allocated in ram)

top
Channel Topic 	[2] Changes channel's topic Command 	T | TOPIC Syntax 	!TOPIC Example 	BotUser: !topic For help visit Darkbot page at http://darkbot.org Obs. DB needs to be +op See also: Channel Autotopic
 * DB changes topic to 'For help visit Darkbot page at http://darkbot.org'

top
Cycling Channel 	[2] Parts/Rejoins a channel to resynchronize information Command 	CYC | CYCLE Syntax 	!CYCLE [#channel] Example 	BotUser: !cycle #darkbot DB: Cycling #darkbot Obs. Command can be called from/to a different channel
 * Parts: DB
 * Joins: DB

top
Delete Permban 	[2] Removes a u@h entry from Darkbot's permban database Command 	DELBAN Syntax 	!DELBAN <*user@*.host> Example 	BotUser: !delban *@poste*.ulaval.ca. -DB- Deleted permban #1, *@poste*.ulaval.ca. Related Messages 	(if no bans in the list) -DB- No such ban. See also: Permban User - Ban List - BAN - TEMPBAN

top
Deop User 	[2] Takes away channel ops from the person specified. Command 	DEOP Syntax 	!DEOP Example 	BotUser: !deop BotUser Related Messages 	(if no given nick): DB: Specify a nick! Obs. DB needs to be +op See also: Op User - Up (op) BotUser - Down (deop) BotUser - Simulate Op
 * DB sets mode: -o BotUser

top
Devoice User 	[1] Takes voice (-v) away from the specified nick Command 	DEV | DEVOICE | DV | DVOICE Syntax 	!DEVOICE Example 	BotUser: !devoice BotUser Related Messages 	(if no nick given): Specify a nick/chan! Obs. DB needs to be +op See also: Voice User
 * DB sets mode: -v BotUser

top
Down (deop) BotUser 	[2] Takes away your ops Command 	DOWN Syntax 	!DOWN Example 	BotUser: !down Obs. DB needs to be +op See also: Op User - Deop User - Up (op) BotUser
 * DB sets mode: -o BotUser

top
Join Channel 	[2] Tells Darkbot to join the channel you specify. Command 	JOIN | J Syntax 	!JOIN <#channel> Example 	BotUser: !join #channel DB: Joining #channel See also: Leave Channel

top
Kick User 	[2] Kicks someone off the channel. You can also use commands !nail or !wack Command 	K | KICK | NAIL | WACK Syntax 	!KICK or !KICK <#chan> [reason] Example 	(with default reason): BotUser: !kick UserABC
 * UserABC was kicked by DB (kick'ed: Requested!)

(with reason specified): BotUser: !kick UserABC ReasonGoesHere Related Procedures 	Check defines.h file [#define DEFAULT_KICK "Requested!"] if you want to modify the default kick message. Obs. DB needs to be +op
 * UserABC was kicked by DB (kick'ed: ReasonGoesHere)

top
Leave Channel 	[2] Tells Darkbot to leave the current channel or the one you specify. Command 	L | LEAVE | P | PART Syntax 	!LEAVE [#channel] Example 	BotUser: !part #channel DB: Leaving #channel See also: Join Channel

top
Op User 	[2] Gives the person specified channel ops. Command 	OP Syntax 	!OP <User> Example 	BotUser: !op BotUser Related Messages 	(if no nick specified): Specify a nick! Obs. DB needs to be +op See also: Deop User - Up (op) BotUser - Down (deop) BotUser - Simulate Op
 * DB sets mode: +o BotUser

top
OPERATING SYSTEM INFO 	[0] Displays information about the Operating System in use Command 	OS Syntax 	<DB> <OS> Example 	BotUser: DB OS DB: I am running Linux (W)arning 	command not active in Windows versions

top
Permban User 	[3] Sets a permanent ban in Darkbot's permban database Command 	PERMBAN | SHITLIST Syntax 	!PERMBAN <user@*.host> [reason] Example 	(with default reason): BotUser: !permban test@host.domain.net -DB- Added in permban #1, test@host.domain.net; reason: Permbanned!

(with reason specified): BotUser: !permban test@host.domain.net reason of the ban -DB- Added in permban #2, test@host.domain.net; reason: reason of the ban Obs. DB needs to be +op See also: Ban List - Delete Permban - Mask - BAN - TEMPBAN

top
Simulate Op/Deop 	[2] Tease someone by simulating OP and DEOP Command 	TEASEOP | TO Syntax 	!TEASEOP <UserABC> Example 	(if user is not op): BotUser: !teaseop UserABC
 * DB sets mode: +o-o+o-o+o-o UserABC UserABC UserABC UserABC UserABC UserABC

(if user is +op): BotUser: !teaseop UserABC Obs. DB needs to be +op; This command never gives +op but deops if user is +o See also: Op User - Deop User
 * DB sets mode: -o+o-o+o-o UserABC UserABC UserABC UserABC UserABC

top
TEMPBAN IRC raw command permitting to temporarily ban users from the channel. Command 	TEMPBAN Syntax 	<DB> <ADD> <-><PRIVMSG> <C~> :text | TEMPBAN Example 	BotUser: DB add tempban+me -PRIVMSG C~ :okay N~. | TEMPBAN Obs. Works the same way as BAN with the difference Darkbot will unban the user in 60 seconds (using DBTIMERS). It takes no parameters. Just "TEMPBAN" (all caps). The topic must be a raw one (starts with a - prefix). A kickban can be done using this syntax: BotUser: DB add kickban+me -KICK C~ N~ :sure, came back in 60s! | TEMPBAN See also: Permban User - Delete Permban - Ban List - BAN

top
Up (op) BotUser 	[2] Gives you OP. Command 	UP Syntax 	!UP Example 	BotUser: !up Obs. DB needs to be +op See also: Op User - Deop User - Down (deop) BotUser
 * DB sets mode: +o BotUser

top
Voice User 	[1] Gives voice (+v) to the person specified. Command 	V | VOICE Syntax 	!VOICE <User> Example 	BotUser: !voice UserABC Related Messages 	(if no nick given): Specify a nick/chan! Obs. DB needs to be +op See also: Devoice User
 * DB sets mode: +v UserABC

top
Status and Information COMMAND CHARACTER INFO 	[0] Displays information about the command character in use (default is !) Command 	CMDCHAR? Syntax 	<DB> <CMDCHAR?> Example 	BotUser: DB CMDCHAR? DB: BotUser, my command char is: !simple topic/reply See also: Set Command Character

top
CODE STATUS 	[0] Displays information about darkbot.c file; total number of lines it has and when was last compiled as well as number of lines processed during the session. Command 	INFO2 Syntax 	<DB> <INFO2> Example 	BotUser: DB INFO2 DB: BotUser, src: darkbot.c (5590 lines of code), compiled @ Dec 13 2001. I have processed 469 lines of text since startup...

top
DATABASE STATUS 	[0] Displays information about Darkbot's version, amount of topic/replies in info2.db, session uptime in hours and minutes, database activity (questions asked, topic additions and topic deletions) and processing time period of this command. Command 	INFO Syntax 	<DB> <INFO> Example 	BotUser: DB INFO DB: Running Darkbot6f6. I have 1 topics in my database, Uptime: 2 hours, 3 mins, There have been 4 questions asked, 1 topic additions, and 1 topic deletions. Process time: 0 secs (W)arning 	Darkbot's version on Windows machines will show up 'Win'. ex: Darkbot6f6-Win

top
JOINS STATUS 	[0] Displays information about how many joins Darkbot witnessed in the channel during it's session Command 	JOINS? Syntax 	<DB> <JOINS?> Example 	BotUser: DB JOINS? DB: I have seen 15 joins thus far.

top
LANGUAGE INFO 	[0] Displays the current language setting Command 	LANG | LANGUAGE Syntax 	!LANG Example 	BotUser: !lang DB: BotUser, I speak English. Related Procedures 	Check defines.h file [#define LANG 1] if you want to change the default language (default is English). Available languages are English, French, Spanish, Dutch, Latin, Greek, Ebonics, Pig Latin, Russian- KOI8 encoding, Russian - CP1251 encoding, Portuguese, German, Italian, Chinese, Swedish, Norwegian, Romanian. More will be available soon. E-Mail play janson@superlink.net if you want to help add other langs.

top
MEMORY STATUS 	[0] Displays information about how much memory is in use by darkbot.c Command 	MEM | RAM Syntax 	<DB> <MEM> Example 	BotUser: DB MEM DB: BotUser 13419 0.0 0.8 1496 264 ? S 15:39 0:04 ./darkbot (W)arning 	command not active in Windows versions

top
PERMBANS INFO 	[0] Displays information about how many permanent bans are loaded into ram Command 	PERMBANS? Syntax 	<DB> <PERMBANS?> Example 	BotUser: DB PERMBANS? DB: There are 2 permbans loaded into ram. See also: Permban User - Delete Permban - BAN - TEMPBAN

top
QUE STATUS 	[0] Displays information about how many items Darkbot has ready to be displayed. Command 	QUE? | SENDQ? Syntax 	<DB> <QUE?> Example 	BotUser: DB SENDQ? DB: BotUser, There is currently 0 items in Que.

top
RAM STATUS 	[0] Displays information about if Darkbot is accessing dat/info2.db via direct disk or ram and the amount used. Command 	RAM? Syntax 	<DB> <RAM> Example 	BotUser: DB RAM? DB: I am accessing dat/info2.db via direct disk. (W)arning 	command not active in Windows versions See also: Sleep (deactivate)

top
RANDSTUFF STATUS 	[0] Displays information about how many seconds are left to be displayed next random reply in randomstuff.ini Command 	RANDOMSTUFF? | RANDSTUFF? Syntax 	<DB> <RANDSTUFF?> Example 	BotUser: DB RANDOMSTUFF? DB: BotUser, 350 seconds left till randstuff See also: Addind Random Stuff

top
SERVER STATUS 	[0] Displays information about how many servers are in the server.ini file and what # server is in use Command 	LOCATION? Syntax 	<DB> <LOCATION?> Example 	BotUser: DB LOCATION? DB: There is 5 servers in my server list. I am currently on server #1. Obs. server order is counting from last line in the file (#1 is the last line). See also: Server Jump

top
UPTIME STATUS 	[0] Displays information about Darkbot's unix computer time, system's uptime in days hours and minutes, how many users logged in the shell and load averages. Command 	UPTIME Syntax 	<DB> <UPTIME> Example 	BotUser: DB UPTIME DB: Uptime: 5:01PM up 305 days, 5:22, 1 user, load averages: 0.19, 0.38, 0.43 (W)arning 	command not active in Windows versions

top
User Access Add User 	[3] Adds someone into Darkbot's access list. Command 	ADDUSER Syntax 	!ADDUSER <#chan | #*> <*user@*.host> [pass] Example 	BotUser: !adduser #darkbot *jason@*.superlink.net 3 HisPassword -DB- Added user: *test@*.test.net - level 3 Related Messages 	(if any parameter is missing): -DB- Syntax: ADDUSER <#chan> <*user@*.host>. ie; ADDUSER #darkbot *jason@*.superlink.net 3 hisPasswd ... Obs. -Use #* if you want to give access to all channels. -The default password is 0 (zero) -Use command MASK if you are in doubt what User@host to use See also: Delete User - Mask - Login - Password

top
Delete User 	[3] Removes someone from Darkbot's access list Command 	!DELUSER Syntax 	!DELUSER <*user@*.host> Example 	BotUser: !deluser *test@*.test.net -DB- Deleted user: *test@*.test.net [3:0] Related Messages 	(if no user is specified): -DB- Enter the u@h to delete! See also: User List - Add User

top
Join Greets 	[1] Sets the string of text that is displayed when you join a channel if you are on Darkbot's access list. Adding a "+" (plus) in front of the message will turn it into an ACTION rather than a PRIVMSG. First time shows DB: 6!BotUser: I need to use SETINFO. To turn function off use !setinfo 0 Command 	!SETINFO Syntax 	!SETINFO < message | 0 > Example 	BotUser: !setinfo Welcome!! -DB- Updated #1: [*janson*@*SuperChat.Org] info: Welcome!! DB: 11!BotUser: Welcome!!

BotUser: !setinfo +feels happy to see ^!! wow,,, % times I see this $ in & :) -DB- Updated #1: [*janson*@*SuperChat.Org] info: +feels happy to see ^!! wow,,, % times I see this $ in & :)
 * DB feels happy to see BotUser!! wow,,, 10 times i see this *janson*@*SuperChat.Org in #darkbot :)

BotUser: !setinfo 0 -DB- Updated #1: [*janson*@*SuperChat.Org] info: 0 Related Messages 	(If no parameters are specified): -DB- My !setinfo variables are: ^ nick, % Number of joins, & Channel, $ user@host. Example: !setinfo ^ has joined & % times!! (also, if you make the first char of your SETINFO a "+" the setinfo will be shown as an ACTION)

top
Login BotUser 	[1] Enables you to use Darkbot's commands. Command 	LOGIN Syntax 	/msg <DB> LOGIN Example 	BotUser: /msg DB login mypassword -DB- Verified: #channel[1] Related Messages 	(if is the first time you access DB): You have not set a password, to set a pass: /msg DB PASS (since this is your first time setting a pass, use '0' as your old pass) See also: Password

top
Mask 	[0] Outputs given user's user@*.host. Use this if you don't know what to put in the Add User or Permban command. Command 	!MASK Syntax 	!MASK <user@host> Example 	BotUser: !mask test@user-123.test.domain.com DB: BotUser, test@*.domain.com

BotUser: !mask test@12.34.56.78 DB: BotUser, This is an unresolved host (IP address), just delete the last section and replace with a *, ie; user@125.34.12.44 would be user@125.34.12.* Related Messages 	(when no user@host specified): DB: BotUser, Specify a host! See also: User List - Add User

top
Password 	[1] Changes the password. Command 	PASS | PASSWD | PASSWORD Syntax 	/msg <DB> PASS (oldpass) (newpass) Example 	BotUser: /msg DB pass mypass1999 mypass2000 -DB- Password for test@host.domain.net has been updated Related Messages 	(on missed parameters): -DB- Syntax: /msg DB PASS Obs. You need to login prior to use this command; Max number of pass digits = 25 See also: Login

top
Seen User 	[0] Displays the last time/date Darkbot saw the person specified Command 	SEEN Syntax 	!SEEN <UserABC> Example 	(if specified nick is found in the database): BotUser: !seen NickABC DB: BotUser, I last saw UserABC (userid@userhost.com) 2 hours, 30 mins ago in #darkbot

(if no user is found in the database): BotUser: !seen UserABC2 DB: BotUser, I have not seen UserABC2 in the last week.

(if specified nick is the user who does the query): BotUser: !seen BotUser DB: You'd know more about that than I do, BotUser.

(if no nick is specified DB displays the total number of items in the database (seen.ini file): BotUser: !seen DB: BotUser, There are 1000 SEEN's in my database. Relate Procedures 	Check defines.h file [#define SEEN] if you want to enable or disable SEEN as well as max length to keep a lastseen

[#define MAX_LASTSEEN] (default is one week - in seconds) and the seen reply message [#define SEEN_REPLY "in the last week."].

top
User's Idle Time 	[0] Displays the specified user's idle time. Command 	IDLE Syntax 	!IDLE Example 	BotUser: !idle UserABC DB: BotUser, UserABC has been idle 1 minutes, 3 secs Related Messages 	-(when the command is directed to the BotUser): DB: BotUser, don't be lame.

-(if nick isn't in the channel): DB: BotUser, I do not see NickGiven in #darkbot.

top
User List 	[1] Lists those who are on Darkbot's access list. Command 	USERLIST | HLIST | ACCESS Syntax 	!USERLIST Example 	BotUser: !userlist -DB- jason@NewBrunswick.NJ.US.SuperChat.Org[#*:3:6] *test@*.test.net[#darkbot:3:0] *test@*.test.net[#darkbot:3:0] -DB- End of Helper Userlist; 3 users found. See also: Add User - Delete User

top
Utilities Alarm Clock 	[2] A handy alarm clock, allowing to add in a timer in your Darkbot, which will activate at a given time. Times can be set in minutes, hours, and days. Just add the prefix of h (hour), m (minute), or d (day) before the amount of time you want it at. Command 	ALARM | ALARMCLOCK Syntax 	<DB> ALARM <time type: d/h/m> Example 	<BotUser>: !alarmclock m1 one minute timer. <DB>: BotUser, alarmclock set to go off in 1 minute, 0 secs ... 1 minute later ... <DB>: ALARMCLOCK by BotUser!~userid@userhost: one minute timer. Related Messages 	(if any parameter is missing): -DB- Syntax: <time type: d/h/m> Related Procedures 	Check defines.h file [#define DBTIMERS] if you want to enable or disable the the alarm clock function

top
Calculator 	[0] A handy calculator. Functions are: "+" (addition); "-" (subtraction); "*" (multiplication); "/" (division). Command 	CALC | MATH Syntax 	<DB> CALC < + | - | * | / > Example 	BotUser: DB calc 1+1 BotUser: 2.000000 Related Messages 	- (if used incorrect operator): BotUser: Illegal operation!

-(if value is missing): DB: BotUser: Division by zero error! Related Procedures 	Check defines.h file [#define DO_MATH_STUFF] if you want to enable or disable the calculator.

top
Character Length 	[0] Displays the character length of the given string. Command 	LENGTH Syntax 	<DB> LENGTH Example 	BotUser: DB length antidisestablishmentarianism DB: BotUser: it was 28 chars long.

top
Date & Time 	[0] Displays date and time of the local machine where Darkbot is running Command 	DATE | TIME Syntax 	<DB> DATE Example 	BotUser: !date DB: BotUser, Wen Dec 1 09:10:51 1999.

top
Help 	[0] Sends a notice to the user with a brief run down on how to use Darkbot Command 	HELP Syntax 	!HELP Example 	BotUser: !help -DB- I can be triggered by various forms of speech, all which must be addressed to me, in one of the following formats: DB, DB: DB: or even DB .... In my database, you can find a topic by saying my nick,. e.g.; DB, nuke ..........to do a search on a word, or partial text, just type:, search ... eg; DB, search nuke -DB- I can also be triggered with even more human formats: DB, who is bill gates? .. You can also phrase it in a question: DB, where is msie? ...For more info about me, visit http://darkbot.net

top
Ping Reply 	[0] Replies "PONG" on the channel to gauge how lagged you or Darkbot is. Command 	PING Syntax 	!PING Example 	BotUser !ping DB: PONG!

top
Unixtime 	[0] Returns the time elapsed in comparison to the current time of the box Darkbot is on. (time since 00:00:00 UTC of January 1st 1970) Command 	UNIXTIME Syntax 	<DB> UNIXTIME Example 	BotUser: DB unixtime 90280928 DB: BotUser, -192 days, 12 mins, 93 secs Obs. use command calc if you need to to convert/calculate the result See also: Calculator

User access management with options to add, delete, login, change password, list, greet registered users on join, check users idle time, mask and function "Seen".

Several channel operation commands, i.e. op, deop, simulate op, voice, devoice, kick, ban and temp ban; set topic and auto-topic; join, leaves and cycles channels; channel information with total number of users and seen joins.

Commands to display the status and information of the memory, ram, code, database uptime and others. Wildcards within multi-word topics to define NLP processing.

Handy utilities, like an alarm clock, a calculator, a way of checking the length of words or phrases, display date and time, ping, and unix time calculation.

Raw IRC commands on connect giving the possibility to automatically perform tasks like any IRC client program; CTCP ping and version replies.

Many more options and functions changeable on the configuration scripts.