Форум сайта python.su
0
Всем доброго времени суток!
При попытке отправить боту в телегу сообщение с фото или видео, выдает вот такую ошибку в консоле “Media group must include 2-10 items”.
И не отправляет их на модерацию в чат админов.
В чем может быть причина?
P.S. Вот код:
@dp.message_handler(content_types=[ContentType.PHOTO], state=UserStates.all()[2]) async def advert_photo_input(message: types.Message): print(message) if 'photo' in adverts[message.from_user.id] and len( adverts[message.from_user.id]['video'] + adverts[message.from_user.id]['photo']) < 10: adverts[message.from_user.id]['photo'].append(message.photo[-1].file_id) else: adverts[message.from_user.id]['photo'] = [message.photo[-1].file_id] print(adverts)
Отредактировано FishHook (Ноя. 1, 2021 14:09:52)
Офлайн
124
код вставляйте в теги
[code python]здесь код[/code]
Офлайн
0
xam1816Понял, исправлюсь
код вставляйте в теги
Офлайн
568
я не знаю, что это за бот, но чисто логически, здесь список из одного элемента
adverts[message.from_user.id]['photo'] = [message.photo[-1].file_id]
“Media group must include 2-10 items”
Офлайн
0
Вот полный код.
Кол-во текста, фото или видео никак не влияет, проверял в разных вариантах и количество менял.
@dp.message_handler(state=UserStates.ADVERT_TEXT) async def advert_txt_input(message: types.Message): state = dp.current_state(user=message.from_user.id) await state.set_state(UserStates.all()[2]) await message.answer(texts[7], reply_markup=keyboard_media) adverts[message.from_user.id] = {'text': message.text} print(adverts) @dp.message_handler(content_types=[ContentType.PHOTO], state=UserStates.all()[2]) async def advert_photo_input(message: types.Message): print(message) if 'photo' in adverts[message.from_user.id] and len( adverts[message.from_user.id]['video'] + adverts[message.from_user.id]['photo']) < 10: adverts[message.from_user.id]['photo'].append(message.photo[ [code python]-1].file_id) else: adverts[message.from_user.id]['photo'] = [message.photo[-1].file_id] print(adverts) @dp.message_handler(state=UserStates.all()[2], content_types=[ContentType.VIDEO]) async def advert_video_input(message: types.Message): print(message) if 'video' in adverts[message.from_user.id] and len( adverts[message.from_user.id]['video'] + adverts[message.from_user.id]['photo']) < 10: adverts[message.from_user.id]['video'].append(message.video.file_id) else: adverts[message.from_user.id]['video'] = [message.video.file_id] print(adverts) @dp.message_handler(state=UserStates.all()[2]) async def advert_confirmation(message: types.Message): print(adverts[message.from_user.id]) await message.answer(texts[8]) print(adverts[message.from_user.id].keys) if ('photo' in adverts[message.from_user.id].keys()) or ('video' in adverts[message.from_user.id].keys()): media = types.MediaGroup() for id in adverts[message.from_user.id].get('photo', []): if len(media.media) == 0: media.attach_photo(id, adverts[message.from_user.id]['text']) else: media.attach_photo(id) for id in adverts[message.from_user.id].get('video', []): if len(media.media) == 0: media.attach_video(id, caption=adverts[message.from_user.id]['text']) else: media.attach_video(id) await bot.send_media_group(message.chat.id, media=media) adverts[message.from_user.id]['media'] = media await message.answer('ㅤ', reply_markup=confirmation_keyboard) else: await message.answer(adverts[message.from_user.id]['text'], reply_markup=confirmation_keyboard) state = dp.current_state(user=message.from_user.id) await state.set_state(UserStates.all()[4]) [/code]
Офлайн
857
xammloМожешь сначала начинать всё, а это всё можешь смело выбрасывать. Код уже дошёл до стадии говнокода, в котором ничего понять невозможно. И, как видишь, большие и информативные имена для переменных никак не помогают.
Вот полный код.
Офлайн
0
код писал не я(заказывал), вначале бот вроде работал, но потом перестал отправлять в админку.
исполнитель поправлял код 3 или 4 раза и потом вроде все заработало.
теперь приходится разбираться самому,навыков для написания с нуля нет к сожалению(
поэтому и прошу помощи в поиске ошибки.
Офлайн
124
xammloОпишите что делает этот бот,т.е что отправляет пользователь и что должно приходить к вам в админку.
поэтому и прошу помощи в поиске ошибки.
Офлайн
0
xam1816пользователь отправляет боту тескт+фото+видео по нажатию кнопки “отправить”, а бот в свою очередь отправляет в админку для проверки на нецензуру и.т.д
Отредактировано xammlo (Ноя. 3, 2021 09:48:23)
Офлайн
0
Есть у кого -нибудь мысли что подправить?
Офлайн