87 lines
2.4 KiB
Markdown
87 lines
2.4 KiB
Markdown
<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.
|