@@ -7,7 +7,6 @@ wiki Package | |||
.. automodule:: earwigbot.wiki | |||
:members: | |||
:undoc-members: | |||
:show-inheritance: | |||
:mod:`category` Module | |||
---------------------- | |||
@@ -15,7 +14,6 @@ wiki Package | |||
.. automodule:: earwigbot.wiki.category | |||
:members: | |||
:undoc-members: | |||
:show-inheritance: | |||
:mod:`constants` Module | |||
----------------------- | |||
@@ -23,7 +21,6 @@ wiki Package | |||
.. automodule:: earwigbot.wiki.constants | |||
:members: | |||
:undoc-members: | |||
:show-inheritance: | |||
:mod:`copyright` Module | |||
----------------------- | |||
@@ -31,7 +28,6 @@ wiki Package | |||
.. automodule:: earwigbot.wiki.copyright | |||
:members: | |||
:undoc-members: | |||
:show-inheritance: | |||
:mod:`page` Module | |||
------------------ | |||
@@ -47,7 +43,6 @@ wiki Package | |||
.. automodule:: earwigbot.wiki.site | |||
:members: | |||
:undoc-members: | |||
:show-inheritance: | |||
:mod:`sitesdb` Module | |||
--------------------- | |||
@@ -55,7 +50,6 @@ wiki Package | |||
.. automodule:: earwigbot.wiki.sitesdb | |||
:members: | |||
:undoc-members: | |||
:show-inheritance: | |||
:mod:`user` Module | |||
------------------ | |||
@@ -63,5 +57,3 @@ wiki Package | |||
.. automodule:: earwigbot.wiki.user | |||
:members: | |||
:undoc-members: | |||
:show-inheritance: | |||
@@ -21,18 +21,26 @@ | |||
# SOFTWARE. | |||
""" | |||
EarwigBot's Wiki Toolset | |||
**EarwigBot's Wiki Toolset** | |||
This is a collection of classes and functions to read from and write to | |||
Wikipedia and other wiki sites. No connection whatsoever to python-wikitools | |||
written by Mr.Z-man, other than a similar purpose. We share no code. | |||
Wikipedia and other wiki sites. No connection whatsoever to `python-wikitools | |||
<http://code.google.com/p/python-wikitools/>`_ written by `Mr.Z-man | |||
<http://en.wikipedia.org/wiki/User:Mr.Z-man>`_, other than a similar purpose. | |||
We share no code. | |||
Import the toolset directly with `from earwigbot import wiki`. If using the | |||
built-in integration with the rest of the bot, Bot() objects contain a `wiki` | |||
attribute, which is a SitesDB object tied to the sites.db file located in the | |||
same directory as config.yml. That object has the principal methods get_site, | |||
add_site, and remove_site that should handle all of your Site (and thus, Page, | |||
Category, and User) needs. | |||
Import the toolset directly with ``from earwigbot import wiki``. If using the | |||
built-in integration with the rest of the bot, :py:class:`~earwigbot.bot.Bot` | |||
objects contain a :py:attr:`~earwigbot.bot.Bot.wiki` attribute, which is a | |||
:py:class:`~earwigbot.wiki.sitesdb.SitesDB` object tied to the :file:`sites.db` | |||
file located in the same directory as :file:`config.yml`. That object has the | |||
principal methods :py:meth:`~earwigbot.wiki.sitesdb.SitesDB.get_site`, | |||
:py:meth:`~earwigbot.wiki.sitesdb.SitesDB.add_site`, and | |||
:py:meth:`~earwigbot.wiki.sitesdb.SitesDB.remove_site` that should handle all | |||
of your :py:class:`~earwigbot.wiki.site.Site` (and thus, | |||
:py:class:`~earwigbot.wiki.page.Page`, | |||
:py:class:`~earwigbot.wiki.category.Category`, and | |||
:py:class:`~earwigbot.wiki.user.User`) needs. | |||
""" | |||
from earwigbot.wiki.category import * | |||
@@ -26,16 +26,20 @@ __all__ = ["Category"] | |||
class Category(Page): | |||
""" | |||
EarwigBot's Wiki Toolset: Category Class | |||
**EarwigBot's Wiki Toolset: Category Class** | |||
Represents a Category on a given Site, a subclass of Page. Provides | |||
additional methods, but Page's own methods should work fine on Category | |||
objects. Site.get_page() will return a Category instead of a Page if the | |||
given title is in the category namespace; get_category() is shorthand, | |||
because it accepts category names without the namespace prefix. | |||
Represents a category on a given :py:class:`~earwigbot.wiki.site.Site`, a | |||
subclass of :py:class:`~earwigbot.wiki.page.Page`. Provides additional | |||
methods, but :py:class:`~earwigbot.wiki.page.Page`'s own methods should | |||
work fine on :py:class:`Category` objects. :py:meth:`site.get_page() | |||
<earwigbot.wiki.site.Site.get_page>` will return a :py:class:`Category` | |||
instead of a :py:class:`~earwigbot.wiki.page.Page` if the given title is in | |||
the category namespace; :py:meth:`~earwigbot.wiki.site.Site.get_category` | |||
is shorthand, accepting category names without the namespace prefix. | |||
Public methods: | |||
get_members -- returns a list of page titles in the category | |||
*Public methods:* | |||
- :py:meth:`get_members`: returns a list of page titles in the category | |||
""" | |||
def __repr__(self): | |||
@@ -85,14 +89,15 @@ class Category(Page): | |||
def get_members(self, use_sql=False, limit=None): | |||
"""Returns a list of page titles in the category. | |||
If `use_sql` is True, we will use a SQL query instead of the API. Pages | |||
will be returned as tuples of (title, pageid) instead of just titles. | |||
If *use_sql* is ``True``, we will use a SQL query instead of the API. | |||
Pages will be returned as tuples of ``(title, pageid)`` instead of just | |||
titles. | |||
If `limit` is provided, we will provide this many titles, or less if | |||
the category is smaller. `limit` defaults to 50 for API queries; normal | |||
If *limit* is provided, we will provide this many titles, or less if | |||
the category is smaller. It defaults to 50 for API queries; normal | |||
users can go up to 500, and bots can go up to 5,000 on a single API | |||
query. If we're using SQL, the limit is None by default (returning all | |||
pages in the category), but an arbitrary limit can still be chosen. | |||
query. If we're using SQL, the limit is ``None`` by default (returning | |||
all pages in the category), but an arbitrary limit can still be chosen. | |||
""" | |||
if use_sql: | |||
return self._get_members_via_sql(limit) | |||
@@ -21,15 +21,16 @@ | |||
# SOFTWARE. | |||
""" | |||
EarwigBot's Wiki Toolset: Constants | |||
**EarwigBot's Wiki Toolset: Constants** | |||
This module defines some useful constants: | |||
* USER_AGENT - our default User Agent when making API queries | |||
* NS_* - default namespace IDs for easy lookup | |||
Import directly with `from earwigbot.wiki import constants` or | |||
`from earwigbot.wiki.constants import *`. These are also available from | |||
earwigbot.wiki (e.g. `earwigbot.wiki.USER_AGENT`). | |||
- :py:const:`USER_AGENT`: our default User Agent when making API queries | |||
- :py:const:`NS_*`: default namespace IDs for easy lookup | |||
Import directly with ``from earwigbot.wiki import constants`` or | |||
``from earwigbot.wiki.constants import *``. These are also available from | |||
:py:mod:`earwigbot.wiki` directly (e.g. ``earwigbot.wiki.USER_AGENT``). | |||
""" | |||
# Default User Agent when making API queries: | |||
@@ -50,11 +50,18 @@ class Site(object): | |||
""" | |||
**EarwigBot's Wiki Toolset: Site Class** | |||
Represents a Site, with support for API queries and returning Pages, Users, | |||
and Categories. The constructor takes a bunch of arguments and you probably | |||
won't need to call it directly, rather tools.get_site() for returning Site | |||
instances, tools.add_site() for adding new ones to config, and | |||
tools.del_site() for removing old ones from config, should suffice. | |||
Represents a site, with support for API queries and returning | |||
:py:class:`~earwigbot.wiki.page.Page`, | |||
:py:class:`~earwigbot.wiki.user.User`, | |||
and :py:class:`~earwigbot.wiki.category.Category` objects. The constructor | |||
takes a bunch of arguments and you probably won't need to call it directly, | |||
rather :py:meth:`wiki.get_site() <earwigbot.wiki.sitesdb.SitesDB.get_site>` | |||
for returning :py:class:`Site` | |||
instances, :py:meth:`wiki.add_site() | |||
<earwigbot.wiki.sitesdb.SitesDB.add_site>` for adding new ones to our | |||
database, and :py:meth:`wiki.remove_site() | |||
<earwigbot.wiki.sitesdb.SitesDB.remove_site>` for removing old ones from | |||
our database, should suffice. | |||
*Attributes:* | |||