Skip to main content

Telegram Advanced Package Documentation

Table of Contents

  1. Installation
  2. Basic Usage
  3. Key Components
  4. Advanced Usage
  5. Error Handling

Installation

To install the Telegram Advanced package, use pip:

pip install telegram-advanced

Basic Usage

Here's a simple example of how to create a bot using the Telegram Advanced package:

import asyncio
import aiohttp
from telegram_advanced.bot import TelegramBot
from openai import AsyncOpenAI
import os

class SimpleBot(TelegramBot):
    def __init__(self, token, openai_api_key):
        super().__init__(token)
        self.base_url = f"https://api.telegram.org/bot{token}/"
        self.ai_client = AsyncOpenAI(api_key=openai_api_key)

    async def process_update(self, update: dict):
        if 'message' in update:
            message = update['message']
            chat_id = message['chat']['id']
            text = message.get('text', '')
            
            if text == '/start':
                await self.send_text(chat_id, "Hello! Ask me anything!")
            else:
                ai_response = await self.get_ai_response(text)
                await self.send_text(chat_id, ai_response)

    async def send_text(self, chat_id: int, text: str):
        async with aiohttp.ClientSession() as session:
            url = f"{self.base_url}sendMessage"
            params = {
                "chat_id": chat_id,
                "text": text
            }
            await session.get(url, params=params)

    async def get_ai_response(self, user_message: str) -> str:
        try:
            response = await self.ai_client.chat.completions.create(
                messages=[
                    {"role": "system", "content": "You are a helpful assistant."},
                    {"role": "user", "content": user_message}
                ],
                model="gpt-3.5-turbo",
            )
            return response.choices[0].message.content
        except Exception as e:
            return "Sorry, I couldn't get a response."

async def main():
    telegram_token = os.getenv("TELEGRAM_TOKEN")
    openai_api_key = os.getenv("OPENAI_API_KEY")
    
    bot = SimpleBot(telegram_token, openai_api_key)
    
    await bot.run()

if __name__ == "__main__":
    asyncio.run(main())

Key Components

API

The api module contains the core functionality for interacting with the Telegram API.

  • client.py: Handles API requests and responses.
  • types.py: Defines Python objects that represent Telegram entities.
  • methods.py: Implements Telegram API methods.

Example usage:

from telegram_advanced.api.client import TelegramClient

client = TelegramClient("YOUR_BOT_TOKEN")
updates = client.get_updates()

Handlers

The handlers module contains classes for handling different types of updates from Telegram.

  • message_handler.py: Handles incoming messages.
  • command_handler.py: Handles bot commands.
  • callback_handler.py: Handles callback queries from inline keyboards.
  • inline_handler.py: Handles inline queries.

Example usage:

from telegram_advanced.handlers.command_handler import CommandHandler

def start(update, context):
    context.bot.send_message(chat_id=update.effective_chat.id, text="Hello! I'm a bot.")

start_handler = CommandHandler("start", start)
bot.add_handler(start_handler)

Components

The components module provides utility classes for working with various Telegram features.

  • keyboards.py: Creates inline and reply keyboards.
  • media.py: Handles photo, video, and other media types.
  • passport.py: Implements Telegram Passport functionality.
  • payments.py: Handles Telegram Payments.
  • games.py: Implements Telegram Games.

Example usage:

from telegram_advanced.components.keyboards import InlineKeyboardBuilder

keyboard = InlineKeyboardBuilder()
keyboard.add_button("Click me!", callback_data="button1")
message = bot.send_message(chat_id, "Here's a button:", reply_markup=keyboard.build())

Management

The management module provides tools for managing Telegram groups, channels, and users.

  • groups.py: Manage group chats.
  • channels.py: Manage channels.
  • users.py: Manage user data and permissions.

Example usage:

from telegram_advanced.management.groups import GroupManager

group_manager = GroupManager(bot)
members = group_manager.get_chat_members(chat_id)

Features

The features module implements additional Telegram features.

  • polls.py: Create and manage polls.
  • threads.py: Handle message threads in groups.
  • reactions.py: Manage message reactions.
  • pinned_messages.py: Handle pinned messages.

Example usage:

from telegram_advanced.features.polls import PollManager

poll_manager = PollManager(bot)
poll = poll_manager.create_poll(chat_id, "What's your favorite color?", ["Red", "Blue", "Green"])

Utils

The utils module provides various utility functions and classes.

  • file_handling.py: Handle file uploads and downloads.
  • localization.py: Implement multi-language support.
  • security.py: Implement security features like rate limiting.
  • caching.py: Cache frequently used data.
  • connection_pool.py: Manage API connections efficiently.
  • batch_processing.py: Process updates in batches.
  • rate_limiter.py: Implement rate limiting for API requests.
  • pagination.py: Handle paginated results from the API.

Example usage:

from telegram_advanced.utils.file_handling import FileUploader

uploader = FileUploader(bot)
file_id = uploader.upload_photo("path/to/photo.jpg")

Analytics

The analytics module provides tools for analyzing bot usage and performance.

  • statistics.py: Collect and analyze usage statistics.
  • peer_rating.py: Implement a rating system for users or chats.

Example usage:

from telegram_advanced.analytics.statistics import UsageTracker

tracker = UsageTracker(bot)
daily_stats = tracker.get_daily_usage()

Advanced Usage

For more advanced usage, you can combine multiple components:

from telegram_advanced.bot import TelegramBot
from telegram_advanced.handlers.command_handler import CommandHandler
from telegram_advanced.components.keyboards import InlineKeyboardBuilder
from telegram_advanced.features.polls import PollManager

bot = Bot("YOUR_BOT_TOKEN")

def create_poll(update, context):
    keyboard = InlineKeyboardBuilder()
    keyboard.add_button("Create Poll", callback_data="create_poll")
    context.bot.send_message(chat_id=update.effective_chat.id, text="Click to create a poll:", reply_markup=keyboard.build())

def poll_callback(update, context):
    query = update.callback_query
    if query.data == "create_poll":
        poll_manager = PollManager(context.bot)
        poll = poll_manager.create_poll(query.message.chat_id, "What's your favorite programming language?", ["Python", "JavaScript", "Java", "C++"])
        query.answer("Poll created!")

bot.add_handler(CommandHandler("poll", create_poll))
bot.add_handler(CallbackQueryHandler(poll_callback))

bot.start_polling()

Error Handling

The package includes a custom exceptions.py module for handling Telegram-specific errors:

from telegram_advanced.exceptions import TelegramAPIError

try:
    # Some API call
    bot.send_message(chat_id, "Hello, World!")
except TelegramAPIError as e:
    print(f"An error occurred: {e}")

Metadata

Release files for telegram-advanced 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for telegram-advanced 0.2.0
File Size Uploaded Provenance Actions
telegram_advanced-0.2.0.tar.gz 19.8 kB Without provenance Details for telegram_advanced-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for telegram-advanced 0.2.0
File Interpreter ABI Platform Actions
telegram_advanced-0.2.0-py3-none-any.whl Python 3 none any Details for telegram_advanced-0.2.0-py3-none-any.whl

Total release size: 46.3 kB

Release files / telegram_advanced-0.2.0.tar.gz

Download URL telegram_advanced-0.2.0.tar.gz
Size 19.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e55d73f200f46704084e4c050f023ca2acb7ce51bbac7bb3a7d6093e89685d6d
BLAKE2b-256 checksum
How to use checksums
00bde2aff689cd7150a34b921fc350622486a850ec8695b46d9d9b76a85a2c31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.2

Release files / telegram_advanced-0.2.0-py3-none-any.whl

Download URL telegram_advanced-0.2.0-py3-none-any.whl
Size 26.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bd7e3c45dd81143ee2051ece8739fad30073a3332e81fd5510493a21207feae7
BLAKE2b-256 checksum
How to use checksums
5778f2a91a522b0a55e23da57e5e76f243cca45c25be40dc1518e75f470ada37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.2

Security for telegram-advanced 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page