Проблемы с отображением статуса человека в Discord.py
Я хотел получить и отобразить игровой или просто статус человека, использовав
activitys = member.activities[0].name
но если у человека нету никакой активности, ни игровой ни пользовательского статуса то отследить параметр activitys = member.activities[0].name не получается даже через else
Пример:
statuses = ["ONLINE", "IDLE", "DND"]
if status == "OFFLINE":
print("DA")
activitys = ("empty")
draw.text((65,635), activitys, font = subfont)
else:
if status in statuses:
activitys_type = str(member.activities[0].type)
activitys_list = ["ActivityType.custom", "ActivityType.playing", "ActivityType.streaming", "ActivityType.listening", "ActivityType.watching", "ActivityType.competing"]
if activitys_type in activitys_list:
print("lol")
activitys = member.activities[0].name
draw.text((65,635), activitys, font = subfont)
Ответы (2 шт):
Автор решения: Кирил
→ Ссылка
Если я правильно понял вопрос, то попробуйте сначала отследить member.activity, если у человека нет активностей, то он вернёт None, а там вы сможете сделать ветку if. Извиняюсь если не правильно вас понял
Автор решения: Влад Новиков
→ Ссылка
Долго мучился, адаптируйте под свой код и себя, удачи! :
activity_name = ctx.message.author.activity.name if ctx.message.author.activity is not None else "Не чего не делает"
if activity_name == "Не чего не делает":
# print('Не во что не играет')
pass
if activity_name != "Не чего не делает":
# print('во что то играет!')
activity_type = ctx.author.activities[0].type
activity_type2 = ctx.message.author.activity # если нету то None
if activity_type2 is not None and activity_type == discord.ActivityType.playing:
idraw.text((40, 170), f'Играет в {activity_name}', font=normaltext)