Library with functions for basic Discord/Telegram bot development
Go to file
Profitroll 508c48d22b
All checks were successful
Analysis / SonarCloud (push) Successful in 46s
Tests / Build and Test (3.11) (push) Successful in 1m16s
Tests / Build and Test (3.12) (push) Successful in 1m24s
Tests / Build and Test (3.13) (push) Successful in 1m24s
Upload Python Package / release-build (release) Successful in 18s
Upload Python Package / gitea-publish (release) Successful in 9s
Upload Python Package / pypi-publish (release) Successful in 15s
Merge pull request 'v4.0.2' (#172) from dev into main
Reviewed-on: #172
2025-01-02 15:04:26 +02:00
.gitea/workflows TEST: Publishing Action 2025-01-02 13:58:23 +01:00
examples Added a quick README for examples (belongs to #60) 2024-12-31 11:10:06 +01:00
requirements Update dependency pytest-asyncio to v0.25.1 2025-01-02 08:03:07 +02:00
src/libbot Optimized json_load usage, imports and typing 2025-01-01 22:34:38 +01:00
tests Removed legacy usage of Union[] 2024-12-26 18:36:57 +01:00
.gitignore Added nested_delete and config_delete 2024-05-26 15:40:29 +02:00
.renovaterc Renovate's main branch is now "dev" 2023-12-10 11:58:21 +01:00
LICENSE Initial commit 2023-05-11 20:52:10 +03:00
pyproject.toml WIP: Overhaul for 4.0.0 2024-12-18 14:16:37 +01:00
README.md Fixed imports in examples 2024-12-29 16:27:58 +01:00
sonar-project.properties Add sonar-project.properties 2024-10-29 17:38:41 +02:00
tox.ini WIP: Overhaul for 4.0.0 2024-12-18 14:16:37 +01:00

LibBotUniversal

PyPI - License Gitea Release PyPI - Python Version Code style: black

Handy library for Telegram/Discord bots development.

Getting started

There are different sub-packages available:

  • pyrogram - Telegram bots with Pyrogram's fork "Pyrofork"
  • pycord - Discord bots with Pycord
  • speed - Performance improvements
  • dev - Dependencies for package development purposes

You can freely choose any sub-package you want, as well as add multiple (comma-separated) or none at all.

# Only general features
pip install libbot

# Only with Pyrogram
pip install libbot[pyrogram]

# With Pycord and Performance improvements
pip install libbot[pycord,speed]

Examples

Pyrogram

import sys

from libbot.pyrogram.classes import PyroClient


def main():
    client: PyroClient = PyroClient()

    try:
        client.run()
    except KeyboardInterrupt:
        print("Shutting down...")
    finally:
        sys.exit()


if __name__ == "__main__":
    main()

Pycord

import asyncio
from asyncio import AbstractEventLoop

from discord import Intents
from libbot.utils import config_get
from libbot.pycord.classes import PycordBot


async def main():
    intents: Intents = Intents.default()
    bot: PycordBot = PycordBot(intents=intents)

    bot.load_extension("cogs")

    try:
        await bot.start(config_get("bot_token", "bot"))
    except KeyboardInterrupt:
        print("Shutting down...")
        await bot.close()


if __name__ == "__main__":
    loop: AbstractEventLoop = asyncio.get_event_loop()
    loop.run_until_complete(main())

Config examples

For bot config examples please check the examples directory. Without a valid config file, the bot won't start at all, so you need to make sure the correct config file is used.