This is the helpfile for WikiLinkBot

V1.11 - English version - THIS VERSION IS NOT RUNNING YET

In other languages

This helpfile isn't translated yet

Basic information

WikiLinkBot was created when the account for an other linkingbot was suspended. The script for WikiLinkBot was used for other purposes and when that other linkbot didn't come back, WikiLinkBot was prepared to link for #wikipedia-nl. Later on, the script was improved to work faster, be able to do regular tasks and to work on multiple channels. In V1.11 the bot most likely will get a database to store data. This data will be used to get information about earlier sessions when a new session is started, as well to be able to use the !seen-command without using all RAM on the toolserver when a lot of nicknames are stored.

One last note. If you see any bugs or want any wikirelated function to be added to the bot, please contact me on IRC or send an email. This helpfile is created for an version of the bot that might or might not be running yet. Things might work a little different then expected. Some of the sourcecode is released in a subversion repository. The code is available under the GNU Free Documentation License (GFDL).


P.S. Akoopal has or will have access to this account to have at least one more person that can start the bot if it fails unexpectedly. He might or might not contribute to the code. If you want to have this bot running in your channel, please remember it's a WIKIlinkbot so it will always in the wiki-way. Please contact one of us so we set up the bot in your channel.

Possible commands

This section will tell about all possible commands. The commands are categorized on the rights needed to invoke the command. Parameters are displayed using <param>. Optional parameters are displayed using [<param>]. Commands might or might not work when additional parameters are submitted.

Commands that can be invoked by everyone

!test [<nick>] [<channel>]

This function test if target user is trusted by the bot. If <nick> is omitted, the script will use the requesting user. <nick> can also contain a nickname+host (nick!data@host). If <channel> is omitted, the script will use the channel this command is given in. If <channel> is omitted in PM, the check for permissions in a channel is not performed. The bot can have full trust (nick+host is on trusteduserlist) or have half trust (user is operator in target channel) for target user.


This function gives a link to this helppage.

!seen <nick>

This function will display every host that used this <nick>. All not signed in freenode-webchat hosts are taken together and no other checks are done for them. It will check for every host what other nicknames were used. This function might be case-sensitive.

!mod [<message>]

If the modmessage is enabled, this will invoke an 'alarm' for all mods on the list. This function is turned off by default. The <message> parameter is not used by the function, but might be helpfull for users alarmed by this command. This function might be extended to invoke modmessages in other channels as well.


This will return the current version and builddate of the bot.

[[some kind of link]] or {{some kind of template}}

When the wikisyntax for a link or template is found in a message, the bot will provide a clickable link for every [[ ]] and {{ }}-link. It replaces some characters with there url unicode-alike characters (like %20). It correctly handles links like [[link|description]] and won't add the templateprefix for {{:this kind of links}} when the ":" is present between the {{ and }}-characters, just like what the wiki would do. It doesn't handle interwiki's yet. It is possible to exclude nicknames from triggering this function (see !set EXCL). This is usefull for bots that use the [[ ]] syntax, but provide the clickable link themself.

Commands that can be invoked by every 'half'-trusted user

!say [<channel>] <message>

This function copies the <message> to <channel>. If <channel> is omitted, the channel where this command is said, will be used. This is usefull for bots that run in an other channel, but sometimes need to send an message to other channels. Only user+hosts who are on the trusteduserlist or bots who have voice or operatorship in a channel are allowed to speak via WikiLinkBot. This function was originally used by a recentchangesbot that notified us of new articles.

!set <option> for <channel> <data>

This function to enable or disable options for any channel. With this command you probably can break down the bot into pieces, so only use this function where it was created for: Changing channel-settings on the fly. Note: The use of this command is tracked. When a new session of the bot is started, it will use the default settings. Please contact one of us when a settings should be changed forever, cause in that case we have to change the setting in the settingsfile (loaded every session). Below are all possible options listed with an description and the required data.

<option> <data>
CHAN Data schould contain the channelname, including the #. This cannot be used by channelowners, cause this is the command to add a channel to the optionlist. It defines the standard values for all options. The 'for <channel>' bit is omitted.
!set CHAN #wikipedia
LINKURI The data should contain the full url used for links. Any $1 will be replaced with the articlename.
!set LINKURI for #wikipedia$1
!set LINKURI for #vikidia$1 .$1
TEMPPREF The data should be the whole templateprefix, including the ":".
!set TEMPPREF for #wikipedia Template:
!set TEMPPREF for #wikipedia-nl Sjabloon:
EXCL The data should contain 1 (one) nickname. Any nickname passed through this command is not able to trigger clickable links anymore via [[ ]] or {{ }} in a message.
!set EXCL for #cvn-wp-nl CVNBot12
INCL The data should contain 1 (one) nickname. Any nickname passed through this command is able (again) to trigger clickable links via [[ ]] or {{ }} in a message.
!set INCL for #wikipedia-nl Sumurai8
MUTEABLE The data should either contain ON or OFF. When 'muteable' is on, anyone can mute the bot via !mute or unmute it via !unmute. When it is off, only channel-operators or any user+host on the trusteduserlist are able to mute the bot.
!set MUTEABLE for #wikipedia-nl-vandalism ON
!set MUTEABLE for #wikipedia OFF
MODMESSAGE The data should contain a phrase that will be displayed when someone uses !mod, a channelname or the text OFF. Any $1 in the text will be replaced with the nickname of the requesting user. Any $2 will be replaced with the entries of the 'modlist' for this channel (see below). Any $3 will be replaced with the channelname where this command was invoked. If a channelname is given, the message from that channel will be used and any !mod-command will invoke the message in both (/multiple) channels
!set MODMESSAGE for #wikipedia Sysops! User $1 wants your attention on $3. ($2)
!set MODMESSAGE for #cvn-wp-nl #wikipedia-nl
!set MODMESSAGE for #wikipedia-nl OFF
The data should contain 1 (one) nickname. It will be added to the 'modlist' for this channel (see MODMESSAGE for usage).
!set MOD for #wikiweet-nl Sumurai8
!set MODADD for #wikiweet-nl Sumurai8
MODDEL The data should contain 1 (one) nickname. The script will try to remove this nickname from the 'modlist' for this channel (see MODMESSAGE for usage).
!set MODDEL for #wikipedia Someone

There are some global settings that can only be set via the settingsfile.

!mute [<channel>]

This function will mute the bot for target channel. If invoked inside a channel, that channel will be muted. Otherwise the parameter is used.

!unmute [<chanel>]

This function will unmute the bot for target channel. If invoked inside a channel, that channel will be muted. Otherwise the parameter is used.

Commands that can be invoked by every fully-trusted user

!quit <data>

This function will quit this bot if <data> is equal to one of it's possible nicknames, it's current nickname or some phrases that will quit any of my bots.

!join <channel>

This function will let the bot join target <channel>. The <channel> parameter should contain the trailing '#'.

!leave [<channel>] or !part [<channel>]

The !leave and !part function will let the bot PART a channel. If invoked inside a channel, the bot will leave that channel. Otherwise the parameter is checked and used.

Commands that are only usefull for WikiLinkBot owners

!listsettings [<channel>]

This function will list all settings for target channel in the format they are stored: python dictionaryformat. The <channel> parameter might or might not work


This function will return all channels WikiLinkBot is on, seperated with spaces.


This function is a dummy. It can be used to purge the data to a file or database. This function might be removed from final release or be secure()-protected.


This function reloads the trusteduserlist in memory. Probably not usefull when this list isn't editted, which can only be done by WikiLinkBot's owners.

WikiLinkBot sourcecode

I released a part of the WikiLinkBot-scripts. The code is quite messy. Currently I am developing V1.12, which will adopt a object-structure. I hope it will make the code a bit more straight-forward.

Special thanks to...

Thanks to apoo for making the colourscheme. Otherwise it would be quite messy. Thanks to WikiMedia Commons for providing two images: Foldericon.png, made by Cacycle, public domain - Fileicon.png, made by Everaldo Coelho and YellowIcon, GLGPL. Thanks to the toolserver for hosting the mainscript.

The bot can be found on irc:// It is possible to use Freenode webchat to use the freenode network.