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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 595d0a594d6bc9240c8a47f949c0c6ebe967f729047c6dffc8130ece15f3dcda |
|
MD5 | f2a242fb88c6609294b02330744297a2 |
|
BLAKE2b-256 | c40dcc8c3c05c397ca942dd7b901c7caf625d12731753a5ea7e8638ebf502ab0 |
File details
Details for the file translategram-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: translategram-0.2.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ac7bf84441c31d8250cd54b71b8e4ada4251f240a81bd0be62ae9b19bf0c214 |
|
MD5 | 2d521c94c8fad2ba72c9de72a80bb5a8 |
|
BLAKE2b-256 | 94f5698cc926d127c500508bf05d55e1aa50e7d69eb53a5674636875b454f344 |