{ "info": { "author": "Valery Vishnevskiy", "author_email": "v.v.vishnevskiy@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Environment :: Web Environment", "Framework :: AsyncIO", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Communications :: Chat", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# aio-telegram-bot\n[![Build Status](https://travis-ci.org/v-v-vishnevskiy/aio-telegram-bot.svg?branch=master)](https://travis-ci.org/v-v-vishnevskiy/aio-telegram-bot)\n[![codecov](https://codecov.io/gh/v-v-vishnevskiy/aio-telegram-bot/branch/master/graph/badge.svg)](https://codecov.io/gh/v-v-vishnevskiy/aio-telegram-bot)\n\nAn asynchronous framework for building your own Telegram Bot over [API](https://core.telegram.org/bots/api).\n\n\n## Installation\n`aio-telegram-bot` requires Python 3.5.3+ and is available on PyPI:\n```\n$ pip install aio-telegram-bot\n```\n\n\\*_Compatible with PyPy3.5-6.0.0+_\n\n\n## Examples\n\n#### Polling example\n\n```python\nimport asyncio\nimport os\n\nfrom aiotelegrambot import Bot, Client, Content, Message\nfrom aiotelegrambot.rules import Contains\n\n\nasync def hi(message: Message):\n await message.send_message(\"Hello!\", True)\n\n\nasync def run(bot: Bot):\n await bot.initialize()\n while True:\n await asyncio.sleep(1)\n\n\nif __name__ == \"__main__\":\n loop = asyncio.get_event_loop()\n client = Client(os.environ[\"TELEGRAM_BOT_TOKEN\"])\n bot = Bot(client)\n bot.add_handler(hi, content_type=Content.TEXT, rule=Contains(\"hi\"))\n\n try:\n loop.run_until_complete(run(bot))\n except KeyboardInterrupt:\n loop.run_until_complete(bot.close())\n loop.run_until_complete(bot.client.close())\n finally:\n loop.close()\n```\n\nRunning:\n\n```\n$ export TELEGRAM_BOT_TOKEN=12345678:replace-me-with-real-token\n$ python3 polling.py\n```\n\n---\n\n#### Webhook example\n\nExample of how to generate ssl certificate:\n`openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout domain_srv.key -out domain_srv.crt`\n\n```python\nimport argparse\nimport json\nimport os\nimport ssl\n\nfrom aiohttp import web\nfrom async_generator import async_generator, yield_\n\nfrom aiotelegrambot import Bot, Client, Content, Handlers, Message\nfrom aiotelegrambot.rules import Contains\n\nhandlers = Handlers()\n\nTOKEN = os.environ[\"TELEGRAM_BOT_TOKEN\"]\nHOST = os.environ[\"TELEGRAM_BOT_HOST\"]\nPORT = 8443\n\nparser = argparse.ArgumentParser()\nparser.add_argument(\"files\", metavar=\"N\", type=str, nargs=\"+\")\nSSL_PUBLIC_KEY, SSL_PRIVATE_KEY = parser.parse_args().files\n\n\n@handlers.add(content_type=Content.TEXT, rule=Contains(\"hi\"))\nasync def hi(message: Message):\n await message.send_message(\"Hello!\")\n\n\nasync def webhook_handle(request):\n bot = request.app[\"bot\"]\n data = await request.text()\n await bot.process_update(json.loads(data))\n return web.Response()\n\n\n@async_generator\nasync def init_bot(app: web.Application):\n bot = Bot(Client(TOKEN), handlers)\n await bot.initialize(webhook=True)\n await bot.client.set_webhook(\"https://{}:{}/{}\".format(HOST, PORT, TOKEN), certificate=SSL_PUBLIC_KEY)\n\n app[\"bot\"] = bot\n\n await yield_()\n\n await bot.client.delete_webhook()\n await bot.close()\n await bot.client.close()\n\n\napp = web.Application()\napp.router.add_post(\"/{}\".format(TOKEN), webhook_handle)\napp.cleanup_ctx.extend([init_bot])\n\ncontext = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)\ncontext.load_cert_chain(SSL_PUBLIC_KEY, SSL_PRIVATE_KEY)\n\nweb.run_app(app, host=\"0.0.0.0\", port=PORT, ssl_context=context)\n```\n\nRunning:\n```\n$ export TELEGRAM_BOT_TOKEN=12345678:replace-me-with-real-token\n$ export TELEGRAM_BOT_HOST=real.host.com\n$ python3 webhook.py domain_srv.crt domain_srv.key\n```\n\n## License\n`aio-telegram-bot` is offered under the MIT license.\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": "https://github.com/v-v-vishnevskiy/aio-telegram-bot", "keywords": "aio,async,asyncio,telegram,bot", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aio-telegram-bot", "package_url": "https://pypi.org/project/aio-telegram-bot/", "platform": "", "project_url": "https://pypi.org/project/aio-telegram-bot/", "project_urls": { "CI: Travis": "https://travis-ci.org/v-v-vishnevskiy/aio-telegram-bot", "Coverage: codecov": "https://codecov.io/gh/v-v-vishnevskiy/aio-telegram-bot", "GitHub: repo": "https://github.com/v-v-vishnevskiy/aio-telegram-bot", "Homepage": "https://github.com/v-v-vishnevskiy/aio-telegram-bot" }, "release_url": "https://pypi.org/project/aio-telegram-bot/1.0.0/", "requires_dist": [ "aiohttp (==3.5.4)", "aiojobs (==0.2.2)" ], "requires_python": ">=3.5.3", "summary": "An asynchronous framework for building your own Telegram Bot", "version": "1.0.0" }, "last_serial": 5304942, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "a891cc05aadea82d4cb845a5cef60f23", "sha256": "56aa78be8cc3dfa574bdf86a5eed8dd486f001c4f6620549fe34432798fe50bb" }, "downloads": -1, "filename": "aio_telegram_bot-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a891cc05aadea82d4cb845a5cef60f23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 11576, "upload_time": "2019-05-22T23:19:55", "url": "https://files.pythonhosted.org/packages/4f/dc/8a6b19eef74b089b9c839a07691aa5d4d2b4b261cb93071f81cb226d9ba7/aio_telegram_bot-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "373ef9481d9f17e51d5c813d7c2991f2", "sha256": "472cbc7f2caf2cb695341e94eb3ee5af216a8ae52f92018558c41cf64567ad44" }, "downloads": -1, "filename": "aio-telegram-bot-1.0.0.tar.gz", "has_sig": false, "md5_digest": "373ef9481d9f17e51d5c813d7c2991f2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 10309, "upload_time": "2019-05-22T23:19:58", "url": "https://files.pythonhosted.org/packages/82/19/4f0413345c384e935eab18a5efac575b9c5978109d2a2a0ce5e5b3daea2b/aio-telegram-bot-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a891cc05aadea82d4cb845a5cef60f23", "sha256": "56aa78be8cc3dfa574bdf86a5eed8dd486f001c4f6620549fe34432798fe50bb" }, "downloads": -1, "filename": "aio_telegram_bot-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a891cc05aadea82d4cb845a5cef60f23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 11576, "upload_time": "2019-05-22T23:19:55", "url": "https://files.pythonhosted.org/packages/4f/dc/8a6b19eef74b089b9c839a07691aa5d4d2b4b261cb93071f81cb226d9ba7/aio_telegram_bot-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "373ef9481d9f17e51d5c813d7c2991f2", "sha256": "472cbc7f2caf2cb695341e94eb3ee5af216a8ae52f92018558c41cf64567ad44" }, "downloads": -1, "filename": "aio-telegram-bot-1.0.0.tar.gz", "has_sig": false, "md5_digest": "373ef9481d9f17e51d5c813d7c2991f2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 10309, "upload_time": "2019-05-22T23:19:58", "url": "https://files.pythonhosted.org/packages/82/19/4f0413345c384e935eab18a5efac575b9c5978109d2a2a0ce5e5b3daea2b/aio-telegram-bot-1.0.0.tar.gz" } ] }