Member. Идем по нему
Member есть поле avatar. Оно равнозначно User.avatar
avatar является типом Asset. Проваливаемся в Asset и заодно читаем что если аватарки нет. то возвращается None.
Asset есть key и url
member.avatar.url<int:guild_id> к коду, сами посмотрите. Функция принимает переменную и ничего с ней не делает. Надо сначала получить класс с нужным сервером, а потом уже читать из него информацию. Так что вместо fetch_guilds можно подобрать что нибудь, что ищет только 1 сервер, принимая в параметр его ID. Если такого нет, ну можно оставить как есть, добавив проверку на совпадение ID:@app.route("/dashboard/<int:guild_id>")
def dashboard(guild_id):
guilds = discord.fetch_guilds()
for guild in guilds:
if guild.permissions.administrator and guild.id == guild_id:
return render_template("dashboard.html", guild_name=guild.name, guild_id=guild.id)
else:
return redirect(url_for("dashboard")) params отвечает за отправку URL параметров. Для POST запросов тело как правило либо application/json (параметр json), либо application/x-www-urlencoded (параметр data)result = rq.post("https://api.telegra.ph/createPage",
json={
"access_token": database["access_token"],
"title": "Test",
"content":[
{"tag":"img", "attrs":{"src":"https://telegra.ph/file/b2de01b***6928d6.jpg"}}
]
}) ?, как написано в доке
for event in VkLongPoll(vk_session).listen():
if event.type == VkEventType.MESSAGE_NEW and event.to_me:
if event.attachments:
if event.attachments["attach1_type"] == "doc":
vk.messages.getById(message_ids=event.message_id)['items'][0]['attachments'][0]document = event.attachments["attach1"] + '_' + access_key
response = vk.docs.getById(docs=document) py-cord является форком для discord.py, и использует то же самое название для импорта. Поэтому, если он реально установлен надо его удалить, если не планируете использовать. А так удаляем лишние библиотеки из импорта и переписываем под одну. Потому что сейчас бот работает на discord.py, утилсы и эмбед тянет из disnake.Intents, конкретно intents.message_content = True, но лично я бы не парился и просто сделал бы вместо intents = discord.Intents.default() так: intents = discord.Intents.all()avatar_image тип Assetavatar_obj = memb.display_avatar if memb.display_avatar.is_animated() else memb.default_avatar
avatar_obj = avatar_obj.read()
avatar_image = Image.open(BytesIO(avatar_obj)).resize((90, 90))avatar_obj = memb.display_avatar.replace(size=90, format='jpg').read()
avatar_image = Image.open(BytesIO(avatar_obj)) class telegram.ext.Updater(bot, update_queue) import re
strings = [
'[ex.endermen](profile_url1) got killed by [og.[(Z)]arcus(0.43k/d)](profile_url2) (FN Evolys, 56.83m)',
'[ex.endermen](profile_url1) got killed by [platina](profile_url2) (FN Evolys, 56.83m)'
]
regex = r'^\[(?P<name1>.+?)\]\((?P<name1_url>.+?)\).+?\[(?P<name2>.+)\]\((?P<name2_url>.+?)\)'
string_parser = re.compile(regex)
for string in strings:
print(string_parser.match(string).groupdict()){'name1': 'ex.endermen', 'name1_url': 'profile_url1', 'name2': 'og.[(Z)]arcus(0.43k/d)', 'name2_url': 'profile_url2'}
{'name1': 'ex.endermen', 'name1_url': 'profile_url1', 'name2': 'platina', 'name2_url': 'profile_url2'}