2024-05-19 15:47:07 +03:00
< h1 align = "center" > LibBotUniversal< / h1 >
2023-05-11 20:52:10 +03:00
2024-05-19 15:47:07 +03:00
< 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.