{ "info": { "author": "Dmitry Demidenko", "author_email": "dmitry.demidenko@startmatter.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# django-slack-utils [![Build Status](https://travis-ci.com/startmatter/django-slack-utils.svg?branch=master)](https://travis-ci.com/startmatter/django-slack-utils) [![Coverage Status](https://coveralls.io/repos/github/startmatter/django-slack-utils/badge.svg?branch=master)](https://coveralls.io/github/startmatter/django-slack-utils?branch=master)\n\nDjango-slack-utils is helper application to handle Slack requests. \n\nIt supports verification through `HTTP_X_SLACK_SIGNATURE` and `HTTP_X_SLACK_REQUEST_TIMESTAMP`.\n\n## Installation\nAdd the following to your `settings.py`\n```python\nINSTALLED_APPS = [\n ...\n 'slack_utils',\n]\n\nSLACK_SIGNING_SECRET = 'your signing secret from Slack'\n\n```\n\nAdd the following to your `urls.py`\n```python\n from django.conf.urls import include\n from django.urls import path\n \n urlpatterns = [\n ...\n path('slack/', include('slack_utils.urls')),\n ]\n\n```\n\n## Usage\n\n### View decorator\nThe `@slack_view` decorator adds CSRF exempt and verification to your function-based django view.\n\n```python\nfrom slack_utils.decorators import slack_view\nfrom django.http import HttpResponse\n\n@slack_view\ndef sample_view(request, *args, **kwargs):\n # your logic\n return HttpResponse(\"Hello!\")\n\n```\n\n\n### Class-based view\n\nThe `SlackView` base class adds CSRF exempt and verification to your class-based django view.\n\n```python\nfrom slack_utils.views import SlackView\nfrom django.http import HttpResponse\n\nclass SampleView(SlackView):\n def post(self, request, *args, **kwargs):\n # your logic\n return HttpResponse(\"Hello!\")\n\n```\n\n\n### Slash commands\nTo handle [Slack slash commands](https://api.slack.com/slash-commands), point the command URL to `/slack/commands/`.\n\nNow just add a handler function to `slack.py` module of your app.\n\n```python\nfrom slack_utils.decorators import slack_command\n\n@slack_command('/test')\ndef test_command(text, **kwargs):\n # your logic\n return \"Hello!\" # or {'text': \"hello!\"}\n\n```\n\n`**kwargs`would get the rest of the data from Slack request\n\n### Events API\n\nPoint [Slack events API](https://api.slack.com/events-api) to the `/slack/events/`.\n\nSubscription can be done in two ways:\n\n#### Receiver decorator\nPut them into `slack.py` of your app or make sure it's loaded once. \n\n```python\nfrom slack_utils.decorators import slack_receiver\n\n@slack_receiver('reaction_added')\ndef on_reaction_added(event_data, **kwargs):\n # your logic \n \n```\n\n#### Signal\n\n```python\nfrom slack_utils.signals import event_received\nfrom django.dispatch import receiver\n\n@receiver(event_received)\ndef on_event_received(sender, event_type, event_data, **kwargs):\n if event_type == 'reaction_added':\n # your logic \n\n # your other logic \n \n```", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/startmatter/django-slack-utils", "keywords": "slack,django", "license": "BSD", "maintainer": "Dmitry Demidenko", "maintainer_email": "dmitry.demidenko@startmatter.com", "name": "django-slack-utils", "package_url": "https://pypi.org/project/django-slack-utils/", "platform": "", "project_url": "https://pypi.org/project/django-slack-utils/", "project_urls": { "Homepage": "https://github.com/startmatter/django-slack-utils" }, "release_url": "https://pypi.org/project/django-slack-utils/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "A Django app for handling Slack webhooks", "version": "0.3.0" }, "last_serial": 4754183, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "60363f59dad883fdf0304e7bb8ae626c", "sha256": "312c32e9ba84fea812c7e3ea1a3e1a5c1315ba47ea0c302bf7336bae79c6550d" }, "downloads": -1, "filename": "django-slack-utils-0.1.0.tar.gz", "has_sig": false, "md5_digest": "60363f59dad883fdf0304e7bb8ae626c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4454, "upload_time": "2018-12-19T14:56:45", "url": "https://files.pythonhosted.org/packages/83/c2/1b2498b8e0acd8ea1e6c0d4c8a7277c83c1c61602f50298f6dbd06fbfa70/django-slack-utils-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "01d80b93e2722079d6b66b1c86f30b20", "sha256": "f52872707d46a2fc5f7dfe75e581f4e0a4f67e11761fd029caa21349e11d5763" }, "downloads": -1, "filename": "django-slack-utils-0.2.0.tar.gz", "has_sig": false, "md5_digest": "01d80b93e2722079d6b66b1c86f30b20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4728, "upload_time": "2018-12-19T19:12:29", "url": "https://files.pythonhosted.org/packages/7b/fd/7980bc4ac7e945581d208646678950a1026d248ff3a848cf12c855a48942/django-slack-utils-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3d7047f4373002d047e6e18b817f98d2", "sha256": "3ce5ca99718547d82d5ae20492131e8fe2b49c4b13bd967d1a2a2eb133261eda" }, "downloads": -1, "filename": "django-slack-utils-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3d7047f4373002d047e6e18b817f98d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4782, "upload_time": "2019-01-29T10:24:53", "url": "https://files.pythonhosted.org/packages/12/ae/fdabdac2e834fe3202b2de30490d03979421ec323da6cd2b42381efccb2b/django-slack-utils-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3d7047f4373002d047e6e18b817f98d2", "sha256": "3ce5ca99718547d82d5ae20492131e8fe2b49c4b13bd967d1a2a2eb133261eda" }, "downloads": -1, "filename": "django-slack-utils-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3d7047f4373002d047e6e18b817f98d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4782, "upload_time": "2019-01-29T10:24:53", "url": "https://files.pythonhosted.org/packages/12/ae/fdabdac2e834fe3202b2de30490d03979421ec323da6cd2b42381efccb2b/django-slack-utils-0.3.0.tar.gz" } ] }