私はインラインボットでキャップテキストを書くことができる簡単なスクリプトを書いています。ログの記録方法選択したインライン結果の記事 - Python Telegram Bot
def inline_caps(bot, update): nick=update.inline_query.from_user.username query = update.inline_query.query try: if not query: return results = list() results.append(InlineQueryResultArticle(id=query.upper(),title="Formatta in maiuscolo", input_message_content=InputTextMessageContent(query.upper()))) bot.answerInlineQuery(update.inline_query.id, results) log.a((nick)+" ha formattato un testo") except Exception as err: log.e(err)
私は友人によって作られたロガーですべてのログを、あなたはそれhereを見つけることができます。 問題は、ユーザーが大文字小文字を選択せずに "@name_bot t"だけを書き込んでも、本当にすべてを記録することです。選択した結果だけをログに記録するにはどうすればよいですか?
あなたがそれらを必要とする場合は、ここで私の輸入は、次のとおりです。
from telegram.ext import Updater, Filters, CommandHandler, MessageHandler, InlineQueryHandler, ChosenInlineResultHandler from telegram import Chat, ParseMode, InlineQueryResultArticle, InputTextMessageContent import os, math, time, re, random from time import strftime from pprint import pprint import Logger as log from uuid import uuid4
そして、ここでは私のディスパッチャです:
dp = updater.dispatcher
# Comandi vari:
dp.add_handler(CommandHandler("start", start))
dp.add_handler(CommandHandler("help", help))
dp.add_handler(CommandHandler("id", id))
dp.add_handler(CommandHandler("groupid", groupid))
# Quindi: dp.add_handler(CommandHandler("comando", funzione))
dp.add_handler(CommandHandler("info", info))
# Filtri vari
dp.add_handler(MessageHandler(Filters.text, reader))
dp.add_handler(MessageHandler(Filters.audio, ext_audio))
dp.add_handler(MessageHandler(Filters.photo, ext_photo))
# Funzionalità inline
inline_caps_handler = InlineQueryHandler(inline_caps)
result_handler = ChosenInlineResultHandler(say_hello)
dp.add_handler(inline_caps_handler)
dp.add_handler(result_handler)
私は何をすべき?
しかし、選択したインライン結果のみをログに記録します。私はすでにインラインフィードバックを有効にしており、 'inline_query'をすべて無視することで何を意味するのか分かりません。 –
'inline_query'をログに記録せず、' update.chosen_inline_result.query'のログのみ – Sean
どうすればいいですか?すべての 'update.inline_query.query'に" selected_ "と書かなければなりませんか? –