コード例 #1
0
ファイル: generic.py プロジェクト: rubmu/OppiWordsBot
async def set_user_language_message(message: types.Message):
    user_id = message.from_user.id
    logger.info(str(user_id) + ' /settings received')
    session = await get_session(user_id)
    if session is None:
        return
    if message.text.lower() not in LANGS:
        await message.reply(
            "Sorry, can't recognize the language name. Make sure it's correct and is *in English* "
            "(e.g. instead of _Deutsch_ use _German_).")
        return
    session.status = None
    session.language_code = message.text.lower()
    await bot.send_message(
        user_id,
        "The language is set to {}".format(str(session.language_code).title()))
    session.language_code = message.text.lower()
    mysql_connect.updateone(
        'UPDATE users SET language_code = %s WHERE user_id = %s',
        (session.language_code, user_id))
    session.def_sources = list()
    k = await source_keyb(list())
    is_supported = session.language_code in bot_utils.CODES.keys()
    s = 'but will give definitions in your language'
    if not is_supported:
        s = 'and unfortunately does not support ' + session.language_code.title(
        )
    await bot.send_message(
        user_id,
        "Select what dictionaries you would like to use\n"
        "*Wiktionary* _(default)_ supports many languages, but definitions are only in English\n"
        "*Yandex Dictionary* is less accurate, {}\n"
        "*Google Translate* may be inaccurate for single words, but is often the only way to get a translation for a phrase"
        .format(s),
        reply_markup=k)
コード例 #2
0
ファイル: setlanguage.py プロジェクト: tezer/OppiWordsBot
async def setlanguage_message(message):
    session, isValid = await authorize(message.from_user.id)
    if not isValid:
        return
    language_name = str(message.text)
    if language_name == "":
        await message.reply("OK, let's skip it for now")
    elif language_name.startswith("/setlanguage") and " " in language_name:
        language_name = language_name.split(" ", 1)[1]
    if " " in language_name:
        await message.reply(
            "Language name is wrong. It must be one word only (e.g. _English_)"
        )
    else:
        if language_name[0] == '/':
            logger.warning(
                str(message.from_user.id) + " set language " + language_name)
            language_name = language_name[1:]
        if language_name.lower() not in LANGS:
            await message.reply(
                "Sorry, can't recognize the language name. Make sure it's correct and is *in English* "
                "(e.g. instead of _Deutsch_ use _German_).")
            return
        mysql_connect.updateone(
            'UPDATE users SET learning_language = %s WHERE user_id = %s',
            (language_name.lower(), message.from_user.id))
        await message.reply("Language is set to *" + language_name.title() +
                            "*")
        await bot.send_message(message.from_user.id,
                               "Now you can /addwords to /learn")
        logger.info(str(message.chat.id) + " learns " + language_name)
        session.set_active_language(language_name.lower())
        logger.debug(session.active_lang())
        session.status = None