ClueBot Script is a trivial scripting language designed specifically for very basic Wikipedia bot tasks.
Syntax
editThe syntax is very similar to that of PHP. Each statement must end in a semicolon (";"). Conditionals are grouped in parenthesis ("()"). Groups of statements are grouped in braces ("{}"). Variables are prefixed with a percent sign ("%"). Functions are prefixed with a dollar sign ("$").
Statements
editif
editSyntax
editif conditional statement
Description
editExecutes statement if conditional is satisfied.
while
editSyntax
editwhile conditional statement
Description
editExecute statement until conditional is no longer satisfied.
foreach
editSyntax
editforeach list delimiter %value statement
Description
editFor each item in the list, list, delimited by the delimiter, delimiter, set %value to the value of the current item and execute statement.
eval
editSyntax
editeval ClueBot Script
Description
editEvaluate the string ClueBot Script as ClueBot Script.
set
editSyntax
editset %variable conditional/value
Description
editSets %variable to the value of conditional/value.
unset
editSyntax
editunset %variable
Description
editUnsets %variable.
varappend
editSyntax
editvarappend %variable data
Description
editAppend the data, data, to the end of %variable.
varprepend
editSyntax
editvarprepend %variable data
Description
editPrepend the data, data, to the end of %variable.
pagereplace
editSyntax
editpagereplace1 page search replace
Description
editReplaces all instances of the string search, with the string replace, on the page page.
pagepregreplace
editSyntax
editpagepregreplace1 page search replace
Description
editReplaces all instances of the regular expression search with the regular expression replace string replace on the page page.
pageprepend
editSyntax
editpageprepend1 page data
Description
editPrepends the data data to the beginning of the page page.
pageappend
editSyntax
editpageappend1 page data
Description
editAppends the data data to the end of the page page.
pageset
editSyntax
editpageset1 page data
Description
editSets the content of the page page to the data data.
pageget
editSyntax
editpageget page %data
Description
editRetrieves the page page into the variable %data.
getrecentchanges
editSyntax
editgetrecentchanges %data delimiter count
Description
editRetrieves the names of the pages in the count most recent changes into the variable %data, delimited by the string delimiter. The count parameter is optional and defaults to 10.
getcategorymembers
editSyntax
editgetcategorymembers %data delimiter category count start
Description
editRetrieves count page names in the category category beginning with start into the variable %data. The count parameter is optional and defaults to 500. The start parameter is optional and defaults to the first page in the category.
getbacklinks
editSyntax
editgetbacklinks %data delimiter page count %continue
Description
editRetrieves the pages that link to page into the variable %data. The count parameter is optional. The %continue parameter is optional, but if provided will determine where to continue, when the statement finishes, %continue will be filled with where it left off, so pass it back to continue where it left off.
getembeddedin
editSyntax
editgetembeddedin %data delimiter page count %continue
Description
editRetrieves the pages that transclude page into the variable %data. The count parameter is optional. The %continue parameter is optional, but if provided will determine where to continue, when the statement finishes, %continue will be filled with where it left off, so pass it back to continue where it left off.
getmodifiedtime
editSyntax
editgetmodifiedtime %time page
Description
editRetrieves the last modified unix timestamp of page into %time.
Functions
editcat/+
editSyntax
edit$cat(string1,string2,string3,...)
Description
editReturns the input strings concatenated. + is an alias for cat.
substr/mid
editSyntax
edit$substr(string,start)
$substr(string,start,length)
Description
editReturns a part of string. If length is omitted, it returns string starting from start to the end of string, otherwise, it returns length characters, starting from start. This function works exactly like PHP's substr] function. mid is an alias for substr.
gettok/settok/addtok/deltok
editSyntax
edit$gettok(list,delimiter,id)
$settok(list,delimiter,id,data)
$addtok(list,delimiter,data)
$deltok(list,delimiter,id)
Description
editId starts at 1. List is a delimited list. Delimiter is the delimiter of the list. Gettok returns the idth item in the list, unless id is 0, then it returns the number of items in the list. Settok sets an item in the list, overwriting the previous value (if necessary). Addtok adds an item to the end of the list. Deltok removes the idth item from the list.
strpos/stripos
editSyntax
edit$strpos(haystack,needle)
$strpos(haystack,needle,offset)
$stripos(haystack,needle)
$stripos(haystack,needle,offset)
Description
editReturns the numeric position of the first occurrence (or the offset occurrence, if offset is given) of needle in the haystack string. strpos and stripos are the same except stripos is case insensitive.
replace
editSyntax
edit$replace(data,search1,replace1,search2,replace2,...,...,searchN,replaceN)
Description
editReplace each occurrence of search with replace. Multiple search/replace pairs may be given at one time.
pregreplace
editSyntax
edit$pregreplace(data,searchregex,replaceregex)
Description
editPerforms regular expression search/replace on data. searchregex is the pattern to match and replaceregex is what to replace it with.
time
editSyntax
edit$time(0)
Description
editReturns the unix timestamp.
Examples
editset %page "User:ClueBot II/Sandbox"; set %data "{{db-user}}"; set %reason "And now we mark it for deletion. (bot)"; pageset %page %data %reason;
getcategorymembers %cm "\n" "Wikipedia bots"; set %output ""; foreach %cm "\n" %page { if ($mid(%page,0,5) == 'User:') { varappend %output $cat("\n* [[",%page,"|",$mid(%page,5),"]]"); } } pageappend "Wikipedia:Sandbox" $cat("\n\nHere is a list of the bots on the first page of [[:Category:Wikipedia bots]]:",%output) "Adding list of bots.";
See also
editFootnotes
edit- ^1 This command has an optional parameter editsummary which can be used to set an edit summary. Otherwise, one is automatically generated.