Library with functions for basic Discord/Telegram bot development
Profitroll
9907cc50f1
All checks were successful
Analysis / SonarCloud (push) Successful in 46s
Tests / Build and Test (3.10) (push) Successful in 1m3s
Tests / Build and Test (3.11) (push) Successful in 1m1s
Tests / Build and Test (3.12) (push) Successful in 1m8s
Tests / Build and Test (3.9) (push) Successful in 1m3s
Reviewed-on: #160 |
||
---|---|---|
.gitea/workflows | ||
examples | ||
requirements | ||
src/libbot | ||
tests | ||
.gitignore | ||
.renovaterc | ||
LICENSE | ||
pyproject.toml | ||
README.md | ||
sonar-project.properties | ||
tox.ini |
LibBotUniversal
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.