Skip to content

Commit

Permalink
translator: rework
Browse files Browse the repository at this point in the history
  • Loading branch information
Dank-del committed Jul 30, 2021
1 parent 852b63f commit 8935d76
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 53 deletions.
15 changes: 10 additions & 5 deletions tg_bot/langs/en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -276,11 +276,16 @@ antispam_help: |
Uses @Intellivoid's Coffeehouse Artificial Engine. Every ban is checked by real trusty people before being finalized.
gtranslate_help: |
• `/tr` or `/tl` (language code) as reply to a long message
*Example:*
`/tr en`*:* translates something to english
`/tr hi//en`*:* translates hindi to english
• `/langs`: get a list of supported languages for translation.
Translate some text by give a text or reply that text/caption.
Translate by Google Translate
`/tr (lang) (""text)`
Give a target language and text as args for translate to that target.
Reply a message to translate that.
"" = Not used when replied to a message.
locks_help: |
Do stickers annoy you? or want to avoid people sharing links? or pictures?
You're in the right place!
Expand Down
82 changes: 34 additions & 48 deletions tg_bot/modules/gtranslator.py
Original file line number Diff line number Diff line change
@@ -1,59 +1,45 @@
from telegram import ParseMode, Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import CallbackContext
from tg_bot.modules.helper_funcs.decorators import kigcmd
from tg_bot.modules.language import gs
from gpytranslate import SyncTranslator
from tg_bot.modules.language import gs

def get_help(chat):
return gs(chat, "gtranslate_help")

__mod_name__ = "Translator"
trans = SyncTranslator()

from telegram import ParseMode, message, update
from telegram.ext import CallbackContext
from tg_bot.modules.helper_funcs.decorators import kigcmd

@kigcmd(command=['tr', 'tl'])
def translate(update: Update, context: CallbackContext) -> None:
@kigcmd(command=["tr", "tl"])
def translate(update: update, context: CallbackContext):
message = update.effective_message
reply_msg = message.reply_to_message
if not reply_msg:
message.reply_text("Reply to a message to translate it!")
return
if reply_msg.caption:
to_translate = reply_msg.caption
elif reply_msg.text:
to_translate = reply_msg.text
try:
args = message.text.split()[1].lower()
if "//" in args:
source = args.split("//")[0]
dest = args.split("//")[1]
trl = SyncTranslator()
if message.reply_to_message and (message.reply_to_message.text or message.reply_to_message.caption):
if len(message.text.split()) == 1:
message.delete()
return
target = message.text.split()[1]
if message.reply_to_message.text:
text = message.reply_to_message.text
else:
source = trans.detect(to_translate)
dest = args
except IndexError:
source = trans.detect(to_translate)
dest = "en"
translation = trans(to_translate,
sourcelang=source, targetlang=dest)
reply = f"<b>Translated from {source} to {dest}</b>:\n" \
f"<code>{translation.text}</code>"

message.reply_text(reply, parse_mode=ParseMode.HTML)

text = message.reply_to_message.caption
detectlang = trl.detect(text)
try:
tekstr = trl(text, targetlang=target)
except ValueError as err:
message.reply_text(f"Error: `{str(err)}`", parse_mode=ParseMode.MARKDOWN)
return
else:
if len(message.text.split()) <= 2:
message.delete()
return
target = message.text.split(None, 2)[1]
text = message.text.split(None, 2)[2]
detectlang = trl.detect(text)
try:
tekstr = trl(text, targetlang=target)
except ValueError as err:
message.reply_text("Error: `{}`".format(str(err)), parse_mode=ParseMode.MARKDOWN)
return

@kigcmd(command='langs')
def languages(update: Update, context: CallbackContext) -> None:
update.effective_message.reply_text(
"Click on the button below to see the list of supported language codes.",
reply_markup=InlineKeyboardMarkup(
[
[
InlineKeyboardButton(
text="Language codes",
url="https://telegra.ph/Lang-Codes-03-19-3"
),
],
],
disable_web_page_preview=True
)
)
message.reply_text(f"*Translated from {detectlang}:*\n```{tekstr.text}```", parse_mode=ParseMode.MARKDOWN)

0 comments on commit 8935d76

Please sign in to comment.