<h1 align="center">LibBotUniversal</h1> <p align="center"> <a href="https://git.end-play.xyz/profitroll/LibBotUniversal/src/branch/master/LICENSE"><img alt="PyPI - License" src="https://img.shields.io/pypi/l/libbot"> <a href="https://git.end-play.xyz/profitroll/LibBotUniversal/releases/latest"><img alt="Gitea Release" src="https://img.shields.io/gitea/v/release/profitroll/LibBotUniversal?gitea_url=https%3A%2F%2Fgit.end-play.xyz"></a> <a href="https://pypi.org/project/libbot/"><img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/libbot"></a> <a href="https://git.end-play.xyz/profitroll/LibBotUniversal"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a> </p> 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. ```shell # 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 ```python 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 ```python 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.