Skip to content

Commit 515685e

Browse files
committed
Merge branch 'dev'
2 parents 9decd16 + d39b533 commit 515685e

File tree

5 files changed

+23
-2
lines changed

5 files changed

+23
-2
lines changed

docs/changelog.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77
3.x.x
88
-----
99

10+
3.2.1
11+
^^^^^
12+
- :attr:`scapi.User.membership_avatar_badge`, :attr:`scapi.User.membership_label` を追加
13+
- メンバーシップ追加によるHTMLパースが失敗する問題を修正
14+
1015
3.2.0
1116
^^^^^
1217
- :attr:`scapi.User.get_activities` を追加

scapi/sites/activity.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,12 @@ def _create_from_html(cls,data:bs4.Tag,client_or_session:"HTTPClient|Session",us
570570
user = User(_user_tag.text.strip(),client_or_session,True)
571571
activity.actor = user
572572
_activity_action:Tag = _user_tag.next_sibling
573+
while True:
574+
if isinstance(_activity_action,bs4.element.NavigableString) and str(_activity_action).strip():
575+
break
576+
_activity_action:Tag = _activity_action.next_sibling
577+
if _activity_action is None:
578+
return activity
573579
activity_action = str(_activity_action).strip()
574580
_target1:Tag|None = None if _activity_action is None else _activity_action.next_sibling
575581
_text:Tag|None = None if _target1 is None else _target1.next_sibling

scapi/sites/user.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ class User(_BaseSiteAPI[str]):
7474
7575
educator_can_unban (MAYBE_UNKNOWN[bool]):
7676
is_banned (MAYBE_UNKNOWN[bool]):
77+
78+
membership_avatar_badge (MAYBE_UNKNOWN[bool|None]): メンバーシップバッチを表示するか
79+
membership_label (MAYBE_UNKNOWN[int|None]): メンバーシップのラベル?
7780
"""
7881
def __repr__(self) -> str:
7982
return f"<User username:{self.username} id:{self.id} session:{self.session}>"
@@ -108,6 +111,9 @@ def __init__(self,username:str,client_or_session:"HTTPClient|Session|None"=None,
108111
self.status:MAYBE_UNKNOWN[str] = UNKNOWN
109112
self.country:MAYBE_UNKNOWN[str] = UNKNOWN
110113
self.scratchteam:MAYBE_UNKNOWN[bool] = UNKNOWN
114+
115+
self.membership_avatar_badge:MAYBE_UNKNOWN[bool|None] = UNKNOWN
116+
self.membership_label:MAYBE_UNKNOWN[int|None] = UNKNOWN
111117

112118
#teacher only
113119
self.educator_can_unban:MAYBE_UNKNOWN[bool] = UNKNOWN
@@ -138,7 +144,9 @@ def _update_from_data(self, data:UserPayload):
138144
profile_id=_profile.get("id"),
139145
status=_profile.get("status"),
140146
bio=_profile.get("bio"),
141-
country=_profile.get("country")
147+
country=_profile.get("country"),
148+
membership_avatar_badge=_profile.get("membership_avatar_badge",None),
149+
membership_label=_profile.get("membership_label",None),
142150
)
143151

144152
def _update_from_old_data(self, data:OldUserPayload):

scapi/utils/common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from .client import HTTPClient
1818
from ..sites.session import Session
1919

20-
__version__ = "3.2.0"
20+
__version__ = "3.2.1"
2121

2222
_KT = TypeVar("_KT")
2323
_VT = TypeVar("_VT")

scapi/utils/types.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ class UserProfilePayload(TypedDict,total=False):
103103
status:str
104104
bio:str
105105
country:str
106+
membership_avatar_badge:bool
107+
membership_label:bool
106108

107109
class UserPayload(TypedDict,total=False):
108110
id:int

0 commit comments

Comments
 (0)