Я сделал бота. Он должен принимать фото и отправлять их мне в ответ (пока). С одним фото он прекрасно справляется.
Однако, когда я шлю несколько фото альбомом, он берет 1 из них, при том почему-то в 1-ом случае альбома он взял 2-ую по счету фото, а во 2-ом случае - 1-ую.
Вот часть кода, отвечающая за прием и отправку фото:
import telebot
import json
from Database import Database
class Bot(telebot.Telebot):
@staticmethod
def get_photos_id_list(message):
database = Database('user_database.db')
database.execute(f'SELECT data_storage FROM users WHERE user_id = {message.from_user.id}')
data_storage_str = database.get_result()[0][0]
photos_id_list = json.loads(data_storage_str)[1]
return photos_id_list
def text_command_send_message_action(self, message):
database = Database('user_database.db')
database.execute(f"UPDATE users SET menu = 'MAIN_MENU' WHERE user_id = {message.from_user.id}")
markup = self.make_main_menu_markup(user_id=message.from_user.id, admins_list=self.__admins)
self.send_message(message.from_user.id, 'Работа успешно отправлена', reply_markup=markup)
database.execute('SELECT user_id FROM users WHERE ban_status = 0')
users_id = database.get_result()
for user in users_id:
try:
user = user[0]
self.send_message(user, self.make_description(message=message))
photos_id_list = self.get_photos_id_list(message=message)
for photo_id in photos_id_list:
self.send_photo(user, photo_id)
except:
pass # Предположительно: ошибка отправки, бот заблокирован пользователем
database.execute(f"""UPDATE users SET data_storage = '[[], []]' WHERE user_id = {message.from_user.id}""")
@staticmethod
def add_photo_to_data_storage(message):
photo_id = message.photo[-1].file_id
database = Database('user_database.db')
database.execute(f'SELECT data_storage FROM users WHERE user_id = {message.from_user.id}')
data_storage_str = database.get_result()[0][0]
data_storage = json.loads(data_storage_str)
data_storage[1].append(photo_id)
data_storage_json = json.dumps(data_storage)
database.execute(f"""UPDATE users SET data_storage = '{data_storage_json}' WHERE user_id = {message.from_user.id}""")
def message_get(self, message):
# .....
if message.text is not None: # Добавление текста в рассылку
self.add_text_to_data_storage(message=message)
if message.photo is not None: # Добавление фото в рассылку
self.add_photo_to_data_storage(message=message)
if message.caption is not None: # Добавление описания фото в рассылку
self.add_photos_text_to_data_storage(message=message)
Интернет подходящих решений не выдаёт. Надеюсь на вашу помощь