Skip to main content

Translategram is a Python library for translating messages are sent by your Bot in Telegram

Project description

Auto Translategram

Auto Translategram is a Python package that provides translation capabilities for Telegram bots. It uses and supports multiple translation services.

Installation

You can install Auto Translategram using pip:

pip install translategram

Usage

First you need to add a parameter to your handler called whatever you want (in this example we called it message) and its type should be the string.

@translator.handler_translator(message="Welcome to out community!")
async def login(update: Update, context: ContextTypes.DEFAULT_TYPE, message: str) -> None:
    await context.bot.send_message(
            chat_id=update.effective_chat.id if update.effective_chat else 0,
            text=message
            )

And then just register your handler in handler class.

login_handler = CommandHandler('login', login)

As well as you should create translator instance based on the framework you are using (in this case python-telegram-bot).

from auto_translategram import PythonTelegramBotTranslator, MtranslateTranslatorService

translator = PythonTelegramBotTranslator(MtranslateTranslatorService)

And finally your file should looks like this:

import logging
from telegram.ext import ApplicationBuilder, ContextTypes, CommandHandler
from telegram import Update
from auto_translategram import PythonTelegramBotTranslator, MtranslateTranslatorService

translator = PythonTelegramBotTranslator(MtranslateTranslatorService)
TOKEN = 'YOUR_TOKEN'
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.INFO
)

logger = logging.getLogger(__name__)


@translator.handler_translator(message="Welcome to out community!")
async def login(update: Update, context: ContextTypes.DEFAULT_TYPE, message: str) -> None:
    await context.bot.send_message(
            chat_id=update.effective_chat.id if update.effective_chat else 0,
            text=message
            )


@translator.handler_translator(message="This bot is very simple. You can just login with the /login command and that is it!")
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE, message: str) -> None:
    await context.bot.send_message(
            chat_id=update.effective_chat.id if update.effective_chat else 0,
            text=message
            )

if __name__ == '__main__':
    application = ApplicationBuilder().token(TOKEN).build()

    login_handler = CommandHandler('login', login)
    start_handler = CommandHandler('start', start)
    application.add_handler(login_handler)
    application.add_handler(start_handler)

    application.run_polling()

TODO

  • Implement cache system
    • Create abstract base class for different cache systems.
    • Cache System with Pickling and serialization (e.g. JSON).
      • The Pickle module in Python can be used to serialize dataclasses and store them on disk. This approach is simple and suitable for small to medium-sized projects.
    • Cache System with Memcache.
    • Cache System with Redis.
  • Add aiogram framework adapter.
  • Add pyTelegramBotApi framework adapter.
  • Add support for more translation services.

License

This project is licensed under the terms of the MIT license.

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

translategram-0.2.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

translategram-0.2.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file translategram-0.2.0.tar.gz.

File metadata

  • Download URL: translategram-0.2.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for translategram-0.2.0.tar.gz
Algorithm Hash digest
SHA256 595d0a594d6bc9240c8a47f949c0c6ebe967f729047c6dffc8130ece15f3dcda
MD5 f2a242fb88c6609294b02330744297a2
BLAKE2b-256 c40dcc8c3c05c397ca942dd7b901c7caf625d12731753a5ea7e8638ebf502ab0

See more details on using hashes here.

File details

Details for the file translategram-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for translategram-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4ac7bf84441c31d8250cd54b71b8e4ada4251f240a81bd0be62ae9b19bf0c214
MD5 2d521c94c8fad2ba72c9de72a80bb5a8
BLAKE2b-256 94f5698cc926d127c500508bf05d55e1aa50e7d69eb53a5674636875b454f344

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