
10.04.2025, 17:31
|
|
Новичок
Регистрация: 10.04.2025
Сообщений: 7
С нами:
577499
Репутация:
8
|
|
Теперь можно получить последнюю активность пользователя
member_object.py:
Код:
def
__init__
(
self
,
API
:
'ArizonaAPI'
,
id
:
int
,
username
:
str
,
user_title
:
str
,
avatar
:
str
,
roles
:
list
,
messages_count
:
int
,
reactions_count
:
int
,
trophies_count
:
int
,
activity
:
str
)
-
>
None
:
self
.
API
=
API
self
.
id
=
id
"""**ID пользователя**"""
self
.
username
=
username
"""**Имя пользователя**"""
self
.
user_title
=
user_title
"""**Звание пользователя**"""
self
.
avatar
=
avatar
"""**Ссылка на аватарку пользователя**"""
self
.
roles
=
roles
"""Роль пользователя на форуме ('покраска')"""
self
.
activity
=
activity
"""**Активность пользователя на форуме**"""
self
.
messages_count
=
messages_count
"""**Количество сообщений в счетчике**"""
self
.
reactions_count
=
reactions_count
"""**Количество реакций в счетчике**"""
self
.
trophies_count
=
trophies_count
"""**Количество баллов в счетчике**"""
self
.
url
=
f"{MAIN_URL}/members/{self.id}/"
"""Ссылка на объект"""
api.py:
Код:
def
get_member
(
self
,
user_id
:
int
)
-
>
Member
:
"""Найти пользователя по ID (возвращает либо Member, либо None (если профиль закрыт / не существует))"""
request
=
self
.
session
.
get
(
f"{MAIN_URL}/members/{user_id}?_xfResponseType=json&_xfToken={self.token}"
)
.
json
(
)
if
request
[
'status'
]
==
'error'
:
return
None
content
=
unescape
(
request
[
'html'
]
[
'content'
]
)
content
=
BeautifulSoup
(
content
,
'lxml'
)
username
=
unescape
(
request
[
'html'
]
[
'title'
]
)
activity
=
content
.
find
(
'dd'
,
{
'dir'
:
'auto'
}
)
.
get_text
(
strip
=
False
)
.
strip
(
'\n'
)
roles
=
[
]
for
i
in
content
.
find
(
'div'
,
{
'class'
:
'memberHeader-banners'
}
)
.
children
:
if
i
.
text
!=
'\n'
:
roles
.
append
(
i
.
text
)
try
:
user_title
=
content
.
find
(
'span'
,
{
'class'
:
'userTitle'
}
)
.
text
except
AttributeError
:
user_title
=
None
try
:
avatar
=
MAIN_URL
+
content
.
find
(
'a'
,
{
'class'
:
'avatar avatar--l'
}
)
[
'href'
]
except
TypeError
:
avatar
=
None
messages_count
=
int
(
content
.
find
(
'a'
,
{
'href'
:
f'/search/member?user_id={user_id}'
}
)
.
text
.
strip
(
)
.
replace
(
','
,
''
)
)
reactions_count
=
int
(
content
.
find
(
'dl'
,
{
'class'
:
'pairs pairs--rows pairs--rows--centered'
}
)
.
find
(
'dd'
)
.
text
.
strip
(
)
.
replace
(
','
,
''
)
)
trophies_count
=
int
(
content
.
find
(
'a'
,
{
'href'
:
f'/members/{user_id}/trophies'
}
)
.
text
.
strip
(
)
.
replace
(
','
,
''
)
)
return
Member
(
self
,
user_id
,
username
,
user_title
,
avatar
,
roles
,
messages_count
,
reactions_count
,
trophies_count
,
activity
)
|
|
|