{ "info": { "author": "Zach \"theY4Kman\" Kanzler", "author_email": "they4kman@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# slack-channeler\nPower a Slack bot with Django Channels v2\n\n\n# Installation\n```bash\npip install slack-channeler\n```\n\n\n# Usage\nslack-channeler relies on the channel layer. First, ensure it's setup. [channels-redis](https://github.com/django/channels_redis) is recommended.\n```python\n# settings.py\n\nCHANNEL_LAYERS = {\n 'default': {\n 'BACKEND': 'channels_redis.core.RedisChannelLayer',\n 'CONFIG': {\n \"hosts\": [('localhost', 6379)],\n },\n },\n}\n```\n\nCreate a consumer to handle Slack events\n```python\n# consumers.py\n\nfrom channels.consumer import AsyncConsumer, get_handler_name\n\nclass SlackConsumer(AsyncConsumer):\n async def dispatch(self, message):\n handler = getattr(self, get_handler_name(message), None)\n if handler:\n await handler(**message['data'])\n\n async def slack_message(self, channel, text, **kwargs):\n # Simply echo back message\n await self.channel_layer.send('slack', {\n 'type': 'message',\n 'channel': channel,\n 'text': text,\n })\n```\n\nRoute Slack events to the consumer\n```python\n# routing.py\n\nfrom channels.routing import ProtocolTypeRouter, ChannelNameRouter\n\nfrom .consumers import SlackConsumer\n\napplication = ProtocolTypeRouter({\n 'channel': ChannelNameRouter({\n 'slack': SlackConsumer,\n }),\n})\n```\n\nStart a Channels worker to handle Slack events from the channel layer\n```bash\npython manage.py runworker slack\n```\n\nLastly, run slack-channeler\n```bash\nSLACK_CHANNELER_TOKEN=xoxb-12345678900-098765432100-DeadBeefFeed90iIJjYsf3ay slack_channeler\n```\n\n\n# Building package\nCurrently, poetry does not support dynamic generation of version files, nor custom hooks to do so. To keep `pyproject.toml` the source of authority for version numbers, a custom `build.py` script is used to dynamically generate `version.py`.\n\nTo build slack-channeler, run `python build.py`. This has the same semantics as `poetry build`.\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "slack-channeler", "package_url": "https://pypi.org/project/slack-channeler/", "platform": "", "project_url": "https://pypi.org/project/slack-channeler/", "project_urls": null, "release_url": "https://pypi.org/project/slack-channeler/0.0.1.dev0/", "requires_dist": [ "channels (>=2.2,<3.0)", "click (>=7.0,<8.0)", "slackclient (>=2.0,<3.0)" ], "requires_python": ">=3.6", "summary": "Power a Slack bot with Django Channels v2", "version": "0.0.1.dev0" }, "last_serial": 5488998, "releases": { "0.0.1.dev0": [ { "comment_text": "", "digests": { "md5": "1952505538bc5d0f80140f2b3a0a7339", "sha256": "1b28f859e591ada5db8b81903e3752c6d521f3fecb659401df47cbc68bf99bd8" }, "downloads": -1, "filename": "slack_channeler-0.0.1.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "1952505538bc5d0f80140f2b3a0a7339", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5630, "upload_time": "2019-07-04T23:10:25", "url": "https://files.pythonhosted.org/packages/bc/82/3fa40f341d05f6d2effc1a05d358e46ee9e746637f23c25893aff16aef79/slack_channeler-0.0.1.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd85268e804b6c9b2c00254f3f28f040", "sha256": "dede07b867daa72ed555a802a4bcb83b05678702067749e733606e08272b2c85" }, "downloads": -1, "filename": "slack-channeler-0.0.1.dev0.tar.gz", "has_sig": false, "md5_digest": "cd85268e804b6c9b2c00254f3f28f040", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4835, "upload_time": "2019-07-04T23:10:27", "url": "https://files.pythonhosted.org/packages/87/79/bdfd620b9eef340899975676cef82f76b47ed20998233654603a6ad22753/slack-channeler-0.0.1.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1952505538bc5d0f80140f2b3a0a7339", "sha256": "1b28f859e591ada5db8b81903e3752c6d521f3fecb659401df47cbc68bf99bd8" }, "downloads": -1, "filename": "slack_channeler-0.0.1.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "1952505538bc5d0f80140f2b3a0a7339", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5630, "upload_time": "2019-07-04T23:10:25", "url": "https://files.pythonhosted.org/packages/bc/82/3fa40f341d05f6d2effc1a05d358e46ee9e746637f23c25893aff16aef79/slack_channeler-0.0.1.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd85268e804b6c9b2c00254f3f28f040", "sha256": "dede07b867daa72ed555a802a4bcb83b05678702067749e733606e08272b2c85" }, "downloads": -1, "filename": "slack-channeler-0.0.1.dev0.tar.gz", "has_sig": false, "md5_digest": "cd85268e804b6c9b2c00254f3f28f040", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4835, "upload_time": "2019-07-04T23:10:27", "url": "https://files.pythonhosted.org/packages/87/79/bdfd620b9eef340899975676cef82f76b47ed20998233654603a6ad22753/slack-channeler-0.0.1.dev0.tar.gz" } ] }