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'}