1

나는 인라인 봇으로 대문자를 쓸 수있는 간단한 스크립트를 작성했다.로그인 방법 선택된 인라인 결과 기사 - 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"만 쓰는 경우에도 실제로 모든 것을 기록한다는 것입니다. 선택한 결과 만 기록하려면 어떻게합니까?

필요할 경우, 여기 내 수입은 다음과 같습니다

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) 

어떻게해야합니까 :

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

그리고 여기 내 디스패처입니까?

답변

0

inline feedback을 사용하고 모두 inline_query을 무시하고 chosen_inline_result의 쿼리를 가져올 수 있습니다.

+0

하지만 선택한 인라인 결과 만 기록하고 싶습니다. 나는 인라인 피드백을 이미 활성화했으며 모든'inline_query'를 무시함으로써 무엇을 의미하는지 이해하지 못합니다. –

+0

'inline_query'를 기록하지 말고'update.chosen_inline_result.query' 만 기록하십시오 – Sean

+0

어떻게 할 수 있습니까? 모든 update.inline_query.query에 "selected_"라고 써야합니까? –

0

선택한 결과 만 기록하려면 당연히 say_hello 함수 인 result_handler = ChosenInlineResultHandler(say_hello)의 콜백 함수에서 수행해야합니다.

update.chosen_inline_result으로 로그 할 수 있어야합니다.