Привет.
В настоящее время есть бот, который сидит на одном из каналов в который отправка сообщений осуществляется через коммандную строку:
import telebot,sys
BOT_TOKEN='00000000000'
MESSAGE=sys.argv[1]
MESSAGE = MESSAGE.replace('/n','\n')
tb = telebot.TeleBot(BOT_TOKEN)
tb.send_message("chatid" ,"SUBJECT" + '\n' + MESSAGE)
Имея в наличии готовый пример бота задумался, возможно ли осуществить эту же реализацию поддержки коммандной строки, но чтобы бот ожидал нажатие кнопки в каждом из отправленных через коммандную строку сообщении, запустив polling лишь один раз (не перезапуская бота):
import telebot
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton
TELEGRAM_TOKEN = '<TOKEN>'
bot = telebot.TeleBot(TELEGRAM_TOKEN)
def gen_markup():
markup = InlineKeyboardMarkup()
markup.row_width = 2
markup.add(InlineKeyboardButton("Yes", callback_data="cb_yes"),
InlineKeyboardButton("No", callback_data="cb_no"))
return markup
@bot.callback_query_handler(func=lambda call: True)
def callback_query(call):
if call.data == "cb_yes":
bot.answer_callback_query(call.id, "Answer is Yes")
elif call.data == "cb_no":
bot.answer_callback_query(call.id, "Answer is No")
@bot.message_handler(func=lambda message: True)
def message_handler(message):
bot.send_message(message.chat.id, "Yes/no?", reply_markup=gen_markup())
bot.polling(none_stop=True)