Загрузка...

Почему так может быть?

Тема в разделе Python создана пользователем darkcrow 1 июн 2025. 135 просмотров

Загрузка...
  1. darkcrow
    darkcrow Автор темы 1 июн 2025 Заблокирован(а) 1095 30 апр 2025
    Python
    @router.callback_query(F.data.in_(["back", "check"]), ChatJoinFilter())
    async def znak1_output(callback: types.CallbackQuery):
    try:
    await callback.message.delete()
    except:
    pass

    user_info = await DataBase.get_user_info(callback.from_user.id)
    lang = await DataBase.get_lang(callback.from_user.id)

    if lang == "ru":
    photo = types.FSInputFile("hello.jpg")
    else:
    photo = types.FSInputFile("hel.jpg")

    if user_info[0] != "verifed":
    await callback.message.answer_photo(photo, caption=languages[lang]["znakomstvo1"],
    parse_mode="HTML",
    reply_markup=await ClientKeyboard.znak1_keyboard(lang))
    else:
    await callback.message.answer_photo(photo, caption=languages[lang]["welcome_message"],
    parse_mode="HTML",
    reply_markup=await ClientKeyboard.menu_keyboard(lang))

    await callback.answer()
    [IMG]
     
  2. wokeup
    wokeup 1 июн 2025 Отработка mail:pass - https://lolz.live/threads/8152283/ 1201 27 июн 2024
    чат гпт в посощь
     
    1. Посмотреть предыдущие комментарии (2)
    2. wokeup
      Kalipso, да ну нах этот скилл его все равно скоро заменят
    3. gcc_machine
      wokeup, да не, попробуй поработай, раз 20 за 1 промт нужно все переделать, проще самому написать
  3. Арбузик
    Проблемы в коде могут быть связаны с несколькими аспектами. Давайте проверим возможные причины:

    Обработка исключений:

    У вас есть try/except для удаления сообщения, но исключение перехватывается без логирования. Добавьте логирование:
    python

    Copy
    Download
    except Exception as e:
    logging.error(f"Failed to delete message: {e}")
    Проверка данных из БД:

    Убедитесь, что DataBase.get_user_info() и DataBase.get_lang() возвращают ожидаемые значения.
    Проверьте, что user_info[0] действительно содержит статус верификации.

    Пути к файлам:

    Убедитесь, что файлы "hello.jpg" и "hel.jpg" существуют в корневой директории проекта.

    Проверка languages[lang]:

    Убедитесь, что словарь languages содержит ключи для всех возможных языков.
    Проверьте, что ключи "znakomstvo1" и "welcome_message" существуют для каждого языка.

    Клавиатуры:

    Проверьте, что методы ClientKeyboard.znak1_keyboard() и ClientKeyboard.menu_keyboard() возвращают валидные клавиатуры.

    Фильтр ChatJoinFilter():

    Убедитесь, что фильтр работает корректно и не блокирует нужные запросы.

    Обработка callback:

    В конце есть await callback.answer(), но лучше указать параметры:
    python

    Copy
    Download
    await callback.answer() # или например await callback.answer(text="Done")

    Рекомендации по улучшению:

    Добавьте логирование для отладки.
    Проверьте все возможные пути выполнения (особенно условия if/else).
    Убедитесь, что все внешние ресурсы (файлы, данные БД) доступны.

    Если проблема сохраняется, добавьте больше контекста: какие именно ошибки возникают, как ведет себя бот, и какие данные возвращаются из БД.
     
    1. Арбузик
      Арбузик, через deepseek помоги себе просто)
  4. KusuriYakuzen
    KusuriYakuzen 1 июн 2025 от 200.000₽ играя в CS — https://lolz.live/threads/8621957/ 4566 27 июн 2020
    хм, похоже на опечатку в слове "verifed", должно быть "verified"
     
  5. виталяфура
    await убери перед keyboard

     
    1. виталяфура
      darkcrow, так подожди, у тебя в 99 линии просто в кейборд аргумент не обозначен в скобках
  6. am1rqr
    Покажи ClientKeyboard.menu_keyboard
     
    1. Посмотреть предыдущие комментарии (2)
    2. am1rqr
      darkcrow, у тебя тут 2 параметра, а передаешь 1
    3. виталяфура
      darkcrow,
      Python
      @router.callback_query(F.data.in_(["back", "check"]), ChatJoinFilter())
      async def znak1_output(callback: types.CallbackQuery):
      try:
      await callback.message.delete()
      except:
      pass

      user_info = await DataBase.get_user_info(callback.from_user.id)
      lang = await DataBase.get_lang(callback.from_user.id)

      if lang == "ru":
      photo = types.FSInputFile("hello.jpg")
      else:
      photo = types.FSInputFile("hel.jpg")

      if user_info[0] != "verifed":
      await callback.message.answer_photo(
      photo,
      caption=languages[lang]["znakomstvo1"],
      parse_mode="HTML",
      reply_markup=await ClientKeyboard.znak1_keyboard(lang)
      )
      else:
      await callback.message.answer_photo(
      photo,
      caption=languages[lang]["welcome_message"],
      parse_mode="HTML",
      reply_markup=await ClientKeyboard.menu_keyboard(user_info, lang)
      )

      await callback.answer()
  7. begemot448
    ClientKeyboard - класс
    ClientKeyboard.menu_keyboard(lang)) - здесь ты обращаешься к его методу
    Проверь что menu_keyboard это классметод (@classmethod) потому что у тебя код требует чтобы ты сначала создал экземпляр класса а потом уже вызывал метод menu_keyboard а твоем случае этого ты не делаешь,поэтому lang у тебя считывается как self
     
Top