Tree [r29] /

File Date Author Commit
VS2008 2013-10-21 code_driller [r21]
VS2013 24 hours ago code_driller [r29] Bugfixes in FillFromPagesUsingImage()
cache 2013-10-18 code_driller [r6]
docs 2013-10-21 code_driller [r20] 3.0 (Release)
legacy 2013-10-18 code_driller [r17]
web 2013-10-21 code_driller [r21]
BatchFileUploader.cs 2013-10-18 code_driller [r14] Small GUI program for uploading sets of files t...
BotInfo.cs 2014-01-14 code_driller [r28] cache directory permissions check downgraded to...
BotScript.cs 2013-10-21 code_driller [r20] 3.0 (Release)
Compile & Run (Mono).bat 2013-10-18 code_driller [r16] End-user command-line script to compile and run...
Compile & Run.bat 2013-10-18 code_driller [r15] End-user command-line script to compile and run...
DebugBot.cs 2014-01-13 code_driller [r27] Protect() method update
DotNetWikiBot.cs 24 hours ago code_driller [r29] Bugfixes in FillFromPagesUsingImage()
DotNetWikiBot.i18n.xml 2014-01-13 code_driller [r25] Cache fallback path implemented
GNU General Public License v2.0.htm 2013-10-18 code_driller [r19]
Version history.txt 2014-01-14 code_driller [r28] cache directory permissions check downgraded to...
readme.html 2013-10-21 code_driller [r20] 3.0 (Release)

Read Me

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3. org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="" xml:lang="en">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DotNetWikiBot Framework</title>
<meta name="description" content="DotNetWikiBot Framework description and introduction." />
<meta name="keywords" content="DotNetWikiBot,Framework,wiki,MediaWiki,client,API,software,bot,robot,.NET,2.0,Mono,console,library,dll,C#,script,scripting,program,programming,develop,development,management,compile,download,learn,XML,XHTML,advanced,parsing,regular,expression,tutorial,web,Linux,Windows,free,freeware,open,source,code,.cs,Solaris,Mac,BSD,easy-to-learn,easy-to-use,educational,beginner,easy,easily,support,report,bug,feature,forum,tracker,good,learning,ready-to-use,clean,plain,classic,platform-independent,zip,stable,mature,release,run,file,package,Visual,Basic,Managed,C++,JScript,J#" />
<meta name="author" content="Iaroslav Vassiliev" />
<meta name="revised" content="2013-10-18" />
<style type="text/css">
body {
	font-family: Arial, Helvetica, Sans-serif;       

h1 {
	font-weight: normal;
	color: #000080;
	margin-top: 0px;	
	margin-bottom: 5px;

h2 {
	font-size:1 20%;
	font-weight: normal;
	margin-bottom: 10px;

p, ul, ol {
	line-height: 170%;
	padding-left: 5%;
	padding-right: 5%;	

pre.code {
	font-family: monospace;
	margin-left: 5%;
	margin-right: 5%;
	padding: 3%;
	background-color: #F8F8F8;
	border-style: solid;
	border-width: 1px;	

span.code_comment {
	color: #00AA00;

span.code_keyword {
	color: #0000FF;

span.code_string {
	color: #8B4513;

a.nav {
	text-decoration: none;
	color: #FFFFFF;
	font-weight: bold;

a:hover.nav {
	text-decoration: underline;

<h1>DotNetWikiBot Framework</h1>
<table class="nav" style="width:100%; font-size:80%; line-height:100%; color:#FFFFFF; background-color:#000080">
<a class="nav" href="">Home</a> |
<a class="nav" href="">Download</a> |
<a class="nav" href=";group_id=167838&amp;atid=844535">Request a new feature</a> |
<a class="nav" href=";group_id=167838&amp;atid=844532">Report a bug</a> |
<a class="nav" href="">Ask for support</a>

DotNetWikiBot Framework is designed to help with many complicated and routine tasks of wiki site development and maintenance. DotNetWikiBot Framework is a clean full-featured client API, that allows you to build programs and web robots easily to manage information on MediaWiki-powered sites. DotNetWikiBot Framework is also good for learning C# and .NET.

<h2>Some facts about DotNetWikiBot Framework</h2>
<li>DotNetWikiBot Framework is an easy-to-learn and easy-to-use library (API) for programming applications and web robots, that could help in construction and maintenance of wiki sites.</li>
<li>DotNetWikiBot is compiled as a .NET dynamic link library (.dll file), that could be used directly or in other products.</li>
<li>DotNetWikiBot is written in <a href="">C#</a>, based on <a href="">Microsoft® .NET Framework 3.5</a> and targets the sites running free <a href="">MediaWiki</a> software.</li>
<li>Using <a href="">Mono</a> framework, DotNetWikiBot can work under Linux, BSD, Solaris, Mac OS X and iPhone OS as well as under Windows.</li>
<li>Any .NET language can be used to access DotNetWikiBot library functions, including Visual Basic, Managed C++, JScript, J# and F#. Only minimal programming skills are required to make bots with DotNetWikiBot Framework, it allows to build bots in fast and simple manner.</li>
<li>DotNetWikiBot source code is located in a single .cs file, that could be easily changed and recompiled to suite your needs. It requires only C# compiler, no other tools.</li>
<li>DotNetWikiBot Framework is good for educational purposes. It's source code is written in a plain classic manner, allowing to learn object-oriented programming, .NET features, LINQ, web robots making, regular expressions and advanced XML parsing in a short time.</li>
<li>DotNetWikiBot doesn't require installation. It is downloaded in a single small .zip file along with compiled documentation, source code, ready-to-use sample bot script and sample GUI utility "BatchFileUploader.exe", that allows batch upload of files to wiki sites.</li>
<li>DotNetWikiBot is free.</li>

<p style="margin:0 0 0 0; padding:0 0 0 0">
Only a few things are required to run DotNetWikiBot Framework on .NET Framework 3.5:
<!-- -->
<li>Microsoft .NET Framework 3.5-compatible machine.<br /><span style="font-size:70%">(minimum: 400 MHz processor, 96 Mb RAM, 280 Mb free disk space for 32-bit machines or 610 Mb for 64-bit machines)</span></li>
<li>Microsoft .NET Framework 3.5-compatible operating system.<br /><span style="font-size:70%">(any Microsoft OS suits starting with Windows XP SP2 and futher, except Windows Server 2003 Enterprise/Datacenter Edition for Itanium-based systems)</span></li>
<li><a href="">Microsoft .NET Framework 3.5</a> itself.<br /><span style="font-size:70%">(.NET Framework 3.5 redistributable package already has C# compiler (csc.exe) onboard and no other is required, although you can use .NET SDK or Visual Studio)</span></li>
<li>Text editor to edit source code.</li>
<li>Web browser to control bot activities on-line.</li>
<p style="margin:0 0 0 0; padding:0 0 0 0">
The following is required to run DotNetWikiBot Framework on Mono:
<li>Mono-compatible machine.<br /><span style="font-size:70%">(on <a href="">this page</a> you can find the detailed list of supported architectures)</span></li>
<li>Mono-compatible operating system.<br /><span style="font-size:70%">(Linux, BSD, Mac OS X, iPhone OS, Sun Solaris, Nintendo Wii, Sony PlayStation 3, Microsoft Windows)</span></li>
<li><a href="">Mono</a> framework 1.9 or higher.</li>
<li>Text editor to edit source code.</li>
<li>Web browser to control bot activities on-line.</li>

<p style="margin:0 0 0 0; padding:0 0 0 0">
DotNetWikiBot Framework package includes several files:
<ul title="DotNetWikiBot Framework package includes several files:">
<li>Readme.html - this introductory file.</li>
<li>DotNetWikiBot.dll - the compiled framework, it's a dynamic-link library.</li>
<li>DotNetWikiBot.cs - source code of the framework.</li>
<li>BotScript.cs - C# source code file ready to become your first bot. Contains some instructions and basic examples.</li>
<li>Documentation.chm - documentation file. It contains detailed description of DotNetWikiBot Framework's classes, types, properties and methods. A few examples are also available in it.</li>
<li>Compile &amp; Run.bat - fast-build batch script for Windows. It will compile and run BotScript.exe file. Run it to compile and launch your bot. Additional compilation instructions can be found inside this file.</li>
<li>DotNetWikiBot.i18n.xml - internationalization file which contains bot's interface messages, translated to other languages. You are welcome to translate messages in that file to your local language and send it back for redistribution. And you can add your own messages to that file too, if it is necessry.</li>
<li>BotInfo.netmodule (bundled with some versions) - assembly description module, which is necessary in some IDEs, when you reference DotNetWikiBot.dll in your project.</li>
<li>BatchFileUploader.exe - sample GUI utility, that allows batch upload of files to wiki sites.</li>
<li>BatchFileUploader.cs - C# source code file of "BatchFileUploader.exe" utility.</li>
<li>GNU General Public License v2.0.htm - license file.</li>

<li>Extract DotNetWikiBot Framework files from .zip package.</li>
<li>Open BotScript.cs file in any text editor. Look at the example code there.</li>
<li>Input some experimental code.</li>
<li>Make sure .NET Framework libraries and C# compiler is available. Correct path to C# compiler ("csc.exe" file) in "Compile &amp; Run.bat" file if necessary</li>
<li>Run "Compile &amp; Run.bat" file.</li>
<li>Debug your code.</li>
<li>Explore the documentation ("Documentation.chm" file) and the framework source code to deeper understand the framework's structure.</li>

<h2>Short tutorial</h2>
There are only 3 types of objects in DotNetWikiBot Framework: Site, Page and PageList. They are used as follows.
<pre class="code">
<span class="keyword">using</span> DotNetWikiBot;	<span class="code_comment">// Reference DotNetWikiBot namespace for easy access</span>

<span class="keyword">class</span> MyBot : Bot	<span class="code_comment">// Derive your bot class from framework's Bot class</span>
    <span class="keyword">public static void</span> Main()
        <span class="code_comment">// Firstly make Site object, specifying site's URL and your bot account</span>
        Site enWiki = <span class="code_keyword">new</span> Site(<span class="code_string">""</span>, <span class="code_string">"myBotLogin"</span>, <span class="code_string">"myPassword"</span>);
        <span class="code_comment">// Then make Page object, specifying site and page title in constructor</span>
        Page p = <span class="code_keyword">new</span> Page(enWiki, <span class="code_string">"Art"</span>);
        <span class="code_comment">// Load actual page text from live wiki</span>
        <span class="code_comment">// Add "Visual arts" category link to "Art" page's text</span>
        p.AddToCategory(<span class="code_string">"Visual arts"</span>);
        <span class="code_comment">// Save "Art" article's text back to live wiki with specified comment</span>
        p.Save(<span class="code_string">"comment: category link added"</span>, <span class="code_keyword">true</span>);

        <span class="code_comment">// Make empty PageList object, representing collection of pages</span>
        PageList pl = <span class="code_keyword">new</span> PageList(enWiki);
        <span class="code_comment">// Fill it with 100 pages, where "nuclear disintegration" is mentioned</span>
        pl.FillFromGoogleSearchResults(<span class="code_string">"nuclear disintegration"</span>, 100);
        <span class="code_comment">// Load texts and metadata of all found pages from live wiki</span>
        <span class="code_comment">// Now suppose, that we must correct some typical mistake in all our pages</span>
        <span class="code_keyword">foreach</span> (Page i <span class="code_keyword">in</span> pl)
            <span class="code_comment">// In each page we will replace one phrase with another</span>
            i.text = i.text.Replace(<span class="code_string">"fusion products"</span>, <span class="code_string">"fission products"</span>);
        <span class="code_comment">// Finally we'll save all changed pages to wiki with 5 seconds interval</span>			
        pl.SaveSmoothly(5, <span class="code_string">"comment: mistake autocorrection"</span>, <span class="code_keyword">true</span>);
        <span class="code_comment">// Now clear our PageList so we could re-use it</span>
        <span class="code_comment">// Fill it with all articles in "Astronomy" category and it's subcategories</span>
        pl.FillFromCategoryTree(<span class="code_string">"Astronomy"</span>);
        <span class="code_comment">// Download and save all PageList's articles to specified local XML file</span>
        pl.SaveXmlDumpToFile(<span class="code_string">"Dumps\\ArticlesAboutAstronomy.xml"</span>);		
A very compehensive DotNetWikiBot usage examples can be found
in <a href="">unit testing file called DebugBot.cs</a>.
Refer to documentation for functions details.

<i>Bot scripts <a href="">repository</a> is being created. You are welcome to share your scripts.</i>

DotNetWikiBot Framework is available under GNU General Public License, version 2.<br />
Full text of the license in English is located in "GNU General Public License v2.0.htm" file.<br />
You can find license texts in local languages at <a href="">GNU site</a>.

<hr />

<a href="" style="float:right; padding-left:10px; margin-bottom:20px"><img src="" width="120" height="30" border="0" alt="Get DotNetWikiBot Framework at Fast, secure and Free Open Source software downloads" /></a>

<a href="" style="float:right; padding-left:10px; padding-bottom:20px"><img src="" style="border:none" alt="Valid XHTML 1.1" height="31" width="88" /></a>