コード例 #1
0
 def btn_setstyle(params):
     context.chat_data['style'] = int(params)
     stylename = Lang.get("keyboard.setstyle.random",
                          lang) if int(params) < 0 else Styles.get(
                              int(params)).get_name(lang)
     update.callback_query.message.reply_text(
         Lang.get('command.setstyle.changed', lang, style=stylename))
コード例 #2
0
def achlang(update: Update, context: CallbackContext) -> None:
    keyboard = []

    for lang in Styles.get(context.chat_data.get('style')).get_langs():
        keyboard.append([
            InlineKeyboardButton(Lang.get_lang(lang),
                                 callback_data=f"achlang.{lang}")
        ])

    reply_markup = InlineKeyboardMarkup(keyboard)
    update.message.reply_text(Lang.get('command.achlang.select',
                                       context.chat_data.get('lang')),
                              reply_markup=reply_markup)
コード例 #3
0
def create_achievement(update: Update, context: CallbackContext) -> None:
    lang = context.chat_data.get('lang')

    # Checking name & description
    vals = Achievement.parse_message(update.message.text
                                     or update.message.caption)
    for err in Achievement.check_values(**vals):
        update.message.reply_text(Lang.get(err, lang, **Achievement.LIMITS))
        vals = None
    if not vals:
        return

    # Icon & style
    image = None
    if update.message.photo:
        photos = update.message.photo
        image = photos[1 if len(photos) > 1 else 0].get_file().file_path
    elif context.chat_data.get('image_url'):
        image = context.chat_data.get('image_url')
        context.chat_data['image_url'] = None

    vals['icon'] = Tools.download_image(image
                                        or Tools.search_image(vals['name']))
    vals['style'] = Styles.get(context.chat_data.get('style'))

    # Setting language
    ach_lang = context.chat_data.get('ach_lang', 'ENG')
    if vals['style'].change_lang(ach_lang) != 'ok':
        update.message.reply_text(
            Lang.get('error.achievement.no_lang',
                     lang,
                     lang=ach_lang,
                     style=vals['style'].get_name(lang)))

    ach = Achievement(**vals)
    gen = ach.generate()
    if type(gen) is str:
        update.message.reply_text(Lang.get(gen, lang))
    else:
        update.message.reply_photo(gen)
        # Incrementing stats
        context.bot_data['ach_generated'] = context.bot_data.get(
            'ach_generated', 0) + 1
        context.chat_data['ach_generated'] = context.chat_data.get(
            'ach_generated', 0) + 1