PytelegramBotApi нужна помощь с просмотренными новостями

Делаю телеграм бота с помощью библиотеки pytelegrambotapi. Сделал Кнопки и Приветствие, а также кнопку Новости.

Можно ли так сделать, чтобы пользователь, прочитавший все новости, при очередном нажатии увидел бы сообщение "Для вас новостей нет!"

Как это сделать?


Ответы (1 шт):

Автор решения: Violet
print(bot.get_me())

news_count = 4  # количество новостей
press_news_count = {}  # словарь с id и количеством нажатий на кнопку Новости


@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(True)
    markup.row('Новости')
    bot.send_message(message.chat.id, 'Привет', reply_markup=markup)


@bot.message_handler(content_types=['text'])
def func(message):
    if message.text == 'Новости':
        if message.chat.id in press_news_count:  # если id есть в словаре
            if press_news_count[message.chat.id]['press'] < news_count:  # кол-во нажатий у id меньше кол-ва новостей
                press_news_count.update({message.chat.id: {'press': press_news_count[message.chat.id]['press'] + 1}})  # +1 к нажатию
                bot.send_message(message.chat.id, 'Вы нажали на кнопку новости')
            else:
                bot.send_message(message.chat.id, 'новостей нет')
        else:
            press_news_count.update({message.chat.id: {'press': 1}})  # если id нет в словаре, запись первого нажатия
            bot.send_message(message.chat.id, 'Вы нажали на кнопку новости')
        print(press_news_count)


bot.polling(none_stop=True, interval=0)

>>>
{id: {'press': 1}}
{id: {'press': 2}}
{id: {'press': 3}}
{id: {'press': 4}}
{id: {'press': 4}}

введите сюда описание изображения

→ Ссылка