Для того чтобы избежать накрутки голосов, создадим список для сохранения в базу данных Telegram бота пользователей который уже проголосовали под картинкой.
Откроем файл mongodb.py и внесем изменения в функции save_picture_name() и save_like_dislike().
- В функции save_picture_name() создадим пустой список, для сохранения проголосовавших пользователей.
- В функции save_like_dislike() добавим проверку, голосовал пользователь ранее или нет.
После внесения изменений пользователь сможет голосовать только один раз.
Фиксируем изменения программы в Git репозиторий и по необходимости выкладываем на сайт GitHub. Написанный код в этой статье можно скачать (скопировать) на GitHub.
Предыдущие статьи из серии Python Telegram Bot:
18. Напишем счетчик для голосования с сохранением результатов в БД.
17. На примере голосования, добавим Telegram боту inline клавиатуру.
16. Напомним пользователю о ранее заполненной анкете в чате Telegram.
15. Добавим возможность сохранения результатов анкеты в базу данных.
14. Обучим Telegram бота работать с базой данных MongoDB.
13. Добавим памяти Telegram боту, настраиваем базу данных MongoDB.
12. Добавим Telegram боту emoji.
11. Учим Telegram бота отправлять картинки пользователю.
10. Создадим журнал событий работы Telegram бота.
9. Выстраиваем диалог между пользователем и Telegram ботом.
8. Рефакторинг кода Telegram бота.
7. Telegram бот запрашивает местоположение и контакты пользователя.
6. Добавим клавиатуру и научим Telegram бота рассказывать анекдоты.
5. Выкладываем код Telegram бота на GitHub.
4. Учим Telegram бота обрабатывать текстовые сообщения.
3. Научим Telegram бота сообщать о его запуске и здороваться.