# Telegrinder
Framework for effective and reliable telegram bot building.
Still in development.
* Type hinted
* Customizable and extensible
* Ready to use scenarios and rules
* Fast models built on [msgspec](https://github.com/jcrist/msgspec)
* Both low-level and high-level API
* Support [optional dependecies](https://github.com/timoniq/telegrinder/blob/dev/docs/guide/optional_dependencies.md)
# Getting started
Install using pip:
```console
pip install telegrinder
```
Using poetry:
```console
poetry add telegrinder
```
Install from github:
```console
pip install -U https://github.com/timoniq/telegrinder/archive/dev.zip
```
```console
poetry add git+https://github.com/timoniq/telegrinder.git#dev
```
Basic example:
```python
from telegrinder import API, Message, Telegrinder, Token
from telegrinder.modules import logger
from telegrinder.rules import Text
api = API(token=Token("123:token"))
bot = Telegrinder(api)
logger.set_level("INFO")
@bot.on.message(Text("/start"))
async def start(message: Message):
me = (await api.get_me()).unwrap()
await message.answer(f"Hello, {message.from_user.full_name}! I'm {me.full_name}.")
bot.run_forever()
```
# Documentation
[Readthedocs](https://telegrinder.readthedocs.io)
# Community
Join our [telegram forum](https://t.me/botoforum).
# [Contributing](https://github.com/timoniq/telegrinder/blob/main/contributing.md)
# License
Telegrinder is [MIT licensed](./LICENSE)\
Copyright © 2022-2024 [timoniq](https://github.com/timoniq)\
Copyright © 2024 [luwqz1](https://github.com/luwqz1)
Raw data
{
"_id": null,
"home_page": "https://github.com/timoniq/telegrinder",
"name": "telegrinder",
"maintainer": "luwqz1",
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": "howluwqz1@gmail.com",
"keywords": "asyncio, api schema, async, bot building, bot api, custom rules, telegram, telegram bot api framework, telegrinder framework, middleware, composition, framework, telegrinder, waiter machine",
"author": "timoniq",
"author_email": "tesseradecades@mail.ru",
"download_url": "https://files.pythonhosted.org/packages/b2/ed/a1d799e75d3aa692e755c7b02e2b275f560ba48030db929cf8799f1d888c/telegrinder-0.3.4.post1.tar.gz",
"platform": null,
"description": "# Telegrinder\n\nFramework for effective and reliable telegram bot building.\n\nStill in development.\n\n* Type hinted\n* Customizable and extensible\n* Ready to use scenarios and rules\n* Fast models built on [msgspec](https://github.com/jcrist/msgspec)\n* Both low-level and high-level API\n* Support [optional dependecies](https://github.com/timoniq/telegrinder/blob/dev/docs/guide/optional_dependencies.md)\n\n# Getting started\n\nInstall using pip:\n\n```console\npip install telegrinder\n```\n\nUsing poetry:\n\n```console\npoetry add telegrinder\n```\n\nInstall from github:\n\n```console\npip install -U https://github.com/timoniq/telegrinder/archive/dev.zip\n```\n\n```console\npoetry add git+https://github.com/timoniq/telegrinder.git#dev\n```\n\nBasic example:\n\n```python\nfrom telegrinder import API, Message, Telegrinder, Token\nfrom telegrinder.modules import logger\nfrom telegrinder.rules import Text\n\napi = API(token=Token(\"123:token\"))\nbot = Telegrinder(api)\nlogger.set_level(\"INFO\")\n\n\n@bot.on.message(Text(\"/start\"))\nasync def start(message: Message):\n me = (await api.get_me()).unwrap()\n await message.answer(f\"Hello, {message.from_user.full_name}! I'm {me.full_name}.\")\n\n\nbot.run_forever()\n```\n\n# Documentation\n\n[Readthedocs](https://telegrinder.readthedocs.io)\n\n# Community\n\nJoin our [telegram forum](https://t.me/botoforum).\n\n# [Contributing](https://github.com/timoniq/telegrinder/blob/main/contributing.md)\n\n# License\n\nTelegrinder is [MIT licensed](./LICENSE)\\\nCopyright \u00a9 2022-2024 [timoniq](https://github.com/timoniq)\\\nCopyright \u00a9 2024 [luwqz1](https://github.com/luwqz1)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Modern visionary telegram bot framework.",
"version": "0.3.4.post1",
"project_urls": {
"Bug Tracker": "https://github.com/timoniq/telegrinder/issues",
"Homepage": "https://github.com/timoniq/telegrinder",
"Repository": "https://github.com/timoniq/telegrinder"
},
"split_keywords": [
"asyncio",
" api schema",
" async",
" bot building",
" bot api",
" custom rules",
" telegram",
" telegram bot api framework",
" telegrinder framework",
" middleware",
" composition",
" framework",
" telegrinder",
" waiter machine"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "08729848a27b500daac3bf6059038dca70cb252e7664c2de78b20fa7b15fcac3",
"md5": "e3d9b05a1d25e71de3ebfee65ffb2ab6",
"sha256": "006fbdd1e2f3c5a8034ecd98298ca5e8ff7eb2351778ed100b4e6b25f6c0b002"
},
"downloads": -1,
"filename": "telegrinder-0.3.4.post1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e3d9b05a1d25e71de3ebfee65ffb2ab6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 227448,
"upload_time": "2024-10-03T10:16:08",
"upload_time_iso_8601": "2024-10-03T10:16:08.712338Z",
"url": "https://files.pythonhosted.org/packages/08/72/9848a27b500daac3bf6059038dca70cb252e7664c2de78b20fa7b15fcac3/telegrinder-0.3.4.post1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b2eda1d799e75d3aa692e755c7b02e2b275f560ba48030db929cf8799f1d888c",
"md5": "639ef540abb4e2c8fb703935a72e7b09",
"sha256": "a97997d4c40eab759b3718a5f08ac113b32cda7af3d87cc6f5b05320ee7a4be3"
},
"downloads": -1,
"filename": "telegrinder-0.3.4.post1.tar.gz",
"has_sig": false,
"md5_digest": "639ef540abb4e2c8fb703935a72e7b09",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 169582,
"upload_time": "2024-10-03T10:16:11",
"upload_time_iso_8601": "2024-10-03T10:16:11.215799Z",
"url": "https://files.pythonhosted.org/packages/b2/ed/a1d799e75d3aa692e755c7b02e2b275f560ba48030db929cf8799f1d888c/telegrinder-0.3.4.post1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-03 10:16:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "timoniq",
"github_project": "telegrinder",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "telegrinder"
}