{"id":13486597,"url":"https://github.com/autogram/Botkit","last_synced_at":"2025-03-27T21:30:37.250Z","repository":{"id":40282347,"uuid":"282363608","full_name":"autogram/Botkit","owner":"autogram","description":"Opinionated, library-agnostic Python framework for rapid development of Telegram bots and userbots with focus on maintainability for large projects.","archived":true,"fork":false,"pushed_at":"2023-02-16T03:04:43.000Z","size":2440,"stargazers_count":10,"open_issues_count":13,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-30T21:37:53.207Z","etag":null,"topics":["framework","python3","telegram","telegram-bot","telegram-userbot"],"latest_commit_sha":null,"homepage":"","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/autogram.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-07-25T03:34:52.000Z","updated_at":"2024-07-04T18:20:05.000Z","dependencies_parsed_at":"2024-01-16T09:01:05.651Z","dependency_job_id":"bdc58135-6ee4-4db7-b5f2-2fa802f10c23","html_url":"https://github.com/autogram/Botkit","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autogram%2FBotkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autogram%2FBotkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autogram%2FBotkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autogram%2FBotkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/autogram","download_url":"https://codeload.github.com/autogram/Botkit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245927105,"owners_count":20695169,"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":["framework","python3","telegram","telegram-bot","telegram-userbot"],"created_at":"2024-07-31T18:00:48.871Z","updated_at":"2025-03-27T21:30:37.242Z","avatar_url":"https://github.com/autogram.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Autogram Botkit\n\n**Warning:** At this point, the framework is very much in an alpha stage and many parts will be subject to change. Do not depend on it in production. As of now, this is just the basis of my various bot projects, but I am very actively working on smoothing\nout the rough parts and delivering a comprehensive demo project using the framework.\n\n\u003c!--\n## Why Botkit?\n\nSurveying the ecosystem of open source Telegram bots, you will find\n\nthis is in large part due to MTProto having a very confusing API, with the Bot API being a partly reflection of that.\nMTProto is confusing. The Bot API is usable, but robs you of flexibility.\n\n\nThere have been many libraries released over the years that sought to bring basic feature sets\n\nOn Telegram specifically, we tend to build highly complex user interfaces using an API that is not made for that and\n\nbut there hasn't been any framework to make this easier\nshare components\n\n- Abstractions around\n\n-\n- Less repetitive code\n- Declarative: Say what you want your application to do, not how to do it\n--\u003e\n\n\n\n## When is this framework for you?\n\n1. You want to work on regular bots, userbots, or especially a _combination_ thereof (a.k.a. \"companion bots\") in\nPython. Botkit makes it easy to combine multiple Bot API or MTProto clients from different (!) libraries.\n\n2. You have some experience with another Telegram bot library that you would like to supercharge with more tools, testability, and best practices.\n\n3. You **care about clean, maintainable code** and tend to work on large code bases over long stretches of time\n\n4. You know the basics of **asyncio**.\n\n5. You're not afraid of Python type annotations and using Pydantic (https://pydantic-docs.helpmanual.io/) sounds like a good idea to you.\n\n6. You use a Python IDE that supports autocompletion (and this is a must)! Botkit is built from the ground up to provide fluent builder patterns that only work well if you can discover what features you have at your disposal.\n\n\n## Roadmap\n\n### Implemented features\n\n- [ ] One config to rule them all: [Pyrogram and Telethon clients can be instantiated from a common `ClientConfig`](https://github.com/autogram/Botkit/blob/81cf9ec49ca0bde1a541605b62ca0bf9e2b055ef/botkit/configuration/client_config.py)\n\n### In progress\n\n- [ ]\n\n### In design phase\n\n- [ ]\n\n### Under consideration\n\n- [ ]\n\n\u003c!--\n## Introduction\n\n\nThis library is not meant for simple bots or scripts that\n\n- 100% type annotations\n- Usage of autocompletion is a must: Built using PyCharm and that's where it thrives\n\nin these cases you will be better off using a Telegram client library directly.\n\n\n\n\n## Features\n\n\n## Roadmap\n\n- At the moment, only Pyrogram is supported, but Botkit is architected in a way that it will eventually become library-agnostic, meaning that you will be able to use any Python library underneath it.\n\n\n\n## Design Philosophy\n\n### Why ISomething interfaces?\nhttps://mail.python.org/pipermail/python-3000/2007-April/006614.html\n\n\n\n\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautogram%2FBotkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautogram%2FBotkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautogram%2FBotkit/lists"}