Jump to content

User:Hellknowz/WikiSharpAPI

From Wikipedia, the free encyclopedia
This is incomplete and outdated draft

Classes

[edit]

WikiSite

[edit]

WikiSite is basically a pointer to a MediaWiki site and it's API. Every Page, List, etc. must have a specific WikiSite attached to them. By default all new objects get the WikiSite.defaultWikiSite, which must be set unless each object is passed another WikiSite. WikiSite handles login/logout and makes sure session data and cookies are stored and passed.

// Create the default WikiSite for use by all new objects
WikiSite.defaultWikiSite = new WikiSite("http://en.wikipedia.org/w/api.php");

// Login into the API with the user account
if (WikiSite.defaultWikiSite.Login(ACCOUNT_NAME, ACCOUNT_PASS)) { ... }

// Create alternative WikiSite to other MediaWiki site
WikiSite deWPWikiSite = new WikiSite("http://de.wikipedia.org/w/api.php");
deWPWikiSite.Login(DEACCOUNT_NAME, DEACCOUNT_PASS);

// Create a page with the default WikiSite (WikiSite.defaultWikiSite)
WikiPage enpage = new WikiPage("Kangaroo");
// Create a page with a custom WikiSite
WikiPage enpage = new WikiPage("Kängurus", deWPWikiSite);

APIGlobal.defaultWikiSite.loginStatus contains the login status — loggedOut, loggingIn, loggedIn, loggingOut, loginFailed, or logoutFailed.

new WikiSite("http://en.wikipedia.org/w/api.php", "custom user agent 2.0") can also be initialized with a custom user agent string. Note that empty agent string will most likely result in a fail response.

WikiPage

[edit]

PageList

[edit]

WikiSite is a list/collection of WikiPages.

PageList pages = new PageList();
pages.AddPage("Cat");
pages.AddPages(new string[] { "Dog", "Rat", "Bird" });
pages.AddPagesFromCategory("Category: Cats");
pages.AddPagesUsingTemplate(Namespace.Article, "Template: Feline");
pages.AddPagesFromExternalLinkUsage("www.cats.com");
pages.AddPagesFromUserContributions("CatLover85");

Brief intro

[edit]
// Read a page and append it with a new section
<s>WikiPage page = enWikipedia.ReadPage("User:" + loginName + "/Sandbox");</s>
page.Append("Hello world. ~~~~", "New section");

// Work directly with page's content
page.content.Replace("world", "World");
page.Write("Capitalized all World");

// Build a list of pages from a category
<s>PageList videoGamePages = enWikipedia.GetCategoryPageList("Category:2010 video games");</s>

Categories

[edit]
// Simplest way to retrieve a category's page list
<s>PageList videoGamePages = enWikipedia.GetCategoryPageList("Category:2010 video games");</s>

// Longer way to do the same thing
PageList filmPages = new PageList(enWikipedia);
filmPages.AddPagesFromCategory("Category:2010 films");

// Adding more pages to a page list
filmPages.AddPagesFromCategory("Category:2009 films");
filmPages.AddPagesFromCategory("Category:2008 films");

// Limiting the number of retrieved pages
<s>PageList bookPages = enWikipedia.GetCategoryPageList("Category:2010 books", 25);</s>
// -or-
filmPages.AddPagesFromCategory("Category:2007 films", 50);