{ "info": { "author": "Ben Kurtovic", "author_email": "ben.kurtovic@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Topic :: Communications :: Chat :: Internet Relay Chat", "Topic :: Internet :: WWW/HTTP" ], "description": "EarwigBot\n=========\n\nEarwigBot_ is a Python_ robot that edits Wikipedia_ and interacts with people\nover IRC_. This file provides a basic overview of how to install and setup the\nbot; more detailed information is located in the ``docs/`` directory (available\nonline at PyPI_).\n\nHistory\n-------\n\nDevelopment began, based on the `Pywikipedia framework`_, in early 2009.\nApproval for its first task, a `copyright violation detector`_, was carried out\nin May, and the bot has been running consistently ever since (with the\nexception of Jan/Feb 2011). It currently handles `several ongoing tasks`_\nranging from statistics generation to category cleanup, and on-demand tasks\nsuch as WikiProject template tagging. Since it started running, the bot has\nmade over 50,000 edits.\n\nA project to rewrite it from scratch began in early April 2011, thus moving\naway from the Pywikipedia framework and allowing for less overall code, better\nintegration between bot parts, and easier maintenance.\n\nInstallation\n------------\n\nThis package contains the core ``earwigbot``, abstracted enough that it should\nbe usable and customizable by anyone running a bot on a MediaWiki site. Since\nit is component-based, the IRC components can be disabled if desired. IRC\ncommands and bot tasks specific to `my instance of EarwigBot`_ that I don't\nfeel the average user will need are available from the repository\n`earwigbot-plugins`_.\n\nIt's recommended to run the bot's unit tests before installing. Run ``python\nsetup.py test`` from the project's root directory. Note that some\ntests require an internet connection, and others may take a while to run.\nCoverage is currently rather incomplete.\n\nLatest release (v0.3)\n~~~~~~~~~~~~~~~~~~~~~\n\nEarwigBot is available from the `Python Package Index`_, so you can install the\nlatest release with ``pip install earwigbot`` (`get pip`_).\n\nIf you get an error while pip is installing dependencies, you may be missing\nsome header files. For example, on Ubuntu, see `this StackOverflow post`_.\n\nYou can also install it from source [1]_ directly::\n\n curl -Lo earwigbot.tgz https://github.com/earwig/earwigbot/tarball/v0.3\n tar -xf earwigbot.tgz\n cd earwig-earwigbot-*\n python setup.py install\n cd ..\n rm -r earwigbot.tgz earwig-earwigbot-*\n\nDevelopment version\n~~~~~~~~~~~~~~~~~~~\n\nYou can install the development version of the bot from ``git`` by using\nsetuptools's ``develop`` command [1]_, probably on the ``develop`` branch which\ncontains (usually) working code. ``master`` contains the latest release.\nEarwigBot uses `git flow`_, so you're free to browse by tags or by new features\n(``feature/*`` branches)::\n\n git clone git://github.com/earwig/earwigbot.git earwigbot\n cd earwigbot\n python setup.py develop\n\nSetup\n-----\n\nThe bot stores its data in a \"working directory\", including its config file and\ndatabases. This is also the location where you will place custom IRC commands\nand bot tasks, which will be explained later. It doesn't matter where this\ndirectory is, as long as the bot can write to it.\n\nStart the bot with ``earwigbot path/to/working/dir``, or just ``earwigbot`` if\nthe working directory is the current directory. It will notice that no\n``config.yml`` file exists and take you through the setup process.\n\nThere is currently no way to edit the ``config.yml`` file from within the bot\nafter it has been created, but YAML is a very straightforward format, so you\nshould be able to make any necessary changes yourself. Check out the\n`explanation of YAML`_ on Wikipedia for help.\n\nAfter setup, the bot will start. This means it will connect to the IRC servers\nit has been configured for, schedule bot tasks to run at specific times, and\nthen wait for instructions (as commands on IRC). For a list of commands, say\n\"``!help``\" (commands are messages prefixed with an exclamation mark).\n\nYou can stop the bot at any time with Control+C, same as you stop a normal\nPython program, and it will try to exit safely. You can also use the\n\"``!quit``\" command on IRC.\n\nCustomizing\n-----------\n\nThe bot's working directory contains a ``commands`` subdirectory and a\n``tasks`` subdirectory. Custom IRC commands can be placed in the former,\nwhereas custom wiki bot tasks go into the latter. Developing custom modules is\nexplained below, and in more detail through the bot's documentation on PyPI_\n(or in the ``docs/`` dir).\n\nNote that custom commands will override built-in commands and tasks with the\nsame name.\n\n``Bot`` and ``BotConfig``\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n`earwigbot.bot.Bot`_ is EarwigBot's main class. You don't have to instantiate\nthis yourself, but it's good to be familiar with its attributes and methods,\nbecause it is the main way to communicate with other parts of the bot. A\n``Bot`` object is accessible as an attribute of commands and tasks (i.e.,\n``self.bot``).\n\n`earwigbot.config.BotConfig`_ stores configuration information for the bot. Its\ndocstring explains what each attribute is used for, but essentially each \"node\"\n(one of ``config.components``, ``wiki``, ``irc``, ``commands``, ``tasks``, and\n``metadata``) maps to a section of the bot's ``config.yml`` file. For example,\nif ``config.yml`` includes something like::\n\n irc:\n frontend:\n nick: MyAwesomeBot\n channels:\n - \"##earwigbot\"\n - \"#channel\"\n - \"#other-channel\"\n\n...then ``config.irc[\"frontend\"][\"nick\"]`` will be ``\"MyAwesomeBot\"`` and\n``config.irc[\"frontend\"][\"channels\"]`` will be ``[\"##earwigbot\", \"#channel\",\n\"#other-channel\"]``.\n\nCustom IRC commands\n~~~~~~~~~~~~~~~~~~~\n\nCustom commands are subclasses of `earwigbot.commands.Command`_ that override\n``Command``'s ``process()`` (and optionally ``check()``, ``setup()``, or\n``unload()``) methods.\n\nThe bot has a wide selection of built-in commands and plugins to act as sample\ncode and/or to give ideas. Start with test_, and then check out chanops_ and\nafc_status_ for some more complicated scripts.\n\nCustom bot tasks\n~~~~~~~~~~~~~~~~\n\nCustom tasks are subclasses of `earwigbot.tasks.Task`_ that override ``Task``'s\n``run()`` (and optionally ``setup()`` or ``unload()``) methods.\n\nSee the built-in wikiproject_tagger_ task for a relatively straightforward\ntask, or the afc_statistics_ plugin for a more complicated one.\n\nThe Wiki Toolset\n----------------\n\nEarwigBot's answer to the `Pywikipedia framework`_ is the Wiki Toolset\n(``earwigbot.wiki``), which you will mainly access through ``bot.wiki``.\n\n``bot.wiki`` provides three methods for the management of Sites -\n``get_site()``, ``add_site()``, and ``remove_site()``. Sites are objects that\nsimply represent a MediaWiki site. A single instance of EarwigBot (i.e. a\nsingle *working directory*) is expected to relate to a single site or group of\nsites using the same login info (like all WMF wikis with CentralAuth).\n\nLoad your default site (the one that you picked during setup) with\n``site = bot.wiki.get_site()``.\n\nNot all aspects of the toolset are covered in the docs. Explore `its code and\ndocstrings`_ to learn how to use it in a more hands-on fashion. For reference,\n``bot.wiki`` is an instance of ``earwigbot.wiki.SitesDB`` tied to the\n``sites.db`` file in the bot's working directory.\n\nFootnotes\n---------\n\n- Questions, comments, or suggestions about the documentation? `Let me know`_\n so I can improve it for other people.\n\n.. [1] ``python setup.py install``/``develop`` may require root, or use the\n ``--user`` switch to install for the current user only.\n\n.. _EarwigBot: http://en.wikipedia.org/wiki/User:EarwigBot\n.. _Python: http://python.org/\n.. _Wikipedia: http://en.wikipedia.org/\n.. _IRC: http://en.wikipedia.org/wiki/Internet_Relay_Chat\n.. _PyPI: http://packages.python.org/earwigbot\n.. _Pywikipedia framework: http://pywikipediabot.sourceforge.net/\n.. _copyright violation detector: http://en.wikipedia.org/wiki/Wikipedia:Bots/Requests_for_approval/EarwigBot_1\n.. _several ongoing tasks: http://en.wikipedia.org/wiki/User:EarwigBot#Tasks\n.. _my instance of EarwigBot: http://en.wikipedia.org/wiki/User:EarwigBot\n.. _earwigbot-plugins: https://github.com/earwig/earwigbot-plugins\n.. _Python Package Index: https://pypi.python.org/pypi/earwigbot\n.. _get pip: http://pypi.python.org/pypi/pip\n.. _this StackOverflow post: http://stackoverflow.com/questions/6504810/how-to-install-lxml-on-ubuntu/6504860#6504860\n.. _git flow: http://nvie.com/posts/a-successful-git-branching-model/\n.. _explanation of YAML: http://en.wikipedia.org/wiki/YAML\n.. _earwigbot.bot.Bot: https://github.com/earwig/earwigbot/blob/develop/earwigbot/bot.py\n.. _earwigbot.config.BotConfig: https://github.com/earwig/earwigbot/blob/develop/earwigbot/config.py\n.. _earwigbot.commands.Command: https://github.com/earwig/earwigbot/blob/develop/earwigbot/commands/__init__.py\n.. _test: https://github.com/earwig/earwigbot/blob/develop/earwigbot/commands/test.py\n.. _chanops: https://github.com/earwig/earwigbot/blob/develop/earwigbot/commands/chanops.py\n.. _afc_status: https://github.com/earwig/earwigbot-plugins/blob/develop/commands/afc_status.py\n.. _earwigbot.tasks.Task: https://github.com/earwig/earwigbot/blob/develop/earwigbot/tasks/__init__.py\n.. _wikiproject_tagger: https://github.com/earwig/earwigbot/blob/develop/earwigbot/tasks/wikiproject_tagger.py\n.. _afc_statistics: https://github.com/earwig/earwigbot-plugins/blob/develop/tasks/afc_statistics.py\n.. _its code and docstrings: https://github.com/earwig/earwigbot/tree/develop/earwigbot/wiki\n.. _Let me know: ben.kurtovic@gmail.com", "description_content_type": "", "docs_url": "https://pythonhosted.org/earwigbot/", "download_url": "https://github.com/earwig/earwigbot/tarball/v0.3+ea4ee766", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/earwig/earwigbot", "keywords": "earwig earwigbot irc wikipedia wiki mediawiki", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "earwigbot", "package_url": "https://pypi.org/project/earwigbot/", "platform": "", "project_url": "https://pypi.org/project/earwigbot/", "project_urls": { "Download": "https://github.com/earwig/earwigbot/tarball/v0.3+ea4ee766", "Homepage": "https://github.com/earwig/earwigbot" }, "release_url": "https://pypi.org/project/earwigbot/0.3/", "requires_dist": null, "requires_python": "", "summary": "EarwigBot is a Python robot that edits Wikipedia and interacts with people over IRC.", "version": "0.3" }, "last_serial": 4979925, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "bb9b28de94219b53ad98d50227f7409b", "sha256": "484d0467d315d42a047654db5d7a40bcb8fd3e96224ef88701d1c95034ac9732" }, "downloads": -1, "filename": "earwigbot-0.1.tar.gz", "has_sig": false, "md5_digest": "bb9b28de94219b53ad98d50227f7409b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89035, "upload_time": "2012-08-31T06:32:48", "url": "https://files.pythonhosted.org/packages/96/e6/0d10aee08e0397cdeaf02e7036fa0b9e25aef26ca44425d62641802eb2ce/earwigbot-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "3e727fe24f8e5efa0522af8c8cbcc5fd", "sha256": "a637a943cf0968e72a26bf5569bd1b29fce6b6319771eee72cde2508aebc7c33" }, "downloads": -1, "filename": "earwigbot-0.2.tar.gz", "has_sig": true, "md5_digest": "3e727fe24f8e5efa0522af8c8cbcc5fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104054, "upload_time": "2015-11-09T05:12:20", "url": "https://files.pythonhosted.org/packages/c5/43/09de9e1345845e907665914559bfa4e140723793eba613bc9cd1af568970/earwigbot-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "6b9a0e886d72469dfd7ad37707e5fcc8", "sha256": "23c6965d60fd270b89bf425e240d617995e216f9afe7047b5cc530ccfa36f8de" }, "downloads": -1, "filename": "earwigbot-0.3.tar.gz", "has_sig": true, "md5_digest": "6b9a0e886d72469dfd7ad37707e5fcc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110746, "upload_time": "2019-03-24T21:28:53", "url": "https://files.pythonhosted.org/packages/f7/02/376d762b12f04cef2ef77b97d6372803e3ce896545fc5b27969591e1922a/earwigbot-0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6b9a0e886d72469dfd7ad37707e5fcc8", "sha256": "23c6965d60fd270b89bf425e240d617995e216f9afe7047b5cc530ccfa36f8de" }, "downloads": -1, "filename": "earwigbot-0.3.tar.gz", "has_sig": true, "md5_digest": "6b9a0e886d72469dfd7ad37707e5fcc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110746, "upload_time": "2019-03-24T21:28:53", "url": "https://files.pythonhosted.org/packages/f7/02/376d762b12f04cef2ef77b97d6372803e3ce896545fc5b27969591e1922a/earwigbot-0.3.tar.gz" } ] }