def translate_text(text, lang='zh-CN', detect=1, type=0): if type == 0: # Specific language translated_cleaned = output(trans(text, lang)) elif type == 1: # Auto Translation translated_cleaned = output(trans_auto(text)) else: # To Chinese translated_cleaned = output(trans(text, lang)) if STAT: try: stathat = StatHat() stathat.ez_post_count(STAT_ACCOUNT, STAT_INSTANCE, 1) except Exception as e: cprint('Request susceed but stat failed!' + str(e), 'white', 'on_red') capture_message('Request susceed but stat failed!') return translated_cleaned
async def text_translate(message: types.Message): chat_type = message.chat.type chat_id = message.chat.id action_btn = types.InlineKeyboardMarkup(resize_keyboard=True, selective=True) action_btn.insert( InlineKeyboardButton(text='🇨🇳🇺🇸🇯🇵', callback_data='select')) action_btn.insert(InlineKeyboardButton(text='🗑️', callback_data='del')) if chat_type == 'private': await bot.send_chat_action(message.chat.id, action="typing") capture_message( f'[{chat_type}, @{message.from_user.id}, #{message.from_user.first_name}] {message.text} ' ) result = translate_text(message.text) await message.reply(result, disable_notification=True) elif ((chat_type == 'group') or (chat_type == 'supergroup')) and (str(chat_id) in GROUP_LIST): cprint(f"{chat_id} 自动翻译 {message.text}", 'white', 'on_cyan') capture_message( f'[{chat_type}, @{message.from_user.id}, #{message.from_user.first_name}] {message.text} ' ) await bot.send_chat_action(message.chat.id, action="typing") result = output(trans_auto(message.text)) await message.reply(result, parse_mode='markdown', disable_notification=True, disable_web_page_preview=True, reply_markup=action_btn) else: # 过滤所有群聊、频道 # print(str(message.chat.id) in GROUP_LIST) pass
async def query_translate(call: types.CallbackQuery): origin_msg = call.message.text.split('▸')[1].split('\n')[0] translated_msg = call.message.text.split('▸')[-1] # await bot.send_chat_action(message.chat.id, action="typing") await call.answer(text="消息已翻译 Message translated") await bot.edit_message_text("`" + call.message.text.split('▸')[0] + "`" + \ output(trans_auto(translated_msg)), call.message.chat.id, call.message.message_id, parse_mode="markdown")
def trans_c(text, lang='zh-CN', detect=1): translated_cleaned = output(trans(text, lang)) if STAT: try: stathat = StatHat() stathat.ez_post_count(STAT_ACCOUNT, STAT_INSTANCE, 1) except Exception as e: cprint('Request susceed but stat failed!' + e, 'white', 'on_red') return translated_cleaned
async def query_specify(call: types.CallbackQuery): languages = {'zh': '🇨🇳', 'en': '🇺🇸', 'ja': '🇯🇵', 'ru': '🇷🇺', 'vi': '🇻🇳'} # await bot.send_chat_action(message.chat.id, action="typing") reply_message = call.message.reply_to_message reply_text = reply_message.text action_btn = types.InlineKeyboardMarkup(resize_keyboard=True, selective=True) action_btn.insert( InlineKeyboardButton(text=f'{languages[call.data]}', callback_data='select')) action_btn.insert(InlineKeyboardButton(text='🗑️', callback_data='del')) await call.answer(text=f"{languages[call.data]} 正在翻译 Translating...") await bot.edit_message_text(output(translate_text(reply_text, call.data)), call.message.chat.id, call.message.message_id, parse_mode="markdown", reply_markup=action_btn)