Задать вопрос
INDMops
@INDMops
Парень с небольшой историей...

Проблема в перемених?

Хотел сделать обводку изображение(аватарки). Цвет должен меняться соответственно статусу пользователя. Онлайн - зеленый, офлайн - серый и т. д. Я сделал такую проверку:
if user.status == "online":
                color = str("#43b581")
            elif user.status == "offline" or "invisible":
                color = str("#747f8d")
            elif user.status == "idle":
                color = str("#faa51b")
            elif user.status == "dnd" or "do_not_disturb":
                color = str("#f04848")
            print(color)
            background.ellipse((42, 42), width=206, height=206, outline=f"{color}", stroke_width=10)

но почему-то не работает, но я себе в консоль вывожу переменную, где храню цвет, то все отлично. Если кто-то видет здесь буду рад услышать от вас замечание. Библиотека Easy-Pilow
Польный ко команды:
@commands.command()
    async def rank(self,ctx, user: discord.Member = None):
        with open('users.json','r')as f:
            users = json.load(f)

        if user is None:
            if not str(ctx.author.id) in users:
                users[str(ctx.author.id)] = {}
                users[str(ctx.author.id)]['experience'] = 0
                users[str(ctx.author.id)]['level'] = 1
                users[str(ctx.author.id)]['LastMessage'] = await self.to_integer(datetime.now())

            user = ctx.author
            lvl = int(users[str(ctx.author.id)]['level'])
            procent = int((users[str(user.id)]['experience']/int(5 * (lvl ** 2) + (50 * lvl) + 100))*100)
            print(procent)
            user_data = {  # Most likely coming from database or calculation
                "name": f"{user.name}",  # The user's name
                "xp": f"{int(users[str(user.id)]['experience'])}",
                "next_level_xp": f"{int(5 * (lvl ** 2) + (50 * lvl) + 100)}",
                "level": f"{lvl}",
                "percentage": procent,
                "rank": 10,
            }
            background = easy_pil.Editor(easy_pil.Canvas((932, 282), "#23272a"))
            profile_image = easy_pil.utils.load_image(str(ctx.author.avatar_url))
            profile = easy_pil.Editor(profile_image).resize((190, 190)).circle_image()


            poppins = easy_pil.Font.montserrat(size=30)

            background.rectangle((20, 20), 894, 242, "#2a2e35")
            background.paste(profile, (50, 50))
            if user.status == "online":
                color = str("#43b581")
            elif user.status == "offline" or "invisible":
                color = str("#747f8d")
            elif user.status == "idle":
                color = str("#faa51b")
            elif user.status == "dnd" or "do_not_disturb":
                color = str("#f04848")
            print(color)
            background.ellipse((42, 42), width=206, height=206, outline=f"{color}", stroke_width=10)
            background.rectangle((260, 180), width=630, height=40, fill="#484b4e", radius=20)
            print(user.status)
            background.bar(
                (260, 180),
                max_width=630,
                height=40,
                percentage = user_data["percentage"],
                fill="#00fa81",
                radius=20,
            )
            background.text((270, 120), f"{user.name}#{user.discriminator}", font=poppins, color="#00fa81")
            background.text(
                (870, 125),
                f"{user_data['xp']} / {user_data['next_level_xp']}",
                font=poppins,
                color="#00fa81",
                align="right",
            )

            rank_level_texts = [
                easy_pil.Text("Ранг ", color="#00fa81", font=poppins),
                easy_pil.Text(f"{user_data['rank']}", color="#1EAAFF", font=poppins),
                easy_pil.Text("   Рівень ", color="#00fa81", font=poppins),
                easy_pil.Text(f"{user_data['level']}", color="#1EAAFF", font=poppins),
            ]

            background.multicolor_text((850, 30), texts=rank_level_texts, align="right")


            background.save("card.png")
            await ctx.send(file = discord.File(fp = "card.png"))
  • Вопрос задан
  • 146 просмотров
Подписаться 2 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
BorLaze
@BorLaze
Java developer
Не знаток питона, но разве в нем такая конструкция поддерживается?
elif user.status == "offline" or "invisible":

может, все-таки должно быть
elif user.status == "offline" or user.status == "invisible":
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы