簡體   English   中英

Python電報機器人:提示輸入另一個

[英]Python telegram-bot: Prompt for another input

我有一個 Python 機器人,它提示用戶從要更改的 ID 列表中進行選擇,這個想法是用戶將選擇 ID,然后提供他們想要更改的 ID。

這是我的代碼:

def build_menu(buttons, n_cols):
    menu = [buttons[i:i + n_cols] for i in range(0, len(buttons), n_cols)]
    return menu

def change_process(bot, update):
    global action
    query = update.callback_query
    NAME = query.data
    if action == 'Change':
        # Prompt user for new value
        # run sql query to update 

def change(bot, update, args):
    global action
    action = 'Change'
    sql = sqlite3.connect('SQL_FILE.db',detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
    cur = sql.cursor()
    button_list = [InlineKeyboardButton(s[0], callback_data=s[0]) for s in cur.execute('SELECT Name FROM ID ORDER BY Name ASC')]
    reply_markup = InlineKeyboardMarkup(build_menu(button_list, n_cols=3))
    update.message.reply_text('ID to change:', reply_markup=reply_markup)

action = None
updater = Updater(token='XXXX:XXXX')
dispatcher = updater.dispatcher

dispatcher.add_handler(CallbackQueryHandler(change_process))

arg_handler = CommandHandler('change', change, pass_args=True)
dispatcher.add_handler(arg_handler)

這是我希望程序運行的方式:

用戶運行/change

Bot 返回可以更改的 ID 列表(使用InlineKeyboardMarkup()build_menu()

用戶選擇其中一個 ID

Bot 提示用戶輸入新值

用戶發送給機器人的下一條消息將是要使用的值

Bot 將使用用戶選擇的 ID 以及新值並運行查詢以在數據庫中更新

Bot 評論說它用“USER VALUE”的新值更新了 ID

我遇到的問題是我可以提示用戶選擇 ID,我可以提示用戶輸入,但我不知道如何在單個函數中同時使用這兩個值。

我相信您需要查看python-telegram-bot庫提供的對話示例

還有一些圖表解釋了向用戶詢問數據的流程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM