@Soneiko

Не работает Pillow?

async def check_lvl(self, x,y,z,c):
        cursor.execute("SELECT lvl FROM users WHERE user_id=? AND guild_id=?", [(y), (x)])
        user_lvl = cursor.fetchone()
        lvl = 15**(1.5+(user_lvl[0]*0.2))
        cursor.execute("SELECT exp FROM users WHERE user_id=? AND guild_id=?", [(y), (x)])
        user_xp = cursor.fetchone()
        avatarstr = str(z)[:-10]
        if user_xp[0] >= lvl:
            newLvl = user_lvl[0] + 1
            print(newLvl)
            cursor.execute("UPDATE users SET lvl = ? WHERE user_id=? AND guild_id=?", [(newLvl), (y), (x)])
            conn.commit()
            lvl_crop = Image.open("croplvl.png")
            response = requests.get(avatarstr)
            response = Image.open(io.BytesIO(response.content))
            response = response.convert("RGBA")
            response = response.resize((140, 140), Image.ANTIALIAS)

            lvl_crop.paste(response, (30,10))
            idraw = ImageDraw.Draw(lvl_crop)
            text = "Level up!"
            text1 = f"Lvl {newLvl}"
            font1 = ImageFont.truetype("6500.ttf", size=20)
            font2 = ImageFont.truetype("6500.ttf", size=24)
            idraw.text((60, 155), text, font=font1)
            idraw.text((70, 180), text1, font=font2)

            lvl_crop.save('lvl_send.jpg')
            log = self.atos.get_channel(703670901052276777)
            await log.send(f" | {c} leveled up!")
            await log.send(file = discord.File(fp = "lvl_send.jpg"))

@commands.Cog.listener()
    async def on_message(self, message):
        if message.author.id == self.atos.user.id:
            return
        else:
            if message.content.startswith("!"):
                pass
            else:
                avatar = message.author.avatar_url
                user_name = message.author.name
                user_id = str(message.author.id)
                guild_id = str(message.guild.id)
                if not self.check_account(guild_id, user_id):
                    self.create_account(guild_id, user_id)
                else:
                    self.add_xp(guild_id, user_id)
                    await self.check_lvl(guild_id, user_id, avatar, user_name)

Когда я пишу сообщение то при повышении уровня отправляет сообщение нормально. Но если повышение у других то ошибка.
Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\User\Desktop\ATOS\Cogs\level.py", line 103, in on_message
    await self.check_lvl(guild_id, user_id, avatar, user_name)
  File "c:\Users\User\Desktop\ATOS\Cogs\level.py", line 69, in check_lvl
    response = Image.open(io.BytesIO(response.content))
  File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\PIL\Image.py", line 2895, in open
    raise UnidentifiedImageError(
PIL.UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x073B8708>
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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