{"id":16587374,"url":"https://github.com/alemidev/abot","last_synced_at":"2025-10-29T08:32:59.879Z","repository":{"id":61172930,"uuid":"311730555","full_name":"alemidev/abot","owner":"alemidev","description":"my Telegram (user)bot framework","archived":false,"fork":false,"pushed_at":"2024-03-03T18:49:51.000Z","size":802,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"dev","last_synced_at":"2025-02-02T00:01:49.476Z","etag":null,"topics":["bot","pyrogram","python","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alemidev.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,"dei":null}},"created_at":"2020-11-10T17:10:08.000Z","updated_at":"2024-10-23T11:08:05.000Z","dependencies_parsed_at":"2024-02-08T20:02:11.435Z","dependency_job_id":null,"html_url":"https://github.com/alemidev/abot","commit_stats":null,"previous_names":["alemidev/abot"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Fabot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Fabot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Fabot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Fabot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alemidev","download_url":"https://codeload.github.com/alemidev/abot/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238795390,"owners_count":19531730,"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","pyrogram","python","telegram","userbot"],"created_at":"2024-10-11T22:54:05.797Z","updated_at":"2025-10-29T08:32:54.466Z","avatar_url":"https://github.com/alemidev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aBot\n**Telegram bot/userbot framework**\n\nThis repo contains the root for abot:\n* `core` plugin\n* utils\n* config file\n* folders\n\n### Features\n* a centralized config file\n* a command parsing system (UNIX-like) to implement sophisticated commands\n* an help command which automatically extracts docstrings\n* a 2 role permission system (user/root)\n* a wrapper around pyrogram SQLite db, for easy storage of persistent data\n* some common commands (/update, /ping, /info)\n* events for bot startup/shutdown\n* some utility functions to handle most common tasks\n* a plugin manager (with git submodules), allowing plugins to access all above features\n\naBot simplifies my bot development, by providing a standardized and solid baseline, with common features to all projects, which can focus on their specific functionalities.\n\n# Some plugins\n* `https://git.alemi.dev/abot/debugtool.git` very useful tools for debugging and interacting with server\n* `https://git.alemi.dev/abot/tricks.git` my biggest collection of \"trick command\": fancy stuff to show off\n* `https://git.alemi.dev/abot/moderation.git` a powerful purge command, to precisely delete messages, plus a small censor utility\n* `https://git.alemi.dev/abot/statsbot.git` a powerful tracker bot to log your group stats or provide fun insights\n* ... more to come, send me your plugins!\n\n## Making custom plugins\nTo develop your own plugins for aBot, you should clone first this repository and work in a folder in the `plugins` directory.\nEach plugin must be a repository itself which can be installed in the `plugins` folder as a submodule.\n\n**One \"catch\":** your plugin should import its files as `import plugins.\u003cyourplugin\u003e.\u003c...\u003e`. This means that if you need to have custom classes, you cannot have dashes (`-`) in your plugin name. Thinking about solutions... On the flip side, you can always access utils\n\n# How to deploy\nYou just need Python 3.7+ and a PC always on to run this. More dependancies will depend on modules.\nIt is strongly recommended to install this on a UNIX system. If you plan to install on Windows, [I recommend installing abot inside a WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10)\n* Clone this repo : `git clone https://git.alemi.dev/abot/core.git abot`\n* Make a `venv` with `python3 -m venv \u003canyfolder\u003e`\n* Activate `venv` with `source \u003cvenvfolder\u003e/bin/activate`\n* Install the `abot` package in your new venv: `pip install ./abot`\n* Copy `default.ini` to another file (`my-bot.ini`, for example, use any name) and fill in your API hash and ID (visit https://my.telegram.org/)\n* Run bot : `python -m abot my-bot`, pass your config name as argument. First time it will request your phone number and a verification code.\n\n# config file\nOnly required fields are `api_id` and `api_hash`. There is an example config file (`default.ini`) where you just need to fill `api_id` and `api_hash`.\nMultiple bot instances can be run with just 1 installation: just give unique names to your configurations and run the correct one: `python -m abot \u003cconfig-name\u003e`.\n\n```ini\n[pyrogram]\napi_id = 1234                     # your API ID\napi_hash = longstring             # your API hash\n[perms]\nsudo = 0                          # users allowed to operate this account as sudo. Put ids, separate with whitespace\npublic = False                    # commands for allowed users will be available to everyone\nallowPlugins = True               # allow superusers to install more plugins\n[customization]\nprefixes = .!                     # bot prefixes\nuseSsh = False                    # use ssh to clone more plugins\ndesc = A bot made with aBot       # description to display in /help\n[plugins]\nroot = plugins                    # change plugins folder, leave this as is\n```\n\nPlugins may add categories or fields to the config file, refer to their instructions for further configuration.\n\n# Contacts\non [my site](https://alemi.dev) or [mail me](mailto:me@alemi.dev)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falemidev%2Fabot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falemidev%2Fabot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falemidev%2Fabot/lists"}