{ "info": { "author": "Andres J. Diaz", "author_email": "ajdiaz@connectical.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Communications :: Chat" ], "description": "Whistler Bot\n============\n\nWhistler Bot is an XMPP bot written in python using SleekXMPP_, which is\na requirement. The bot is designed to handle some commands, and it is easy to\nextend.\n\n.. image:: https://pypip.in/v/whistler/badge.png\n :target: https://crate.io/packages/whistler/\n :alt: Latest PyPI version\n\n.. image:: https://pypip.in/d/whistler/badge.png\n :target: https://crate.io/packages/whistler/\n :alt: Number of PyPI downloads\n\nSimple usage:\n\n.. code-block:: bash\n\n $ whistler myconfig.conf\n\nCreate bot programmatically:\n\n.. code-block:: python\n\n from whistler.bot import WhistlerBot\n \n bot = WhistlerBot( \"myjid@myserver.com\", \"mypassword\" )\n bot.start()\n\n\n.. _SleekXMPP: https://github.com/fritzy/SleekXMPP\n\n\nExtending bot\n-------------\nYou can extend the bot functionalities, just see for example the code of the\nwhistler console script. In short you can add commands creating a new class\nfrom WhistlerBot, and define new functions in the form ``cmd_`` plus the\ncommand name, for example, to handle the command *ping*.\n\n.. code-block:: python\n\n from whistler.bot import WhistlerBot\n \n class MyBot(WhistlerBot):\n \n def cmd_ping(self, msg, args):\n return \"pong\"\n\n\nExample chat\n------------\n\n.. image:: doc/source/_static/whistler_screenshot.png\n :align: left\n :alt: An example of chat with Whistler\n\nWhistler allows to send private commands in usual jabber (and of course\nGTalk and Google Hangouts) chat.\n\nAlso public commands are available, prefixed them with \"!\" (exclamation mark),\nas also reply to a direct mention in the form \"whistler:\" or \"whistler,\", where\n\"whistler\" is the nickname of the bot in the MUC::\n\n (Me) whistler: uptime\n (whistler) 17:33:01 up 2 days, ...\n\nCurrently Whistler support a number of features, including tweet from\ncommand, shorting url action and so on...\n\nYou can see the mixins_ directory to see a number of examples for whistler\nand how easy is to extend.\n\n.. _mixins: https://github.com/ajdiaz/whistler/tree/master/whistler/mixins\n\n\nContributions\n-------------\n\nAny new mixin or functionality is welcome to Whistler. If you has been\ndeveloped new one or want new feature, please `send me a message` or a `pull\nrequest`_.\n\n.. _`send me a message`: mailto:ajdiaz@connectical.com\n.. _`pull request`: https://github.com/ajdiaz/whistler/pulls", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/ajdiaz/whistler", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "whistler", "package_url": "https://pypi.org/project/whistler/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/whistler/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/ajdiaz/whistler" }, "release_url": "https://pypi.org/project/whistler/1.5.3/", "requires_dist": null, "requires_python": null, "summary": "An extensible MUC bot for XMPP.", "version": "1.5.3" }, "last_serial": 1109589, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "2b9d844936196d6be6d7ddd8cf8fd6e1", "sha256": "23d9cc07c7f4595fd8ff710033f422b62fa03c85b094aeb5e0af31f50e9a21c0" }, "downloads": -1, "filename": "whistler-1.0.tar.gz", "has_sig": false, "md5_digest": "2b9d844936196d6be6d7ddd8cf8fd6e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7477, "upload_time": "2010-11-01T20:42:48", "url": "https://files.pythonhosted.org/packages/05/12/c07f8687d3cadcd61dcc3a78a1582745636a6f762be2a77351b3d7c8f920/whistler-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "501e589a1e0d447ac5f5c5612b7ab0a4", "sha256": "2b2441e863fbe8e36ab33b54807f743ba98828e95ae93ae535919c02ec103a3c" }, "downloads": -1, "filename": "whistler-1.1.tar.gz", "has_sig": false, "md5_digest": "501e589a1e0d447ac5f5c5612b7ab0a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8186, "upload_time": "2010-11-04T21:11:39", "url": "https://files.pythonhosted.org/packages/f6/3e/f5b42052b8d12401912643238e506ea756155ecdf15fc0597bbd85f32bbf/whistler-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "0b5f577c8f1484654cb7031d55d31bd3", "sha256": "73ed9911ff14840b5adfa813db2ee0f68919e8ad38fe17c6647d36c54fcf1f7b" }, "downloads": -1, "filename": "whistler-1.2-py2.7.egg", "has_sig": false, "md5_digest": "0b5f577c8f1484654cb7031d55d31bd3", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 32052, "upload_time": "2013-01-27T09:55:26", "url": "https://files.pythonhosted.org/packages/6a/58/7e313026d286f44b556c1b526994675870306b396ee86fc2b3d2ae5db446/whistler-1.2-py2.7.egg" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "5b9606599db851cf456dd13e531d8952", "sha256": "e1405668c34c78518ba18174d2575c20802c0c3596b8477ff40e8ae6c368262d" }, "downloads": -1, "filename": "whistler-1.3-py2.7.egg", "has_sig": false, "md5_digest": "5b9606599db851cf456dd13e531d8952", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 32554, "upload_time": "2013-01-27T21:02:39", "url": "https://files.pythonhosted.org/packages/66/2f/a7d68f033635532f27bd73d1230fc556daf7a6826ac6c5f912ef94c88c27/whistler-1.3-py2.7.egg" } ], "1.4": [], "1.5.1": [ { "comment_text": "", "digests": { "md5": "afee8a9bceb761dff5ee1af5acde765d", "sha256": "156937765318177ddc4b0be82b8797181f575a5f7edb46c9aa5a1a6b2df9d7cd" }, "downloads": -1, "filename": "whistler-1.5.1.tar.gz", "has_sig": false, "md5_digest": "afee8a9bceb761dff5ee1af5acde765d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12567, "upload_time": "2014-05-30T17:32:31", "url": "https://files.pythonhosted.org/packages/75/f1/966694049b46d9f887666394db281cf73fd7a580435a64364243f2223316/whistler-1.5.1.tar.gz" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "a6b2ae2f95a0fbc9696211baf4a7d487", "sha256": "c0c90e58783772a33df9c131c24e7ad60b874ad3a0b27f3891fad66f835d53e2" }, "downloads": -1, "filename": "whistler-1.5.2.tar.gz", "has_sig": false, "md5_digest": "a6b2ae2f95a0fbc9696211baf4a7d487", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12679, "upload_time": "2014-05-30T18:11:04", "url": "https://files.pythonhosted.org/packages/16/75/1694120bd794d20002a27d4c85211ad80c0a5dc07f325cccda0fd3e8c742/whistler-1.5.2.tar.gz" } ], "1.5.3": [ { "comment_text": "", "digests": { "md5": "7842876c3f197b7884a852faa69436b3", "sha256": "bccae2d11d2231230d60a63a1f0f1e6a796afd1960ecb0aff78c27a635753866" }, "downloads": -1, "filename": "whistler-1.5.3.tar.gz", "has_sig": false, "md5_digest": "7842876c3f197b7884a852faa69436b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12679, "upload_time": "2014-05-31T07:54:36", "url": "https://files.pythonhosted.org/packages/5a/48/bbc9d989c7d7068e3459fdfa7a3a662bdf0caa498856e0e15b0b1ff1ffc6/whistler-1.5.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7842876c3f197b7884a852faa69436b3", "sha256": "bccae2d11d2231230d60a63a1f0f1e6a796afd1960ecb0aff78c27a635753866" }, "downloads": -1, "filename": "whistler-1.5.3.tar.gz", "has_sig": false, "md5_digest": "7842876c3f197b7884a852faa69436b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12679, "upload_time": "2014-05-31T07:54:36", "url": "https://files.pythonhosted.org/packages/5a/48/bbc9d989c7d7068e3459fdfa7a3a662bdf0caa498856e0e15b0b1ff1ffc6/whistler-1.5.3.tar.gz" } ] }