{"id":13988904,"url":"https://github.com/hearot/pyrubrum","last_synced_at":"2025-04-07T15:06:18.701Z","repository":{"id":37099449,"uuid":"264725904","full_name":"hearot/pyrubrum","owner":"hearot","description":"An intuitive framework for creating Telegram bots.","archived":false,"fork":false,"pushed_at":"2025-03-03T08:46:08.000Z","size":888,"stargazers_count":45,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"dev","last_synced_at":"2025-03-31T14:13:30.683Z","etag":null,"topics":["bot","client","dataclass","framework","pyrogram","pyrogram-framework","pyrubrum","python","python-tree","python3","telegram","telegram-api","telegram-callback-query","telegram-client","telegram-framework","tree"],"latest_commit_sha":null,"homepage":"https://pyrubrum.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hearot.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-17T17:59:18.000Z","updated_at":"2025-02-02T13:32:30.000Z","dependencies_parsed_at":"2024-07-19T16:37:24.725Z","dependency_job_id":"a69e2dd5-2b47-459b-b9fb-afc83a0da713","html_url":"https://github.com/hearot/pyrubrum","commit_stats":{"total_commits":202,"total_committers":3,"mean_commits":67.33333333333333,"dds":"0.12871287128712872","last_synced_commit":"d9e740a36187eacd90b3d498a403d5c9527450c0"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hearot%2Fpyrubrum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hearot%2Fpyrubrum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hearot%2Fpyrubrum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hearot%2Fpyrubrum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hearot","download_url":"https://codeload.github.com/hearot/pyrubrum/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247675596,"owners_count":20977376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","client","dataclass","framework","pyrogram","pyrogram-framework","pyrubrum","python","python-tree","python3","telegram","telegram-api","telegram-callback-query","telegram-client","telegram-framework","tree"],"created_at":"2024-08-09T13:01:25.785Z","updated_at":"2025-04-07T15:06:18.661Z","avatar_url":"https://github.com/hearot.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/hearot/pyrubrum\"\u003e\n        \u003cimg src=\"https://i.imgur.com/gfkh9bR.png\" alt=\"Pyrubrum\" width=\"600\"/\u003e\n    \u003c/a\u003e\n    \u003cbr\u003e\n    \u003cb\u003eAn intuitive framework for creating Telegram bots.\u003c/b\u003e\n    \u003cbr\u003e\n    \u003ci\u003eCreate your own bot in less than 100 lines!\u003c/i\u003e\n    \u003cbr\u003e\n    \u003cbr\u003e\n    \u003ca href=\"https://t.me/hearot\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Developer-@hearot-blue.svg\" alt=\"Developer: @hearot\"/\u003e\n    \u003c/a\u003e\n    •\n    \u003ca href=\"https://github.com/hearot/pyrubrum/blob/master/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/License-GPLv3-green.svg\" alt=\"License: GPLv3\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n## Pyrubrum\n\n```python\nfrom pyrogram import Client\nfrom pyrubrum import Handler, Menu, transform\n\nbot = Client(...)\n\nhandler = Handler(transform(\n    {\n        Menu(\"Start\", \"start\", \"Hello!\", default=True): [\n            Menu(\"About me\", \"about_me\", \"I'm just a bot!\"),\n            Menu(\"Thoughts\", \"thoughts\",\n                 \"I'm a bot, I cannot think properly...\"),\n        ]\n    }\n))\n\nhandler.setup(bot)\nbot.run()\n```\n\n**Pyrubrum** ([*/ˈpaɪɹˈuːbɹəm/*](http://ipa-reader.xyz/?text=%CB%88pa%C9%AA%C9%B9%CB%88u%CB%90b%C9%B9%C9%99m\u0026voice=Russell)) is a versatile, charming framework for creating [Telegram bots](https://core.telegram.org/bots), jointly with [Pyrogram](https://github.com/pyrogram/pyrogram).\n\n### Features\n\n   - Automatic [deep-link](https://core.telegram.org/bots#deep-linking) generation with `DeepLinkMenu`\n   - Built-in support for [Redis](https://redis.io/)\n   - [Complete documentation](https://pyrubrum.readthedocs.io/)\n   - Custom styles for inline keyboards\n   - Database integration\n   - Fast \u0026 optimized using [MTProto](https://core.telegram.org/mtproto) jointly with [Pyrogram](https://github.com/pyrogram/pyrogram)\n   - Fully encrypted parameters\n   - Intuitive creation of inline keyboards\n   - LRU caching with [functools.lru_cache](https://docs.python.org/3/library/functools.html#functools.lru_cache)\n   - Native support for the *\"Go back\"* button\n   - No limit for `callback_data` (see [Telegram Bot API](https://core.telegram.org/bots/api#inlinekeyboardbutton))\n   - Paging integration with `PageMenu`\n\n### Examples\n\nIn order to make use of the proposed examples, you need to create your own environment file by renaming [sample.env](./examples/sample.env) into `.env` and editing all the necessary variables.\n\n   - [Café](./examples/cafe_bot.py) - Get an overview of the design which lies inside Pyrubrum while interacting with multiple commands and pages.\n   - [Calendar](./examples/calendar_bot.py) - Get what day of the week a day is by simply choosing a year, a month and a day while discovering the potential of Pyrubrum page menus.\n   - [Hitchhiker](./examples/hitchhiker_bot.py) - Come to know how media are handled with Pyrubrum and...[get an existential question answered](https://en.wikipedia.org/wiki/Phrases_from_The_Hitchhiker%27s_Guide_to_the_Galaxy#The_Answer_to_the_Ultimate_Question_of_Life,_the_Universe,_and_Everything_is_42).\n   - [Sample](./examples/sample_bot.py) - Interact with inline menus while understanding how Pyrubrum works.\n\n### Changelog\n\n\u003e See [CHANGELOG.md](./CHANGELOG.md).\n\u003e Find new features in [FEATURES.md](./FEATURES.md).\n\n### Commit messages\n\n\u003e See [Conventional Commits](https://www.conventionalcommits.org).\n\n### Contributing\n\n\u003e See [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n### Versioning\n\n\u003e See [PEP 440](https://www.python.org/dev/peps/pep-0440/).\n\n### Thanks\n\n   - [veggero/tytg](https://github.com/veggero/tytg) for giving me the idea of developing a simple framework with which you can code a folder-like bot.\n   - [bakhoraliev](https://github.com/bakhoraliev) for letting me understand that an object-oriented library would make the difference in developing this project.\n\n### Branding\n\n\u003e See [hearot/pyrubrum-assets](https://github.com/hearot/pyrubrum-assets).\n\n### Copyright \u0026 License\n\n- Copyright (C) 2020 [Hearot](https://github.com/hearot).\n- Licensed under the terms of the [GNU General Public License v3 (GPLv3)](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhearot%2Fpyrubrum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhearot%2Fpyrubrum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhearot%2Fpyrubrum/lists"}