An Elegant Modern Bot Framework for Python
Project description
Telegant
Telegant
Telegant is an elegant modern bot framework for Python, designed to provide developers with simple and elegant access to the Telegram bot API. This project is now in Beta phase. All Telegram bot api methods are now supported automatically.
Features and highlights
- Automated coverage of all Telegram bot api methods
- Support of snake_case, camelCase and PascalCase for methods
- Asynchronous bot
- Lightweight
- Fast
- Simple
- Bot Helpers
- Regex Expressions for text messages
Installation
To install the project, simply run:
pip install telegant
Contribution
For contribution to this project you have to open discussion under Contribution section. It will be decided if your request is going to be accepted or not.
Example
from telegant import Bot
bot = Bot("YOUR_BOT_TOKEN_HERE")
@bot.hear("hello")
async def say_hello(bot, update):
await bot.send_message(text="What's up?")
#Your code here (Recommended to write your functions in order)
bot.start_polling()
Usage
On text
If you need your bot to respond to specified text just use @bot.hear()
@bot.hear("hello")
async def say_hello(bot, update):
await bot.send_message(text="What's up?")
Or many texts
@bot.hears(["hello"])
async def say_hello(bot, update):
await bot.send_message(text="What's up?")
Case styles
Ability to use different case styles
snake_case
@bot.hear("hello")
async def say_hello(bot, update):
await bot.send_message(text="What's up?")
camelCase
@bot.hear("hello")
async def say_hello(bot, update):
await bot.sendMessage(text="What's up?")
PascalCase
@bot.hear("hello")
async def say_hello(bot, update):
await bot.SendMessage(text="What's up?")
Sending bot with buttons
Inline buttons example
@bot.hear("hello")
async def say_hello(bot, update):
buttons = [
[
{"text": "Option 1 (inline)", "callback_data": "option1"},
]
]
#snake_case example
await bot.send_message(text="What's up?", reply_markup=buttons)
Reply buttons example
@bot.hear("hello")
async def say_hello(bot, update):
buttons = [
[
{"text": "Option 1 (reply)"},
]
]
await bot.send_message(text="What's up?", reply_markup=buttons)
Bot always detects your buttons type automatically by callback_data key. If you want to use inline buttons you have to write text and data values for each button. As it is detects your inline button when you have "data" key in your button. Otherwise, it will detect as reply keyboard.
Commands
You can assign to one function one command or many commands as needed. For single command use @bot.command() decorator.
@bot.command("start")
async def say_hello(bot, update):
await bot.send_message(text="Sup I'm start")
For several commands use @bot.commands() decorator.
@bot.commands(['help', 'ask'])
async def say_hello(bot, update):
await bot.send_message(text="You've reached for help")
Export data after command by your keys
@bot.commands(['usernameandage'])
@bot.with_args(['username', 'age'])
async def handler(bot, update, data):
await bot.send_message(text=f"Hello {data['username']}, you are {data['age']} years old.")
Callbacks
Telegant also offers to you simply detect your callbacks where you able to assign many or one callback to your function
Many callbacks example
@bot.callbacks(['option1', 'option2'])
async def say_hello(bot, update):
await bot.send_message(text="Callbacks are perfect!")
Single callback example
@bot.callback('option1')
async def say_hello(bot, update):
await bot.send_message(text="Callback is perfect")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file Telegant-0.2.2.tar.gz
.
File metadata
- Download URL: Telegant-0.2.2.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | efcd9e372ce6169fcc979a909d354cf5e8f4b6c1f900400b151af2fb068b5419 |
|
MD5 | 78c795e1b21cbd0bbbf3f0580bd30925 |
|
BLAKE2b-256 | 9decd71389c19435cc1268bcad9f8eb55f5bb33dcd1feff2a57a9b93c09e5ba2 |
File details
Details for the file Telegant-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: Telegant-0.2.2-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f61cf64638e096ee1898ae360b50c6178e37d082a8eec8470335df183eeb28d1 |
|
MD5 | 6521749751b1cd3db428a4a8e45f3e25 |
|
BLAKE2b-256 | d51d7c79fb5afc24bf4cb0e6f991963b18b2d9f606cb075d0b9414093e4e3d06 |