Ejemplo n.º 1
0
async def translate(context):
    """ PagerMaid universal translator. """
    translator = Translator()
    reply = await context.get_reply_message()
    message = context.arguments
    ap_lang = config['application_language']
    if message:
        pass
    elif reply:
        message = reply.text
    else:
        await context.edit(lang('arg_error'))
        return

    try:
        if not silent:
            await context.edit(lang('translate_processing'))
        try:
            result = translator.translate(clear_emojis(message), dest=ap_lang)
        except:
            from translate import Translator as trans
            result = trans(to_lang=ap_lang.replace('zh-cn', 'zh')).translate(
                clear_emojis(message))
    except ValueError:
        await context.edit(lang('translate_ValueError'))
        return
    try:
        source_lang = result.src
        source_text = result.origin
        trans_lang = result.dest
    except AttributeError:
        await context.edit(lang('google_connection_error'))
        return
    result = f"**{lang('translate_hits')}**\n{lang('translate_original_lang')}: {source_lang}\n{source_text} -> {result.text}"

    if len(result) > 4096:
        await context.edit(lang('translate_tg_limit_uploading_file'))
        await attach_log(result, context.chat_id, "translation.txt",
                         context.id)
        return
    await context.edit(result)
    if len(result) <= 4096:
        await log(
            f"{lang('translate_get')}: `{source_text}` \n{lang('translate_from')} {source_lang} {lang('translate_to')} {trans_lang}"
        )
    else:
        await log(
            f"{lang('translate_get')}{translate('translate_from')} {source_lang} {lang('translate_to')} {trans_lang}."
        )
Ejemplo n.º 2
0
async def chatbot(context):
    try:
        text = await obtain_message(context)
    except ValueError:
        await context.edit(lang('msg_ValueError'))
        return
    text = clear_emojis(text)
    text = quote(text)

    try:
        req_data = requests.get(
            f"https://api.affiliateplus.xyz/api/chatbot?message={text}"
            f"&botname=pagermaid&ownername=xtao-labs&user=20")
    except Exception as e:
        await context.edit('出错了呜呜呜 ~ 无法访问 API ')
        return
    if not req_data.status_code == 200:
        return await context.edit('出错了呜呜呜 ~ 无法访问 API ')

    try:
        req_data = json.loads(req_data.text)
        req_data = req_data["message"]
    except Exception as e:
        await context.edit("出错了呜呜呜 ~ 解析JSON时发生了错误。")
        return

    await context.edit(req_data)
Ejemplo n.º 3
0
async def translate(context):
    """ PagerMaid universal translator. """
    translator = Translator()
    reply = await context.get_reply_message()
    message = context.arguments
    lang = config['application_language']
    if message:
        pass
    elif reply:
        message = reply.text
    else:
        await context.edit("Invalid argument.")
        return

    try:
        await context.edit("Generating translation . . .")
        result = translator.translate(clear_emojis(message), dest=lang)
    except ValueError:
        await context.edit("Language not found, please correct the error in the config file.")
        return

    source_lang = LANGUAGES[f'{result.src.lower()}']
    trans_lang = LANGUAGES[f'{result.dest.lower()}']
    result = f"**Translated** from {source_lang.title()}:\n{result.text}"

    if len(result) > 4096:
        await context.edit("Output exceeded limit, attaching file.")
        await attach_log(result, context.chat_id, "translation.txt", context.id)
        return
    await context.edit(result)
    if len(result) <= 4096:
        await log(f"Translated `{message}` from {source_lang} to {trans_lang}.")
    else:
        await log(f"Translated message from {source_lang} to {trans_lang}.")
Ejemplo n.º 4
0
async def translate(context):
    """ PagerMaid universal translator. """
    translator = Translator()
    reply = await context.get_reply_message()
    message = context.arguments
    lang = config['application_language']
    if message:
        pass
    elif reply:
        message = reply.text
    else:
        await context.edit("出错了呜呜呜 ~ 无效的参数。")
        return

    try:
        await context.edit("正在生成翻译中 . . .")
        result = translator.translate(clear_emojis(message), dest=lang)
    except ValueError:
        await context.edit("出错了呜呜呜 ~ 找不到目标语言,请更正配置文件中的错误。")
        return

    source_lang = LANGUAGES[f'{result.src.lower()}']
    trans_lang = LANGUAGES[f'{result.dest.lower()}']
    result = f"**文本翻译** 源语言 {source_lang.title()}:\n{result.text}"

    if len(result) > 4096:
        await context.edit("输出超出 TG 限制,正在尝试上传文件。")
        await attach_log(result, context.chat_id, "translation.txt", context.id)
        return
    await context.edit(result)
    if len(result) <= 4096:
        await log(f"把 `{message}` 从 {source_lang} 翻译到了 {trans_lang}")
    else:
        await log(f"把一条消息从 {source_lang} 翻译到了 {trans_lang}.")
Ejemplo n.º 5
0
async def wiki(context):
    translator = Translator()
    lang = config['application_language']
    await context.edit("获取中 . . .")
    try:
        message = await obtain_message(context)
    except ValueError:
        await context.edit("出错了呜呜呜 ~ 无效的参数。")
        return
    try:
        wiki_json = json.loads(
            requests.get(
                "https://zh.wikipedia.org/w/api.php?action=query&list=search&format=json&formatversion=2&srsearch="
                + message).content.decode("utf-8"))
    except:
        await context.edit("出错了呜呜呜 ~ 无法访问到维基百科。")
        return
    if not len(wiki_json['query']['search']) == 0:
        wiki_title = wiki_json['query']['search'][0]['title']
        wiki_content = wiki_json['query']['search'][0]['snippet'].replace(
            '<span class=\"searchmatch\">', '**').replace('</span>', '**')
        wiki_time = wiki_json['query']['search'][0]['timestamp'].replace(
            'T', ' ').replace('Z', ' ')
        try:
            await context.edit("正在生成翻译中 . . .")
            wiki_content = translator.translate(clear_emojis(wiki_content),
                                                dest=lang)
            message = '词条: [' + wiki_title + '](https://zh.wikipedia.org/zh-cn/' + wiki_title + ')\n\n' + wiki_content.text + '...\n\n此词条最后修订于 ' + wiki_time
        except ValueError:
            await context.edit("出错了呜呜呜 ~ 找不到目标语言,请更正配置文件中的错误。")
            return
        await context.edit(message)
    else:
        await context.edit("没有匹配到相关词条")
Ejemplo n.º 6
0
async def tx_t(context):
    """ PagerMaid universal translator. """
    reply = await context.get_reply_message()
    message = context.arguments
    lang = 'zh'
    if message:
        pass
    elif reply:
        message = reply.text
    else:
        await context.edit("出错了呜呜呜 ~ 无效的参数。")
        return

    try:
        await context.edit("正在生成翻译中 . . .")
        tx_json = json.loads(
            requests.get("https://xtaolink.cn/git/m/t.php?lang=" + lang +
                         '&text=' +
                         clear_emojis(message)).content.decode("utf-8"))
        if not tx_json['msg'] == 'ok':
            context.edit("出错了呜呜呜 ~ 翻译出错")
            return True
        else:
            result = '文本翻译:\n' + tx_json['data']['target_text']
    except ValueError:
        await context.edit("出错了呜呜呜 ~ 找不到目标语言,请更正配置文件中的错误。")
        return

    if len(result) > 4096:
        await context.edit("输出超出 TG 限制,正在尝试上传文件。")
        await attach_log(result, context.chat_id, "translation.txt",
                         context.id)
        return
    await context.edit(result)
Ejemplo n.º 7
0
async def tx_t(context):
    """ PagerMaid universal translator. """
    reply = await context.get_reply_message()
    message = context.arguments
    lang = 'zh'
    USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:65.0) Gecko/20100101 Firefox/65.0"
    headers = {"user-agent": USER_AGENT}
    api_lang = [
        'zh', 'en', 'jp', 'kr', 'fr', 'es', 'it', 'de', 'tr', 'ru', 'pt', 'vi',
        'id', 'ms', 'th'
    ]
    if reply:
        message = reply.text
        if context.parameter:
            if re.search(r'[a-z]{2}', context.parameter[0]):
                if context.parameter[0] in api_lang:
                    lang = context.parameter[0]
                else:
                    await context.edit("指定语言未支持,使用默认语言")
        else:
            await context.edit("未指定语言,使用默认语言")
    elif context.parameter:
        message = context.parameter[0]
        try:
            if re.search(r'[a-z]{2}', context.parameter[1]):
                if context.parameter[1] in api_lang:
                    lang = context.parameter[1]
                else:
                    await context.edit("指定语言未支持,使用默认语言")
        except IndexError:
            await context.edit("未指定语言,使用默认语言")
    else:
        await context.edit("出错了呜呜呜 ~ 无效的参数。")
        return
    try:
        await context.edit("正在生成翻译中 . . .")
        tx_json = json.loads(
            requests.get("https://xtaolink.cn/git/m/t.php?lang=" + lang +
                         '&text=' + clear_emojis(message),
                         headers=headers).content.decode("utf-8"))
        if not tx_json['msg'] == 'ok':
            context.edit("出错了呜呜呜 ~ 翻译出错")
            return True
        else:
            result = '文本翻译:\n' + tx_json['data']['target_text']
    except ValueError:
        await context.edit("出错了呜呜呜 ~ 找不到目标语言,请更正配置文件中的错误。")
        return

    if len(result) > 4096:
        await context.edit("输出超出 TG 限制,正在尝试上传文件。")
        await attach_log(result, context.chat_id, "translation.txt",
                         context.id)
        return
    await context.edit(result)
Ejemplo n.º 8
0
async def translate(context):
    """ PagerMaid universal translator. """
    reply = await context.get_reply_message()
    message = context.arguments
    ap_lang = config['application_language']
    if message:
        pass
    elif reply:
        message = reply.text
    else:
        await context.edit(lang('arg_error'))
        return
    source_text = clear_emojis(message)
    try:
        if not silent:
            await context.edit(lang('translate_processing'))
        try:
            from translators.apis import TranslatorError
            from translators import google
        except ModuleNotFoundError:
            await context.edit(lang('translate_ImportError'))
            return
        try:
            result = google(source_text,
                            to_language=ap_lang.replace("zh-cn", "zh-CN"))
        except TranslatorError:
            return await context.edit(lang('translate_ValueError'))
    except ValueError:
        return await context.edit(lang('translate_ValueError'))
    if not result:
        return await context.edit(lang('google_connection_error'))
    result = f"**{lang('translate_hits')}**\n" \
             f"{source_text} -> {result}"

    if len(result) > 4096:
        await context.edit(lang('translate_tg_limit_uploading_file'))
        await attach_log(result, context.chat_id, "translation.txt",
                         context.id)
        return
    await context.edit(result)
    if len(result) <= 4096:
        await log(f"{lang('translate_get')}: `{source_text}` \n"
                  f"{lang('translate_to')} {ap_lang}")
    else:
        await log(f"{lang('translate_get')} {lang('translate_to')} {ap_lang}.")
Ejemplo n.º 9
0
async def wiki(context):
    lang = config['application_language'].replace('zh-cn', 'zh')
    await context.edit("获取中 . . .")
    try:
        message = await obtain_message(context)
    except ValueError:
        await context.edit("出错了呜呜呜 ~ 无效的参数。")
        return
    try:
        wiki_json = json.loads(
            requests.get(
                "https://zh.wikipedia.org/w/api.php?action=query&list=search&format=json"
                "&formatversion=2&srsearch=" +
                message).content.decode("utf-8"))
    except:
        await context.edit("出错了呜呜呜 ~ 无法访问到维基百科。")
        return
    if not len(wiki_json['query']['search']) == 0:
        wiki_title = wiki_json['query']['search'][0]['title']
        wiki_content = wiki_json['query']['search'][0]['snippet'].replace(
            '<span class=\"searchmatch\">', '**').replace('</span>', '**')
        wiki_time = wiki_json['query']['search'][0]['timestamp'].replace(
            'T', ' ').replace('Z', ' ')
        try:
            await context.edit("正在生成翻译中 . . .")
            USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:65.0) Gecko/20100101 Firefox/65.0"
            headers = {"user-agent": USER_AGENT}
            wiki_content = json.loads(
                requests.get("https://xtaolink.cn/git/m/t.php?lang=" + lang +
                             '&text=' + clear_emojis(wiki_content),
                             headers=headers).content.decode(
                                 "utf-8"))['data']['target_text']
            message = '词条: [' + wiki_title + '](https://zh.wikipedia.org/zh-cn/' + wiki_title + ')\n\n' + \
                      wiki_content + '...\n\n此词条最后修订于 ' + wiki_time
        except ValueError:
            await context.edit("出错了呜呜呜 ~ 找不到目标语言,请更正配置文件中的错误。")
            return
        await context.edit(message)
    else:
        await context.edit("没有匹配到相关词条")