Skip to main content

An Elegant Modern Bot Framework for Python

Project description

Telegant

Code style: black

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 and PascalCase for calling methods
  • Asynchronous bot
  • Lightweight (Less than 20kb at the moment!)
  • Simple usage
  • Bot Helpers

Installation

To install the project, simply run:

pip install telegant

Example

from telegant import Bot
import asyncio

bot = Bot("YOUR_BOT_TOKEN_HERE")

@bot.hears("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)

asyncio.run(bot.start_polling())

Usage

On text

If you need your bot to respond to specified text just use @bot.hears()

@bot.hears("hello")
async def say_hello(bot, update): 
    await bot.send_message(text="What's up?")

Ability to use both snake_case and PascalCase style methods

PascalCase

@bot.hears("hello")
async def say_hello(bot, update): 
    await bot.sendMessage(text="What's up?")

snake_case

@bot.hears("hello")
async def say_hello(bot, update): 
    await bot.send_message(text="What's up?")

Sending bot with buttons

Inline buttons example

@bot.hears("hello")
async def say_hello(bot, update): 
 
    buttons = [
        {"text": "Option 1 (inline)", "data": "option1"},  
    ]

    #snake_case example
    await bot.send_message(text="What's up?", reply_markup=bot.create_reply_markup(buttons))

Reply buttons example

@bot.hears("hello")
async def say_hello(bot, update): 
 
    buttons = [
        {"text": "Option 1 (reply)"},  
    ]

    await bot.send_message(text="What's up?", reply_markup=bot.create_reply_markup(buttons))

Bot always detects your buttons type automatically by 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Telegant-0.1.9.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

Telegant-0.1.9-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file Telegant-0.1.9.tar.gz.

File metadata

  • Download URL: Telegant-0.1.9.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for Telegant-0.1.9.tar.gz
Algorithm Hash digest
SHA256 e8b78c59489b9d47feab98e8ecf915f9a8364de149c052e1a992d74bd6d140d0
MD5 d4f3af6416f64a562d2bda3e644398d9
BLAKE2b-256 8854eb5b82b1cb71d9bb57c5c242345cf864b08ce32931faf47e42fa64e6f3d0

See more details on using hashes here.

File details

Details for the file Telegant-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: Telegant-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for Telegant-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 7e7b29ada03bbb9a61b963fb71d317b1bf57c9aeb053ff8cfbff5a19bf220d58
MD5 15a45e91213380a233e690b42bed0347
BLAKE2b-256 f8fda11f56a03a2306ac73ce04d78d55fbbbb440a559975e44c40dfbcd70ef53

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page