Wikia

Wikia API Wiki

Client libraries

Comments2
25pages on
this wiki


There are many client libraries available for the various APIs that can be used to access Wikia data. Using them can give you a huge head-start on your app. Why write your own library when you can focus on writing your app instead!? :)

TODO: Maybe extract the tables into templates or subpages which can then be transcluded both on this page and on the page for the specific API's documentation.

MediaWiki API Edit

A ton of libraries can be found on MediaWiki.org's Client code page but with no support-matrix. Try to find the best ones and put them on this chart.

Also, Bot frameworks on Wikipedia.


For more background on the libraries, please read the notes below.

Language Library Get article wikitext Login Editing Get categories for page Get pages in category History Delete Protect Upload LyricWiki Wikia
Common Lisp cl-mediawiki
Yes
Yes
Yes
No
No
Yes
No
No
No
No
No
Delphi/Object Pascal MediaWiki API Wrapper
?
Yes
Yes
Yes
Yes
Yes
Yes
No
Yes
No
No
Haskell mediawiki package
?
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
Java JWBF
Yes
Yes
Yes
?
Yes
?
Yes
?
Yes
No
No
Java Wiki.java
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
Yes
No
No
JavaScript JS MediaWiki Client
Yes
Yes
Yes
Partial
Yes
Partial
Yes
?
No
No
No
.NET ApiEdit
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
OCaml ocaml-mediawiki
?
Yes
Yes
?
No
?
?
?
Yes
No
No
Perl Perl MediaWiki API
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
PHP botclasses.php
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
Python PyWikipediaBot
Yes
Yes
Yes
Yes
Yes
No
Yes
Yes
Yes
No
No
Ruby MediaWiki::Gateway
Yes
Yes
Yes
Partial
Partial
Partial
Yes
Partial
Yes
Partial
No
Tcl MediaWiki Tcl Bot Framework
Yes
Yes
Yes
?
Yes
?
?
?
No
No
No

NotesEdit

  • The libraries which say they "Partially" support certain calls usually have a generic function where you can make whatever API calls you want, the input and output just aren't pre-formatted as functions.
  • ApiEdit is what powers AutoWikiBrowser.
  • The Delphi/Object Pascal MediaWiki API wrapper requires the JEDI Code Library for dependencies.
  • Perl MediaWiki API was developed by Wikipedians and Sean Colombo and is used a decent amount at Wikia, specifically on LyricWiki.
  • PyWikipediaBot - One of the most widely used bot frameworks for wikipedia.
  • JS MediaWiki Client was developed at Wikia and is used there regularly (but is not Wikia-specific, it should work for any MediaWiki installation).
  • There are a ton of PHP libraries for MediaWiki. So many, that they have their own PHP bot framework support matrix on Wikipedia.
  • Since this is the listing of MediaWiki API libraries, most of them won't have support for the LyricWiki API and Wikia API. If you need a separate client library for those, please see the Client libraries page.

Is there a good way to make this support-matrix and the list on mediawiki.org not diverge or require duplicate work?

LyricWiki API Edit

With REST and SOAP, it's so easy that most people appear to just roll-their-own code for accessing the system. However, as packages become available, they should be added to this table:

Language Library set apiKey getSong getArtist getHometown getSOTD getTopSongs postSong
Java  ??
?
?
?
?
?
?
?
JavaScript  ??
?
?
?
?
?
?
?
Perl Perl MediaWiki API
Partial
Yes
Yes
Yes
Yes
Yes
Yes
Perl Lyrics-Fetcher module
No
Yes
No
No
No
No
No
PHP  ??
?
?
?
?
?
?
?
Python  ??
?
?
?
?
?
?
?
Ruby  ??
?
?
?
?
?
?
?

Note that not all functions are implemented on both REST and SOAP. Please refer to the table of what is implemented where on LyricWiki API/Support Matrix. If you need any of the functions on there, but they don't exist through the method you need yet, please let us know and we'll try to implement it right away.

Since SOAP APIs are made to be used without client libraries, the SOAP functionality should work for many languages without anything other than a SOAP library. For more information, see: LyricWiki_API/SOAP#Portability_Testing.

Wikia Custom API (Nirvana) Edit

Language Library get a method post to method html return type json return type fully customizable requests
(set Controller, Method, format, etc.)
Java  ??
?
?
?
?
?
JavaScript jquery.wikia.js*
Yes
Yes
Yes
Yes
Yes
PHP  ??
?
?
?
?
?
  • * jquery.wikia.js has other functionality also and the Nirvana code hasn't been extracted out yet. It contains most of the extensions to jquery functionality that Wikia uses. The file is included on the live Wikia site and expects other things such as jquery (possibly other variables?) to already be loaded.

Around Wikia's network

Random Wiki