Library with functions for basic Discord/Telegram bot development
Go to file
Renovate 54feb5ff5b
All checks were successful
Tests / test (3.10) (pull_request) Successful in 1m4s
Tests / test (3.11) (pull_request) Successful in 1m3s
Tests / test (3.12) (pull_request) Successful in 1m9s
Tests / test (3.9) (pull_request) Successful in 1m4s
Update dependency tox to v4.23.1
2024-10-22 08:50:37 +03:00
.gitea/workflows Dropped Python 3.8 support and added 3.12 support instead 2024-09-21 00:11:13 +02:00
examples Separated examples for Pyrogram and Pycord 2024-05-19 14:48:16 +02:00
requirements Update dependency tox to v4.23.1 2024-10-22 08:50:37 +03:00
src/libbot Dropped Python 3.8 support and added 3.12 support instead 2024-09-21 00:11:13 +02:00
tests Fixed incorrect test declaration 2024-07-26 19:58:26 +02: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 Dropped Python 3.8 support and added 3.12 support instead 2024-09-21 00:11:13 +02:00
README.md Improved metadata and readme 2024-05-19 14:47:07 +02:00
tox.ini Dropped Python 3.8 support and added 3.12 support instead 2024-09-21 00:11:13 +02: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

from libbot.pyrogram import PyroClient

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

    try:
        client.run()
    except KeyboardInterrupt:
        print("Shutting down...")
    finally:
        if client.scheduler is not None:
            client.scheduler.shutdown()
        exit()


if __name__ == "__main__":
    main()

Pycord

from discord import Intents
from libbot import sync
from libbot.pycord import PycordBot


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

    bot.load_extension("cogs")

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


if __name__ == "__main__":
    loop = 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.