{ "info": { "author": "The TJHSST Computer Systems Lab", "author_email": "cslbot@pefoley.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Programming Language :: Python :: 3.5", "Topic :: Communications :: Chat :: Internet Relay Chat" ], "description": "======\nCslBot\n======\n\n.. image:: https://travis-ci.org/tjcsl/cslbot.svg?branch=master\n :target: https://travis-ci.org/tjcsl/cslbot\n :alt: Travis CI\n\n.. image:: https://codeclimate.com/github/tjcsl/cslbot/badges/gpa.svg\n :target: https://codeclimate.com/github/tjcsl/cslbot\n :alt: Code Climate\n\n.. image:: https://coveralls.io/repos/tjcsl/cslbot/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/tjcsl/cslbot?branch=master\n :alt: Coverage\n\n.. image:: https://api.codacy.com/project/badge/grade/d3019bafce874b7192978038ae2f66ae\n :target: https://www.codacy.com/app/pefoley2/cslbot\n :alt: Codacy\n \n.. image:: https://readthedocs.org/projects/cslbot/badge/?version=latest\n :target: https://cslbot.readthedocs.io\n :alt: Docs\n\nA bot written by the TJHSST CSL for IRC. \n\nSupport\n-------\nTo quote the GPL: \n\n\"This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\"\n\nThat said, the bot devs hangout in #tjcsl-cslbot on freenode and are usually happy to answer your questions.\n\nDocumentation\n-------------\nSee https://cslbot.readthedocs.io for api docs.\n\nChangelog\n---------\nSee https://github.com/tjcsl/cslbot/releases for the changelog.\n\nSetup\n-----\nRun ./bot.py to setup the initial configuration and change values in config.cfg as needed.\n\nYou must copy static/groups.example to groups.cfg and make any needed changes to configure the commands and/or hooks you want.\n\nIf you want the tjhsst-specific commands, run `pip install git+git://github.com/tjcsl/cslbot-tjhsst` and add cslbot-tjhsst to extramodules.\n\nPython must be at least 3.5.\n\nRun `pip install .` to install the required libraries.\n\nYou must also install the appropriate DBAPI package as explained in the next section (unnecessary if you're using SQLite).\n\nAPI Keys\n--------\n\nWolfram Alpha: http://products.wolframalpha.com/api\n\nDictionary: http://dictionaryapi.com\n\nWeather: http://www.wunderground.com/weather/api\n\nGithub: https://github.com/settings/tokens\n\nFML: http://www.fmylife.com/api/home\n\nGoogle: https://developers.google.com/url-shortener https://developers.google.com/custom-search/json-api/v1/overview\n\nSTANDS4 (zip code): http://www.abbreviations.com/apiuser.php\n\nNote: you need to create a custom search app for xkcd.com to enable xkcd search as well as one for the whole internet to enable !google\nThis can be done at https://cse.google.com/cse/manage/all\nUse the search engine IDs from this page with the api key from https://console.developers.google.com\n\nTumblr: http://www.tumblr.com/oauth/apps\n\nNote: you need the OAuth consumer API key, consumer secret, OAuth token, and OAuth secret, which you can obtain via the Tumblr API console\nat https://api.tumblr.com/console/calls/user/info. You can take the four keys listed in the sample code and put them into your config.cfg\nin that order.\n\nService\n-------\nNote: the init script (scripts/ircbot) is gentoo/openrc specific.\n\nDatabase Backends\n-----------------\nExample configurations:\n\n1. PostgreSQL - engine: postgresql://ircbot:dbpass@/dbname\n\n2. SQLite - engine: sqlite:///db.sqlite\n\n3. MySQL/MariaDB - engine: mysql://ircbot:dbpass@/dbname\n\nNote that for mysql you need to use the ROW_FORMAT=DYNAMIC option on the babble table.\n\nThis may require you to set innodb_file_format=Barracuda and innodb_large_prefix=on in my.cnf\n\nSee: http://docs.sqlalchemy.org/en/latest/core/engines.html for more information on SQLAlchemy database engine URLs.\n\nNote that the primary install uses postgres, so sqlite and mysql receive less testing.\n\nIf you intend to use SQLite, the default DBAPI is provided by a built-in python module (sqlite3), so you don't need to install any additional packages.\n\nIf you intend to use PostgreSQL, the default DBAPI is provided by the psycopg2 package (https://pypi.python.org/pypi/psycopg2)\n\nIf you intend to use MySQL, the default DBAPI is provided by the mysql-python package (https://pypi.python.org/pypi/MySQL-python)\n\nSee the SQLAlchemy documentation if you want to use another backend.\n\nMigrations\n----------\nYou can run alembic -c config.cfg upgrade head at any time to ensure that you have the latest database migration.\n\nAdding Modules\n--------------\nTo add a module place a .py file in the commands directory.\n\nThe file must contain a method that is decorated with the @Command decorator;\nthis is used in the form ``@Command(['command_name_1', 'command_name_2'], ['arg_required_1', 'arg_required_2'])``.\nThe file will only be run if it is added to helpers/groups.cfg.\n\nGeoIP\n-----\nTo get GeoIP support, download the free database (in MMDB format) from http://dev.maxmind.com/geoip/geoip2/geolite2/.\nYou will then need to store the db at static/geoip.db.\n\nparsedata.py\n------------\nThis python script parses the db and generates jinja2-templated\nhtml files containing quotes, score, polls, etc. It is intended to be used as a cronjob with\na webserver to serve quotes over HTTP.\n\nparselogs.py\n------------\nThis script parses the logs and generates human-readable logs for each channel the bot is in.\nIt is intended to be used as a cronjob to generate and optionally make available logs.\n\nNetwork type\n------------\nDifferent IRC networks use different software, such as atheme or UnrealIRCd. Certain details can vary between software, such as the method for\ntemporarily quieting users. You should set your network's type in config.cfg. The following values are supported:\n\n* atheme (default)\n\n* unreal\n\nServices type\n-------------\nServices, such as NickServ and ChanServ, are generally independent of the network software. This can be set on the servicestype line in config.cfg.\nThe following values are supported:\n\n* atheme (default)\n\n* ircservices\n\n\nContributing\n------------\nRun flake8 --max-line-length 200 .\n\nRun ./scripts/build_docs.sh\n\nRun ./scripts/mypy.sh\n\nRun ./setup.py egg_info\n\nCommit the changes.\n\nSubmit a PR and make sure the travis build is green.\n\nCredits\n-------\nLicensed under the GPL v2\n\nThis product may use GeoLite2 data created by MaxMind, available from http://www.maxmind.com.\n\nCreated by fwilson (Fox Wilson, Class of 2016). \n\nRewritten by pfoley (Peter Foley, Class of 2013). \n\nImproved by sdamashek (Samuel Damashek, Class of 2017). \n\nImproved by bob_twinkles (Reed Koser, Class of 2015). \n\nImproved by csssuf. \n\nImproved by skasturi. (Srijay Kasturi) \n\nCriticized and subsequently improved by creffett. (Chris Reffett, Class of 2011).\n\nImproved by wzhang (William Zhang, Class of 2018).\n", "description_content_type": null, "docs_url": "https://pythonhosted.org/CslBot/", "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tjcsl/cslbot", "keywords": "csl", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "CslBot", "package_url": "https://pypi.org/project/CslBot/", "platform": "", "project_url": "https://pypi.org/project/CslBot/", "project_urls": { "Homepage": "https://github.com/tjcsl/cslbot" }, "release_url": "https://pypi.org/project/CslBot/0.21/", "requires_dist": null, "requires_python": "", "summary": "An easily extensible, modular irc bot.", "version": "0.21" }, "last_serial": 2348700, "releases": { "0.12": [ { "comment_text": "", "digests": { "md5": "847d81f6ceecbbd329c7c2728abcbada", "sha256": "6c60511f92f3ec2924482545f01d06e2122358285bab82023a4a8454c42a2e97" }, "downloads": -1, "filename": "CslBot-0.12.tar.gz", "has_sig": false, "md5_digest": "847d81f6ceecbbd329c7c2728abcbada", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 379856, "upload_time": "2015-04-25T19:51:16", "url": "https://files.pythonhosted.org/packages/19/9f/0d37c73bb99f514a49ab19c8e68251e84ed4ed8331e2850c0f9c721afaed/CslBot-0.12.tar.gz" } ], "0.13": [ { "comment_text": "", "digests": { "md5": "27d09f2c6545427bbd29ed8d4aac5e40", "sha256": "ba96e6ebf3c9d03dbd98603ebdc9047e184b43f3d74b81b576fc7a9166aa8373" }, "downloads": -1, "filename": "CslBot-0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "27d09f2c6545427bbd29ed8d4aac5e40", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 483356, "upload_time": "2015-04-27T17:05:24", "url": "https://files.pythonhosted.org/packages/fd/92/75cd4e8fa7afad72adf4575d697a6b283efa875087bbdd8f21fb072f8c36/CslBot-0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af5f2e2ad31744cb0e900966c6efaf53", "sha256": "5f76c195c97e7242f4448026207a891cb7c0f6b28e2c7446ddbf4f20af77ad97" }, "downloads": -1, "filename": "CslBot-0.13.tar.gz", "has_sig": false, "md5_digest": "af5f2e2ad31744cb0e900966c6efaf53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 377719, "upload_time": "2015-04-27T17:05:03", "url": "https://files.pythonhosted.org/packages/f2/34/16883dcbabcfa7e4ead3e63da0e0074bdda4328a862d07a1c7c67b8820ea/CslBot-0.13.tar.gz" } ], "0.14": [ { "comment_text": "", "digests": { "md5": "fa794bf4fba073b5b3c1ece2601af06e", "sha256": "620ce090db40aaaeacd1d2a7899885ca1df2e49ef44b767e58deb0aabe6ebb24" }, "downloads": -1, "filename": "CslBot-0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "fa794bf4fba073b5b3c1ece2601af06e", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 483359, "upload_time": "2015-04-27T19:22:36", "url": "https://files.pythonhosted.org/packages/bc/4b/e164147b4c209894f32f1ed84070ea6069449c1b9d4ed01e7984cee0f5c8/CslBot-0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5aaf70ecf318686710fe5878a0c67318", "sha256": "101c694dce6bd7f77e7cffae623a9aab350303b71f1b1b40610cc2db4dcfc0e4" }, "downloads": -1, "filename": "CslBot-0.14.tar.gz", "has_sig": false, "md5_digest": "5aaf70ecf318686710fe5878a0c67318", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 377883, "upload_time": "2015-04-27T19:22:32", "url": "https://files.pythonhosted.org/packages/fe/50/635998719e82d84392747bf5ee5980ac84a0862b6fb86499f9a8fb0df7d0/CslBot-0.14.tar.gz" } ], "0.15": [ { "comment_text": "", "digests": { "md5": "2801077699c214a6deaf9e8d2ef00083", "sha256": "29aa64541be47dc406f1e59012bdde4906c3728e86826be8946ea57ebe17a99c" }, "downloads": -1, "filename": "CslBot-0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "2801077699c214a6deaf9e8d2ef00083", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 486141, "upload_time": "2015-04-29T02:05:44", "url": "https://files.pythonhosted.org/packages/c3/59/1e511bcd1f165d9b7ed668cefe751b44401d15e3205ba24a6ffb9708ebc5/CslBot-0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a794953065d0d585e9ade3412bbee771", "sha256": "bed47ec21b1443d7378146c599759c6f27c8bf86841f1bb708bcb90ea275c7e1" }, "downloads": -1, "filename": "CslBot-0.15.tar.gz", "has_sig": false, "md5_digest": "a794953065d0d585e9ade3412bbee771", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 377996, "upload_time": "2015-04-29T02:05:29", "url": "https://files.pythonhosted.org/packages/3e/7c/e09ef4d779f34b306b65f30018f38ee9cdec2b4fa2e9f5ee2ec235045ec5/CslBot-0.15.tar.gz" } ], "0.16": [ { "comment_text": "", "digests": { "md5": "d4e6d32f70cb074f0029058f15cd8cd4", "sha256": "4b2eb0ca651984564d960c32cb767066a651f576cb532743c0f9487e72df9bc5" }, "downloads": -1, "filename": "CslBot-0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "d4e6d32f70cb074f0029058f15cd8cd4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 491388, "upload_time": "2015-05-23T16:08:01", "url": "https://files.pythonhosted.org/packages/b4/b5/afd3679a04fce5c22860a030807521d645e8daf8ccf2f9d5a7d28cc46583/CslBot-0.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15427a58d624a4fdf35011fc67b59d4a", "sha256": "19d363876dd5a329bad67e7fd95926eef0eb5e4481a4767d0f5f169e5587ccbe" }, "downloads": -1, "filename": "CslBot-0.16.tar.gz", "has_sig": false, "md5_digest": "15427a58d624a4fdf35011fc67b59d4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 379970, "upload_time": "2015-05-23T16:08:06", "url": "https://files.pythonhosted.org/packages/0d/8c/48392712b5a07f6bcdb62e92fa52f1baaf57ae47502149f8a21a1bf67bf5/CslBot-0.16.tar.gz" } ], "0.17": [ { "comment_text": "", "digests": { "md5": "f253bd5a944f253de4987c1561a0694f", "sha256": "7c5148462c6fed90de2fd88f20172b73667bb78b5c836bf07bbf418468b99067" }, "downloads": -1, "filename": "CslBot-0.17-py3-none-any.whl", "has_sig": false, "md5_digest": "f253bd5a944f253de4987c1561a0694f", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 498217, "upload_time": "2015-09-01T14:44:32", "url": "https://files.pythonhosted.org/packages/0d/09/183219fea11ea3e863810125a9b54812d45dff1778ce67f15f6c85530066/CslBot-0.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f33e7cd5c21ac59075244e124d253d75", "sha256": "740af97ffadc3c1d42005f3fa5399c32a76ab41c20c68ae080cc9f1d3c4bba06" }, "downloads": -1, "filename": "CslBot-0.17.tar.gz", "has_sig": false, "md5_digest": "f33e7cd5c21ac59075244e124d253d75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 383811, "upload_time": "2015-09-01T14:44:27", "url": "https://files.pythonhosted.org/packages/29/6f/72c9e8670d906e79e8daef57121f2d04f25ab201f54b0895787b0f765e2a/CslBot-0.17.tar.gz" } ], "0.18": [ { "comment_text": "", "digests": { "md5": "ac8b097617c7c4b427cd0b71f3764d89", "sha256": "29542a9a7b431aa9b67e19b174ec24c3cc06e257c9361554af9138d6ef484ab0" }, "downloads": -1, "filename": "CslBot-0.18-py3-none-any.whl", "has_sig": false, "md5_digest": "ac8b097617c7c4b427cd0b71f3764d89", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 500891, "upload_time": "2015-11-10T17:42:42", "url": "https://files.pythonhosted.org/packages/b2/99/91d26baa9ca027e8c517054710e7bdc22d9394607a7e425eee7e45732a8a/CslBot-0.18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54c95208482388395a713dbd7faf9f0e", "sha256": "b71efe8798e3022a05c55662537983d21a31249f01cc2e3de2e637c61d8c3005" }, "downloads": -1, "filename": "CslBot-0.18.tar.gz", "has_sig": false, "md5_digest": "54c95208482388395a713dbd7faf9f0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 392016, "upload_time": "2015-11-10T17:52:16", "url": "https://files.pythonhosted.org/packages/db/66/7a0407f20131b1e10a8b0694456b359c285dbd3083a7270bc09cc1fa520f/CslBot-0.18.tar.gz" } ], "0.19": [ { "comment_text": "", "digests": { "md5": "4a1551ba4650978146b8d0a94d4c05ff", "sha256": "65415ebde72553c4ff6c8dce5bef580a20ed21d1ccb7136089b8327899b51df7" }, "downloads": -1, "filename": "CslBot-0.19-py3-none-any.whl", "has_sig": false, "md5_digest": "4a1551ba4650978146b8d0a94d4c05ff", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 520671, "upload_time": "2016-01-17T04:36:28", "url": "https://files.pythonhosted.org/packages/7b/6e/8f532c093366df4ff607969e2d54a5e68ac8539c8596b9b6a94a964f6b3e/CslBot-0.19-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fbfe1335f1e58998586556779f6d35db", "sha256": "20a3ea177c97bf77919da4cbaee0c0ba211f4879ced80aff7bc5e8a227a9da69" }, "downloads": -1, "filename": "CslBot-0.19.tar.gz", "has_sig": false, "md5_digest": "fbfe1335f1e58998586556779f6d35db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 400462, "upload_time": "2016-01-17T04:36:20", "url": "https://files.pythonhosted.org/packages/9c/9e/5bc2fe444c3954289808efeab8f74c1c04a998d136c0a5c8689b458aca4d/CslBot-0.19.tar.gz" } ], "0.20": [ { "comment_text": "", "digests": { "md5": "8800c8b10f5082fccaa12475c269d4f2", "sha256": "955c37dbd43318853a28e21d382839e4553784212a4cdfe27dca10b442874029" }, "downloads": -1, "filename": "CslBot-0.20-py3-none-any.whl", "has_sig": false, "md5_digest": "8800c8b10f5082fccaa12475c269d4f2", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 533703, "upload_time": "2016-02-08T13:46:18", "url": "https://files.pythonhosted.org/packages/b6/e6/2a50c45952ac790e4f586a3bcfb53256710e40e7fe315b3879f3636e04fe/CslBot-0.20-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e4a9ddb6ea060ccdc15004d9d46b546", "sha256": "aab1d1513dc6d18d58a655f13256b16a24c781e2683dd5ae1024580f5983fe9b" }, "downloads": -1, "filename": "CslBot-0.20.tar.gz", "has_sig": false, "md5_digest": "2e4a9ddb6ea060ccdc15004d9d46b546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 418369, "upload_time": "2016-02-08T13:45:59", "url": "https://files.pythonhosted.org/packages/23/0a/1955ce936db87bde120b7c1d7afc7a75557cc2c66b7fe2ab10c6e9e6b7a1/CslBot-0.20.tar.gz" } ], "0.21": [ { "comment_text": "", "digests": { "md5": "d2719ef7be4893938caf446788b8b4d6", "sha256": "b4005cddeac364d5372a7b5b5a004d80524be28e370344bff302e36ac56a9b3e" }, "downloads": -1, "filename": "CslBot-0.21-py3-none-any.whl", "has_sig": false, "md5_digest": "d2719ef7be4893938caf446788b8b4d6", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 539240, "upload_time": "2016-09-18T06:09:17", "url": "https://files.pythonhosted.org/packages/96/ff/bb9168da3d1917193ac5dd2726210959633e212ac4a037131de20f0edb05/CslBot-0.21-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04bc71573e025c2a746391e0199f36d4", "sha256": "d4a4ac0414a8957376fa920ddc91622850617628e7de7e912fd1f80db84391c6" }, "downloads": -1, "filename": "CslBot-0.21.tar.gz", "has_sig": false, "md5_digest": "04bc71573e025c2a746391e0199f36d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 420860, "upload_time": "2016-09-18T06:09:14", "url": "https://files.pythonhosted.org/packages/0b/04/bec812e155032fc3557f22d90e932f69ee13b0076e560481927373980c1a/CslBot-0.21.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d2719ef7be4893938caf446788b8b4d6", "sha256": "b4005cddeac364d5372a7b5b5a004d80524be28e370344bff302e36ac56a9b3e" }, "downloads": -1, "filename": "CslBot-0.21-py3-none-any.whl", "has_sig": false, "md5_digest": "d2719ef7be4893938caf446788b8b4d6", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 539240, "upload_time": "2016-09-18T06:09:17", "url": "https://files.pythonhosted.org/packages/96/ff/bb9168da3d1917193ac5dd2726210959633e212ac4a037131de20f0edb05/CslBot-0.21-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04bc71573e025c2a746391e0199f36d4", "sha256": "d4a4ac0414a8957376fa920ddc91622850617628e7de7e912fd1f80db84391c6" }, "downloads": -1, "filename": "CslBot-0.21.tar.gz", "has_sig": false, "md5_digest": "04bc71573e025c2a746391e0199f36d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 420860, "upload_time": "2016-09-18T06:09:14", "url": "https://files.pythonhosted.org/packages/0b/04/bec812e155032fc3557f22d90e932f69ee13b0076e560481927373980c1a/CslBot-0.21.tar.gz" } ] }