В файле mongodb.py создаем функцию save_picture_name() для сохранения названий картинок в базу данных и вывода в чат Telegram бота результатов голосования.
В том случае если название картинки отсутствует, сохраняем его и возвращаем 0 результаты (like 0 и dislike 0).
Импортируем созданный модуль в файл handlers.py и допишем функцию send_meme() для вывода результатов голосования на экран.
После того как пользователь получил картинку в чате Telegram бота, в базе данных создалась коллекция photography с названием файла и нулевыми результатами голосования.
Картинка отправленная пользователю в чат, загружаются на сервер telegram. Для дальнейшего взаимодействия с картинкой, необходимо получить и сохранить в базу данных file_id.
В файле mongodb.py создадим функцию которая будет принимать и сохранять в базу данных file_id картинки.
Созданную функцию save_file_id() импортируем в файл handlers.py.
Следующим шагом создадим сам счетчик подсчета голосов с сохранением в базу данных.
Импортируем функцию save_like_dislike() в файл handlers.py.
Запустим Telegram бота и проверим результат работы подсчета голосов.
Фиксируем изменения программы в Git репозиторий и по необходимости выкладываем на сайт GitHub. Написанный код в этой статье можно скачать (скопировать) на GitHub.
Предыдущие статьи из серии Python Telegram Bot:
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 бота сообщать о его запуске и здороваться.