示例#1
0
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
示例#2
0
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
示例#3
0
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")
示例#4
0
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
示例#5
0
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)