Skip to content

Commit 5d81c3d

Browse files
committed
feat: ユーザーモデルを作り直した #96
1 parent d472837 commit 5d81c3d

File tree

21 files changed

+570
-372
lines changed

21 files changed

+570
-372
lines changed

mipac/actions/follow.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
from mipac.abstract.action import AbstractAction
66
from mipac.http import Route
77
from mipac.models.follow import FollowRequest
8-
from mipac.models.user import LiteUser
8+
from mipac.models.user import PartialUser
99
from mipac.types.follow import IFollowRequest
1010

1111
if TYPE_CHECKING:
1212
from mipac.http import HTTPClient
1313
from mipac.manager.client import ClientManager
14-
from mipac.types.user import ILiteUser
14+
from mipac.types.user import IPartialUser
1515

1616

1717
class FollowActions(AbstractAction):
@@ -20,7 +20,7 @@ def __init__(self, user_id: str | None = None, *, session: HTTPClient, client: C
2020
self.__session = session
2121
self.__client = client
2222

23-
async def add(self, user_id: str | None = None) -> LiteUser:
23+
async def add(self, user_id: str | None = None) -> PartialUser:
2424
"""
2525
Follow a user
2626
@@ -33,21 +33,21 @@ async def add(self, user_id: str | None = None) -> LiteUser:
3333
user_id = user_id or self.__user_id
3434

3535
data = {"userId": user_id}
36-
res: ILiteUser = await self.__session.request(
36+
res: IPartialUser = await self.__session.request(
3737
Route("POST", "/api/following/create"),
3838
json=data,
3939
auth=True,
4040
lower=True,
4141
)
42-
return LiteUser(res, client=self.__client)
42+
return PartialUser(res, client=self.__client)
4343

44-
async def remove(self, user_id: str | None = None) -> LiteUser:
44+
async def remove(self, user_id: str | None = None) -> PartialUser:
4545
"""
4646
Unfollow a user
4747
4848
Returns
4949
-------
50-
LiteUser
50+
PartialUser
5151
The user that you unfollowed
5252
"""
5353

@@ -57,25 +57,25 @@ async def remove(self, user_id: str | None = None) -> LiteUser:
5757
res = await self.__session.request(
5858
Route("POST", "/api/following/delete"), json=data, auth=True
5959
)
60-
return LiteUser(res, client=self.__client)
60+
return PartialUser(res, client=self.__client)
6161

62-
async def invalidate(self, user_id: str | None = None) -> LiteUser:
62+
async def invalidate(self, user_id: str | None = None) -> PartialUser:
6363
"""
6464
Make the user unfollows you
6565
6666
Returns
6767
-------
68-
LiteUser
68+
PartialUser
6969
The user that followed you
7070
"""
7171

7272
user_id = user_id or self.__user_id
7373

7474
data = {"userId": user_id}
75-
res: ILiteUser = await self.__session.request(
75+
res: IPartialUser = await self.__session.request(
7676
Route("POST", "/api/following/invalidate"), json=data, auth=True
7777
)
78-
return LiteUser(res, client=self.__client)
78+
return PartialUser(res, client=self.__client)
7979

8080

8181
class FollowRequestActions(AbstractAction):
@@ -153,7 +153,7 @@ async def reject(self, user_id: str | None = None) -> bool:
153153
)
154154
)
155155

156-
async def cancel(self, user_id: str | None = None) -> LiteUser:
156+
async def cancel(self, user_id: str | None = None) -> PartialUser:
157157
"""
158158
Cancel a follow request
159159
@@ -164,17 +164,17 @@ async def cancel(self, user_id: str | None = None) -> LiteUser:
164164
165165
Returns
166166
-------
167-
LiteUser
167+
PartialUser
168168
The user that you canceled to follow
169169
"""
170170

171171
user_id = user_id or self.__user_id
172172

173173
data = {"userId": user_id}
174-
res: ILiteUser = await self.__session.request(
174+
res: IPartialUser = await self.__session.request(
175175
Route("POST", "/api/following/requests/cancel"),
176176
json=data,
177177
auth=True,
178178
lower=True,
179179
)
180-
return LiteUser(res, client=self.__client)
180+
return PartialUser(res, client=self.__client)

mipac/actions/user.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
from mipac.errors.base import NotExistRequiredData, ParameterError
66
from mipac.http import HTTPClient, Route
77
from mipac.models.clip import Clip
8+
from mipac.models.lite.user import PartialUser
89
from mipac.models.note import Note
9-
from mipac.models.user import Achievement, LiteUser, UserDetailed
10+
from mipac.models.user import Achievement, UserDetailed
1011
from mipac.types.clip import IClip
1112
from mipac.types.note import INote
12-
from mipac.types.user import ILiteUser, IUserDetailed
13+
from mipac.types.user import IPartialUser, IUserDetailed
1314
from mipac.utils.cache import cache
1415
from mipac.utils.format import remove_dict_empty
1516
from mipac.utils.pagination import Pagination, pagination_iterator
@@ -20,18 +21,18 @@
2021

2122
__all__ = ["UserActions"]
2223

23-
T = TypeVar("T", bound=Union[LiteUser, UserDetailed])
24+
T = TypeVar("T", bound=Union[PartialUser, UserDetailed])
2425

2526

2627
class UserActions:
2728
def __init__(
2829
self,
2930
session: HTTPClient,
3031
client: ClientManager,
31-
user: Optional[LiteUser] = None,
32+
user: Optional[PartialUser] = None,
3233
):
3334
self.__session: HTTPClient = session
34-
self.__user: Optional[LiteUser] = user
35+
self.__user: Optional[PartialUser] = user
3536
self.__client: ClientManager = client
3637

3738
async def get_me(self) -> UserDetailed:
@@ -173,7 +174,7 @@ async def get_notes(
173174
if get_all is False or pagination.is_final:
174175
break
175176

176-
def get_mention(self, user: Optional[LiteUser] = None) -> str:
177+
def get_mention(self, user: Optional[PartialUser] = None) -> str:
177178
"""
178179
Get mention name of user.
179180
@@ -204,7 +205,7 @@ async def search(
204205
detail: Literal[False] = ...,
205206
*,
206207
get_all: bool = False,
207-
) -> AsyncGenerator[LiteUser, None]:
208+
) -> AsyncGenerator[PartialUser, None]:
208209
...
209210

210211
@overload
@@ -229,7 +230,7 @@ async def search(
229230
detail: Literal[True, False] = True,
230231
*,
231232
get_all: bool = False,
232-
) -> AsyncGenerator[UserDetailed | LiteUser, None]:
233+
) -> AsyncGenerator[UserDetailed | PartialUser, None]:
233234
"""
234235
Search users by keyword.
235236
@@ -250,7 +251,7 @@ async def search(
250251
251252
Returns
252253
-------
253-
AsyncGenerator[Union[LiteUser, UserDetailed], None]
254+
AsyncGenerator[Union[PartialUser, UserDetailed], None]
254255
A AsyncGenerator of users.
255256
"""
256257

@@ -275,15 +276,15 @@ async def search(
275276
pagination, get_all, model=UserDetailed, client=self.__client
276277
)
277278
else:
278-
pagination = Pagination[ILiteUser](
279+
pagination = Pagination[IPartialUser](
279280
self.__session,
280281
Route("POST", "/api/users/search"),
281282
json=body,
282283
pagination_type="count",
283284
)
284285

285286
iterator = pagination_iterator(
286-
pagination, get_all=get_all, model=LiteUser, client=self.__client
287+
pagination, get_all=get_all, model=PartialUser, client=self.__client
287288
)
288289
async for user in iterator:
289290
yield user
@@ -294,7 +295,7 @@ async def search_by_username_and_host(
294295
host: str,
295296
limit: int = 100,
296297
detail: bool = True,
297-
) -> list[UserDetailed | LiteUser]:
298+
) -> list[UserDetailed | PartialUser]:
298299
"""
299300
Search users by username and host.
300301
@@ -311,7 +312,7 @@ async def search_by_username_and_host(
311312
312313
Returns
313314
-------
314-
list[UserDetailed | LiteUser]
315+
list[UserDetailed | PartialUser]
315316
A list of users.
316317
"""
317318

@@ -330,7 +331,7 @@ async def search_by_username_and_host(
330331
return [
331332
UserDetailed(user, client=self.__client)
332333
if detail
333-
else LiteUser(user, client=self.__client)
334+
else PartialUser(user, client=self.__client)
334335
for user in res
335336
]
336337

mipac/manager/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
if TYPE_CHECKING:
2121
from mipac.config import Config
22-
from mipac.models.lite.user import LiteUser
22+
from mipac.models.lite.user import PartialUser
2323
from mipac.models.user import UserDetailed
2424

2525

@@ -54,7 +54,7 @@ def __init__(self, session: HTTPClient, config: Config):
5454
def action(self) -> ClientActions:
5555
return ClientActions(session=self.__session, client=self)
5656

57-
def _create_user_instance(self, user: LiteUser) -> UserManager:
57+
def _create_user_instance(self, user: PartialUser) -> UserManager:
5858
return UserManager(session=self.__session, client=self, user=user)
5959

6060
def _create_note_instance(self, note_id: str) -> NoteManager:

mipac/manager/user.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,20 @@
1111

1212
if TYPE_CHECKING:
1313
from mipac.manager.client import ClientManager
14-
from mipac.models.lite.user import LiteUser
14+
from mipac.models.lite.user import PartialUser
1515

1616

1717
__all__ = ("UserManager",)
1818

1919

2020
class UserManager(AbstractManager):
2121
def __init__(
22-
self, user: LiteUser | None = None, *, session: HTTPClient, client: ClientManager
22+
self, user: PartialUser | None = None, *, session: HTTPClient, client: ClientManager
2323
):
2424
user_id: str | None = user.id if user else None
2525
self.__session: HTTPClient = session
2626
self.__client: ClientManager = client
27-
self.__user: LiteUser | None = user
27+
self.__user: PartialUser | None = user
2828
self.follow: FollowManager = FollowManager(user_id=user_id, session=session, client=client)
2929
self.mute: MuteManager = MuteManager(user_id=user_id, session=session, client=client)
3030
self.block = BlockingManager(user_id=user_id, session=session, client=client)

mipac/models/clip.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import TYPE_CHECKING
44

55
from mipac.abstract.model import AbstractModel
6-
from mipac.models.lite.user import LiteUser
6+
from mipac.models.lite.user import PartialUser
77
from mipac.types.clip import IClip
88

99
if TYPE_CHECKING:
@@ -37,9 +37,9 @@ def user_id(self) -> str:
3737
return self.__clip["user_id"]
3838

3939
@property
40-
def user(self) -> LiteUser:
40+
def user(self) -> PartialUser:
4141
"""The user who created the clip"""
42-
return LiteUser(self.__clip["user"], client=self.__client)
42+
return PartialUser(self.__clip["user"], client=self.__client)
4343

4444
@property
4545
def name(self) -> str:

mipac/models/follow.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import TYPE_CHECKING
44

55
from mipac.abstract.model import AbstractModel
6-
from mipac.models.lite.user import LiteUser
6+
from mipac.models.lite.user import PartialUser
77
from mipac.types.follow import IFollowRequest
88

99
if TYPE_CHECKING:
@@ -21,12 +21,12 @@ def id(self) -> str:
2121
return self.__follow_request["id"]
2222

2323
@property
24-
def follower(self) -> LiteUser:
25-
return LiteUser(self.__follow_request["follower"], client=self.__client)
24+
def follower(self) -> PartialUser:
25+
return PartialUser(self.__follow_request["follower"], client=self.__client)
2626

2727
@property
28-
def followee(self) -> LiteUser:
29-
return LiteUser(self.__follow_request["followee"], client=self.__client)
28+
def followee(self) -> PartialUser:
29+
return PartialUser(self.__follow_request["followee"], client=self.__client)
3030

3131
@property
3232
def api(self) -> FollowRequestManager:

mipac/models/invite.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from typing import TYPE_CHECKING, Generic, TypeVar
55

66
from mipac.abstract.model import AbstractModel
7-
from mipac.models.lite.user import LiteUser
7+
from mipac.models.lite.user import PartialUser
88
from mipac.types.invite import IInviteCode, IPartialInviteCode
99
from mipac.utils.format import str_to_datetime
1010

@@ -58,9 +58,9 @@ def created_by(self) -> datetime | None:
5858
)
5959

6060
@property
61-
def used_by(self) -> LiteUser | None:
61+
def used_by(self) -> PartialUser | None:
6262
return (
63-
LiteUser(self._raw_invite_code["used_by"], client=self._client)
63+
PartialUser(self._raw_invite_code["used_by"], client=self._client)
6464
if self._raw_invite_code["used_by"]
6565
else None
6666
)

mipac/models/lite/note.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from mipac.abstract.model import AbstractModel
77
from mipac.models.drive import File
8-
from mipac.models.lite.user import LiteUser
8+
from mipac.models.lite.user import PartialUser
99
from mipac.types.note import INoteVisibility, IPartialNote
1010
from mipac.types.reaction import IReactionAcceptance
1111
from mipac.utils.format import str_to_datetime
@@ -101,8 +101,8 @@ def content(self) -> str | None:
101101
return self._note.get("text")
102102

103103
@property
104-
def author(self) -> LiteUser:
105-
return LiteUser(self._note["user"], client=self._client)
104+
def author(self) -> PartialUser:
105+
return PartialUser(self._note["user"], client=self._client)
106106

107107
@property
108108
def user_id(self) -> str:

0 commit comments

Comments
 (0)