{ "info": { "author": "Chris Tippett", "author_email": "c.tippett@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Hangouts Chat Helper\n=============================================================\n\n[![PyPI version](https://img.shields.io/pypi/v/hangouts-helper.svg)](https://pypi.python.org/pypi/hangouts-helper)\n[![Build status](https://img.shields.io/travis/christippett/hangouts-helper.svg)](https://travis-ci.org/christippett/hangouts-helper)\n[![Coverage](https://img.shields.io/coveralls/github/christippett/hangouts-helper.svg)](https://coveralls.io/github/christippett/hangouts-helper?branch=master)\n[![Python versions](https://img.shields.io/pypi/pyversions/hangouts-helper.svg)](https://pypi.python.org/pypi/hangouts-helper)\n[![Github license](https://img.shields.io/github/license/christippett/hangouts-helper.svg)](https://github.com/christippett/hangouts-helper)\n\nDescription\n===========\n\nHelper Python classes for handling and responding to Hangouts Chat events.\n\nInstallation\n============\n\nInstall with `pip`:\n\n``` bash\npip install hangouts-helper\n```\n\nMessage Components\n=====\n\nThis library contains several component classes to assist with constructing a Hangouts Chat message.\n- `Message`\n- `Section`\n- `Card`\n- `CardAction`\n- `CardHeader`\n- `TextParagraph`\n- `KeyValue`\n- `Image`\n- `ButtonList`\n- `ImageButton`\n- `TextButton`\n\nExample\n-------\n\nUsing the [**Pizza Bot**](https://developers.google.com/hangouts/chat/reference/message-formats/cards#full_example_pizza_bot) example from the official Hangouts Chat API documentation, this is how you'd construct the same message using the components above.\n\n```python\nfrom hangouts_helper.message import (Message, Card, CardHeader, Section,\n Image, KeyValue, ButtonList, TextButton)\n\nmessage = Message()\nmessage.add_card(\n Card(\n CardHeader(\n title='Pizza Bot Customer Support',\n subtitle='pizzabot@example.com',\n image_url='https://goo.gl/aeDtrS'),\n Section(\n KeyValue(top_label='Order No.', content='12345'),\n KeyValue(top_label='Status', content='In Delivery')),\n Section(\n 'Location',\n Image(image_url='https://maps.googleapis.com/...')),\n Section(\n ButtonList(\n TextButton(text='OPEN ORDER').add_link(url='https://example.com/orders/...')))))\n```\n\nCalling `message.output()` produces a `dict` that can be converted to JSON... perfect for returning a response to a synchronous chat event, or sending a new message via the Hangouts Chat API.\n\n```javascript\n{\n \"cards\": [\n {\n \"header\": {\n \"imageUrl\": \"https://goo.gl/aeDtrS\",\n \"subtitle\": \"pizzabot@example.com\",\n \"title\": \"Pizza Bot Customer Support\"\n },\n \"sections\": [\n {\n \"widgets\": [\n {\n \"keyValue\": {\n \"content\": \"12345\",\n \"topLabel\": \"Order No.\"\n }\n },\n {\n \"keyValue\": {\n \"content\": \"In Delivery\",\n \"topLabel\": \"Status\"\n }\n }\n ]\n },\n {\n \"header\": \"Location\",\n \"widgets\": [\n {\n \"image\": {\n \"imageUrl\": \"https://maps.googleapis.com/...\"\n }\n }\n ]\n },\n {\n \"widgets\": [\n {\n \"buttons\": [\n {\n \"textButton\": {\n \"onClick\": {\n \"openLink\": {\n \"url\": \"https://example.com/orders/...\"\n }\n },\n \"text\": \"OPEN ORDER\"\n }\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n}\n```\n\nChat Handler\n============\n\nThe library also includes a class to help with handling incoming chat events. The methods contained in `HangoutsChatHandler` correspond to the different event types you can expect to receive. Each method should return a message response.\n\nExample\n-------\n\n```python\nfrom enum import Enum\n\nfrom hangouts_helper.handler import HangoutsChatHandler, SpaceType\nfrom hangouts_helper.message import Message\n\n\nclass ActionMethod(Enum):\n BUTTON_CLICKED = 'BUTTON_CLICKED'\n\n\nclass MyHangoutsChatHandler(HangoutsChatHandler):\n ActionMethod = ActionMethod\n\n def handle_added_to_space(self, space_type, event):\n if space_type == SpaceType.DM:\n return Message(text=\"Thanks for DM'ing me!\")\n elif space_type == SpaceType.ROOM:\n return Message(text=\"Thanks adding me to your room!\")\n\n def handle_message(self, message, event):\n return Message(text=\"Thanks for your message!\")\n\n def handle_card_clicked(self, action_method, action_parameters, event):\n if action_method == ActionMethod.BUTTON_CLICKED:\n return Message(text=\"I've processed your button click!\")\n\n def handle_removed_from_space(self, event):\n pass\n\n```\n\nA Flask app that repsonds to Hangouts Chat events might look like:\n\n```python\nfrom flask import Flask, jsonify\napp = Flask(__name__)\n\n@app.route('/')\ndef bot_handler():\n event = request.json\n handler = MyHangoutsChatHandler()\n response_message = handler.handle_event(event)\n return jsonify(response_message.output())\n\n```\n\nTODO\n====\n- Add examples for each component type in README\n- Document and add examples for adding OnClick events to widgets\n- Document Enums (`SpaceType`, `EventType`, `ActionMethod`, `Icon`, `ImageStyle`, `ResponseType`)\n- Document usage scenarios for `HangoutsChatHandler`\n- Add methods for interacting with Hangouts Chat API to `HangoutsChatHandler`\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/christippett/hangouts-helper", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "hangouts-helper", "package_url": "https://pypi.org/project/hangouts-helper/", "platform": "", "project_url": "https://pypi.org/project/hangouts-helper/", "project_urls": { "Homepage": "http://github.com/christippett/hangouts-helper" }, "release_url": "https://pypi.org/project/hangouts-helper/18.9.0/", "requires_dist": [ "google-api-python-client", "google-auth-httplib2" ], "requires_python": "", "summary": "Helper Python classes for handling and responding to Hangouts Chat events", "version": "18.9.0" }, "last_serial": 4276279, "releases": { "18.8.0": [ { "comment_text": "", "digests": { "md5": "de8bb0ef93363375c01e36fb7620a844", "sha256": "c2a3b45267be7ae791e08a136f868aa77035bff56b772032c182cc6afe4541c7" }, "downloads": -1, "filename": "hangouts_helper-18.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de8bb0ef93363375c01e36fb7620a844", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6656, "upload_time": "2018-08-08T14:24:15", "url": "https://files.pythonhosted.org/packages/04/15/96fd5c0caa523caa97e211e7be8ec029349c8484c71edd7c8862e7464970/hangouts_helper-18.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bcb7a1453724b046b7da712913a2aaa6", "sha256": "bb44b9efb87c6b84e609b0a0967bd47db4fa04d3c5a516b4586c1a39c9dafcd0" }, "downloads": -1, "filename": "hangouts-helper-18.8.0.tar.gz", "has_sig": false, "md5_digest": "bcb7a1453724b046b7da712913a2aaa6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8662, "upload_time": "2018-08-08T14:04:36", "url": "https://files.pythonhosted.org/packages/16/19/249d545494d650179321e748d495813199f14fd50a4070221b256bf2b797/hangouts-helper-18.8.0.tar.gz" } ], "18.8.1": [ { "comment_text": "", "digests": { "md5": "afecd8530e86bfaba6af143b116b55ef", "sha256": "f908b47485758cfe978b2584a330862ce924c6f3945c80280a5717c75ba27027" }, "downloads": -1, "filename": "hangouts_helper-18.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "afecd8530e86bfaba6af143b116b55ef", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6657, "upload_time": "2018-08-09T13:58:13", "url": "https://files.pythonhosted.org/packages/30/32/0e5fa999461f06029e6bbafafbc5b72d0cc50263290d0f90b6518cae15b7/hangouts_helper-18.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6bf17323bd587e1c04c6599bf7c388cf", "sha256": "bced4ad528a95c40f59ecee7f64ef241b9fab9383954864a20f393e7861c0017" }, "downloads": -1, "filename": "hangouts-helper-18.8.1.tar.gz", "has_sig": false, "md5_digest": "6bf17323bd587e1c04c6599bf7c388cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9168, "upload_time": "2018-08-09T13:58:15", "url": "https://files.pythonhosted.org/packages/6f/76/8001207dd5b39ed1d7453e120d8d93c47019ffd02bcf688c8f0070b76889/hangouts-helper-18.8.1.tar.gz" } ], "18.8.2": [ { "comment_text": "", "digests": { "md5": "d7063d03e3b56d476e3dd78b82addcf8", "sha256": "6184985e7e6deee863a4bc94dd71089d78c1429428ce6c3cbdd85b1c7da479ea" }, "downloads": -1, "filename": "hangouts_helper-18.8.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d7063d03e3b56d476e3dd78b82addcf8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6684, "upload_time": "2018-08-09T16:03:32", "url": "https://files.pythonhosted.org/packages/6a/80/80eb90e9d03698d8cb050e1127de451ce77113cdf0a644e4dee9b42f2b46/hangouts_helper-18.8.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f173d7259035438ba7f22b3799403416", "sha256": "5ea7aeed4fc0becf30a410ce5cf6b73184f801027daf34733323e6461433ec67" }, "downloads": -1, "filename": "hangouts-helper-18.8.2.tar.gz", "has_sig": false, "md5_digest": "f173d7259035438ba7f22b3799403416", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9190, "upload_time": "2018-08-09T16:03:33", "url": "https://files.pythonhosted.org/packages/9b/03/0f30d3ddff10b5c43dff67b59a4f927aba92ae32e8f358319dcaa87361d4/hangouts-helper-18.8.2.tar.gz" } ], "18.8.3": [ { "comment_text": "", "digests": { "md5": "cca518bbe1d0738c49195ab22b06c733", "sha256": "01017f0f6bc8726778415ddb10d9e82b2d474f4269d764532130cadba489f9a7" }, "downloads": -1, "filename": "hangouts_helper-18.8.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cca518bbe1d0738c49195ab22b06c733", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6777, "upload_time": "2018-08-11T13:09:45", "url": "https://files.pythonhosted.org/packages/72/1c/7dbb2c2ef4545304c9918c2e063be8a9375a79f14cf34a911c48a2051721/hangouts_helper-18.8.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9fad9b81dee09b6139164b12f16b50ee", "sha256": "7f566a5820a0aa71523916a139c21180fad63a1bbbea0e69cc30c47871ac2a14" }, "downloads": -1, "filename": "hangouts-helper-18.8.3.tar.gz", "has_sig": false, "md5_digest": "9fad9b81dee09b6139164b12f16b50ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10907, "upload_time": "2018-08-11T13:09:46", "url": "https://files.pythonhosted.org/packages/8b/41/dcf4d55636db128a9ec45ec411f827dfc50ba05ea62405e37c53be951a27/hangouts-helper-18.8.3.tar.gz" } ], "18.8.4": [ { "comment_text": "", "digests": { "md5": "e92a2c65e93812e13a45a6970be31131", "sha256": "ae4e314fb2ee4629aea84e9e61b914c64cc5aec82ab9e28e60dd8e4042031e5a" }, "downloads": -1, "filename": "hangouts_helper-18.8.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e92a2c65e93812e13a45a6970be31131", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7852, "upload_time": "2018-08-12T07:00:08", "url": "https://files.pythonhosted.org/packages/7d/26/8ef31ccc37e3ed522701fe50002094b22fb9e317534b87fcbd61f42a7bc1/hangouts_helper-18.8.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1d8c041626ee3a7e1c53bb390f8352f4", "sha256": "60440461ca33163202325e2337585fecdd2d2effbaed3f76cebb8d3fbd87b752" }, "downloads": -1, "filename": "hangouts-helper-18.8.4.tar.gz", "has_sig": false, "md5_digest": "1d8c041626ee3a7e1c53bb390f8352f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12295, "upload_time": "2018-08-12T07:00:10", "url": "https://files.pythonhosted.org/packages/02/25/a328b599ff4de2c72dc5615c5f9707f698168ae4390c5b2538141cc85a44/hangouts-helper-18.8.4.tar.gz" } ], "18.8.5": [ { "comment_text": "", "digests": { "md5": "3270406d60dbaef12f9363dd2539c987", "sha256": "8800c3a0e35c80555dc9a35bd35031086c6f09e027576923671767306f7d0e5d" }, "downloads": -1, "filename": "hangouts_helper-18.8.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3270406d60dbaef12f9363dd2539c987", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7861, "upload_time": "2018-08-12T07:20:07", "url": "https://files.pythonhosted.org/packages/2b/52/52f30a2e6aa1837f44d9f319e467bfa5d430014a453100df5650c5a94eb7/hangouts_helper-18.8.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8cacb69f3b672e1adb66215113c5a9b", "sha256": "36f0f34146caceadcb23030f6f4d82f030b9f849b7a4d7dcc850b542d1643f03" }, "downloads": -1, "filename": "hangouts-helper-18.8.5.tar.gz", "has_sig": false, "md5_digest": "b8cacb69f3b672e1adb66215113c5a9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12305, "upload_time": "2018-08-12T07:20:09", "url": "https://files.pythonhosted.org/packages/96/01/151db05e53f944ef344a28919e967df97c1bd72ca0b63fa8796f1920a591/hangouts-helper-18.8.5.tar.gz" } ], "18.8.6": [ { "comment_text": "", "digests": { "md5": "7676d5a7aaf33331acf17e111da8a605", "sha256": "9fa7da27ad2983812555147e1fd4d0f906788282bd45a77b1389857d292b1831" }, "downloads": -1, "filename": "hangouts_helper-18.8.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7676d5a7aaf33331acf17e111da8a605", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7906, "upload_time": "2018-08-12T12:54:08", "url": "https://files.pythonhosted.org/packages/26/71/f668b55c4a50618aa748a952f1228fa73032fcc6e3e9a252e7308cd4428a/hangouts_helper-18.8.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4d7ab3fe697134f8d852d855b989182", "sha256": "c468bcdc8fccaafdbce7f95ad60aee2eaee6e9dff7c15ab04dd30078f6c49205" }, "downloads": -1, "filename": "hangouts-helper-18.8.6.tar.gz", "has_sig": false, "md5_digest": "f4d7ab3fe697134f8d852d855b989182", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12364, "upload_time": "2018-08-12T12:54:10", "url": "https://files.pythonhosted.org/packages/8b/8f/f7a4eae64e90e9f11c4096e927f6a0c0dc100c10393d0f698d4329f69851/hangouts-helper-18.8.6.tar.gz" } ], "18.9.0": [ { "comment_text": "", "digests": { "md5": "fa93a83296288977a8eeade5122867c1", "sha256": "aa70c87065b89db7e0e6e5e15d51cda0c9dfff150a1d7ef941b968d07f2be1ad" }, "downloads": -1, "filename": "hangouts_helper-18.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fa93a83296288977a8eeade5122867c1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7876, "upload_time": "2018-09-16T10:38:33", "url": "https://files.pythonhosted.org/packages/10/35/407e5e644383864863a31b530b0046221335a041b7940263c9ce75e5b536/hangouts_helper-18.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "058ecd780162ac71fdc7548a82e11786", "sha256": "85ca043d3994c187b9844c4a2f85a87a87623bbfa5683ce66252a364257e4012" }, "downloads": -1, "filename": "hangouts-helper-18.9.0.tar.gz", "has_sig": false, "md5_digest": "058ecd780162ac71fdc7548a82e11786", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12327, "upload_time": "2018-09-16T10:38:34", "url": "https://files.pythonhosted.org/packages/5e/10/5b98247596fe3e1de869732d74a8443a6c4ae2fa62bf16aa31be2fd671a7/hangouts-helper-18.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fa93a83296288977a8eeade5122867c1", "sha256": "aa70c87065b89db7e0e6e5e15d51cda0c9dfff150a1d7ef941b968d07f2be1ad" }, "downloads": -1, "filename": "hangouts_helper-18.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fa93a83296288977a8eeade5122867c1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7876, "upload_time": "2018-09-16T10:38:33", "url": "https://files.pythonhosted.org/packages/10/35/407e5e644383864863a31b530b0046221335a041b7940263c9ce75e5b536/hangouts_helper-18.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "058ecd780162ac71fdc7548a82e11786", "sha256": "85ca043d3994c187b9844c4a2f85a87a87623bbfa5683ce66252a364257e4012" }, "downloads": -1, "filename": "hangouts-helper-18.9.0.tar.gz", "has_sig": false, "md5_digest": "058ecd780162ac71fdc7548a82e11786", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12327, "upload_time": "2018-09-16T10:38:34", "url": "https://files.pythonhosted.org/packages/5e/10/5b98247596fe3e1de869732d74a8443a6c4ae2fa62bf16aa31be2fd671a7/hangouts-helper-18.9.0.tar.gz" } ] }