如何从不同的内联查询中获得不同的缓存时间?

2024-10-01 15:44:24 发布

您现在位置:Python中文网/ 问答频道 /正文

刚开始使用python telegram bot库,我使用他们的示例和文档制作了自己的bot,但仍然无法让我的bot做一些应该非常简单的事情,即为不同的内联查询提供不同的缓存时间。这是涉及的代码:

    def inline_opt(update, context):
        results = [
        InlineQueryResultArticle(
            id=uuid4(),
            title = "QUERY1",
            input_message_content = InputTextMessageContent(
                "blah blah")),

        InlineQueryResultArticle(
            id=uuid4(),
            title = "QUERY2",
            input_message_content = InputTextMessageContent(
                "Blah blah "))
        ]

    update.inline_query.answer(results, cache_time=0)

它工作正常,只是我希望第一个查询的缓存时间为0秒,另一个查询的缓存时间为x秒。抱歉,如果这是一个愚蠢的问题,但无法获得有关文档或电报组的答案


Tags: 文档idmessageinputtitlebot时间inline
1条回答
网友
1楼 · 发布于 2024-10-01 15:44:24

cache_timeinline_query.answer()的一个参数,这意味着您需要过滤收到的查询,以创建具有特定cache_time的定制答案

import time

def inlinequery(update, context):
    query = update.inline_query.query
    if query=="time":
        results = [
            InlineQueryResultArticle(
                id=uuid4(),
                title="time",
                input_message_content=InputTextMessageContent(
                    "time({!s}): {!s}".format(query,time.asctime(time.localtime()))))
            ]
        seconds = 1;
        update.inline_query.answer(results,cache_time=seconds)
    elif query=="hora":
        results = [
            InlineQueryResultArticle(
                id=uuid4(),
                title="hora",
                input_message_content=InputTextMessageContent(
                    "Time({!s}): {!s}".format(query,time.asctime(time.localtime()))))
            ]
        seconds = 60;
        update.inline_query.answer(results,cache_time=seconds)

相关问题 更多 >

    热门问题