我编写了一个简单的脚本,允许人们使用我的内联机器人编写大写文本。
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)
我该怎么办?
答案 0 :(得分:0)
您可以启用inline feedback,并忽略所有inline_query
,在chosen_inline_result中获取查询。
答案 1 :(得分:0)
如果您只想记录所选结果,当然您必须在result_handler = ChosenInlineResultHandler(say_hello)
的回调函数中执行此操作,这是您的say_hello
函数。
您应该可以使用update.chosen_inline_result
进行记录。