diff --git a/mipac/core/models/drive.py b/mipac/core/models/drive.py index 7430c0e1..86d50003 100644 --- a/mipac/core/models/drive.py +++ b/mipac/core/models/drive.py @@ -3,7 +3,7 @@ from datetime import datetime from typing import Any, Optional -from mipac.types.drive import IDriveFile, FolderPayload, PropertiesPayload +from mipac.types.drive import FolderPayload, IDriveFile, PropertiesPayload from mipac.types.user import UserPayload __all__ = ('RawProperties', 'RawFolder', 'RawFile') diff --git a/mipac/http.py b/mipac/http.py index 74a98211..d999adba 100644 --- a/mipac/http.py +++ b/mipac/http.py @@ -26,6 +26,7 @@ def __repr__(self): MISSING: Any = _MissingSentinel() R = TypeVar('R') + async def json_or_text(response: aiohttp.ClientResponse): text = await response.text(encoding='utf-8') try: diff --git a/mipac/manager/ad.py b/mipac/manager/ad.py index 17e43119..5ed71a1c 100644 --- a/mipac/manager/ad.py +++ b/mipac/manager/ad.py @@ -36,5 +36,8 @@ async def create( 'image_url': image_url, } return await self.__session.request( - Route('POST', '/api/admin/ad/create'), json=data, auth=True, lower=True + Route('POST', '/api/admin/ad/create'), + json=data, + auth=True, + lower=True, ) diff --git a/mipac/models/__init__.py b/mipac/models/__init__.py index 80439e91..207d0175 100644 --- a/mipac/models/__init__.py +++ b/mipac/models/__init__.py @@ -2,9 +2,9 @@ from .drive import File, Folder, Properties from .emoji import Emoji from .instance import Instance, InstanceMeta -from .note import Follow, Header, Note, NoteReaction, Poll, Renote -from .user import Followee, FollowRequest, User +from .note import Follow, Header, Note, NoteReaction, Poll from .notification import Reaction +from .user import Followee, FollowRequest, User __all__ = ( 'Chat', @@ -22,6 +22,5 @@ 'Reaction', 'Follow', 'Header', - 'Renote', 'NoteReaction', ) diff --git a/mipac/models/lite/user.py b/mipac/models/lite/user.py index 4ed4aa05..9e912fc8 100644 --- a/mipac/models/lite/user.py +++ b/mipac/models/lite/user.py @@ -1,4 +1,5 @@ from typing import Literal + from mipac.models.lite.instance import InstanceLite from mipac.types.emoji import ICustomEmojiLite from mipac.types.user import IUserLite @@ -7,27 +8,29 @@ class UserLite: def __init__(self, user: IUserLite) -> None: self.__user: IUserLite = user - + @property def id(self) -> str: return self.__user['id'] - + @property def username(self) -> str: return self.__user['username'] - + @property def host(self) -> str | None: return self.__user['host'] - + @property def name(self) -> str: return self.__user['name'] - + @property - def online_status(self) -> Literal['online', 'active', 'offline', 'unknown']: + def online_status( + self, + ) -> Literal['online', 'active', 'offline', 'unknown']: return self.__user['online_status'] - + @property def avatar_url(self) -> str: return self.__user['avatar_url'] @@ -37,9 +40,9 @@ def avatar_blurhash(self) -> str: return self.__user['avatar_blurhash'] @property - def emojis(self) -> list[ICustomEmojiLite]: # TODO: ちゃんとモデルにする + def emojis(self) -> list[ICustomEmojiLite]: # TODO: ちゃんとモデルにする return self.__user['emojis'] - + @property def instance(self) -> InstanceLite: - return InstanceLite(self.__user['instance']) \ No newline at end of file + return InstanceLite(self.__user['instance']) diff --git a/mipac/models/note.py b/mipac/models/note.py index a9b7244b..6aaa9f0c 100644 --- a/mipac/models/note.py +++ b/mipac/models/note.py @@ -1,12 +1,13 @@ from __future__ import annotations from datetime import datetime -from typing import TYPE_CHECKING, Literal, Optional, Union +from typing import TYPE_CHECKING, Literal, Optional + from typing_extensions import Self from mipac.core.models.poll import RawPoll -from mipac.models.lite.user import UserLite from mipac.exception import NotExistRequiredData +from mipac.models.lite.user import UserLite if TYPE_CHECKING: from mipac.actions.note import NoteActions @@ -21,7 +22,6 @@ 'Poll', 'Follow', 'Header', - 'Renote', 'NoteReaction', ) diff --git a/mipac/models/notification.py b/mipac/models/notification.py index 23b3f30e..00846ff0 100644 --- a/mipac/models/notification.py +++ b/mipac/models/notification.py @@ -1,6 +1,8 @@ from __future__ import annotations + from datetime import datetime from typing import TYPE_CHECKING + from mipac.manager.client import ClientActions from mipac.manager.reaction import ReactionManager from mipac.models.lite.user import UserLite diff --git a/mipac/types/__init__.py b/mipac/types/__init__.py index 1d0c1600..7b0fb826 100644 --- a/mipac/types/__init__.py +++ b/mipac/types/__init__.py @@ -5,7 +5,7 @@ DriveRemoteChartPayload, ) from mipac.types.chat import ChatPayload -from mipac.types.drive import IDriveFile, FolderPayload, PropertiesPayload +from mipac.types.drive import FolderPayload, IDriveFile, PropertiesPayload from mipac.types.emoji import EmojiPayload from mipac.types.instance import ( FeaturesPayload, @@ -17,10 +17,10 @@ from mipac.types.note import ( GeoPayload, INote, + INoteReaction, INoteRequired, - IRenote, IPoll, - INoteReaction + IRenote, ) from mipac.types.page import ( AttachedFilePayload, diff --git a/mipac/types/emoji.py b/mipac/types/emoji.py index d6fee1d5..70833a5e 100644 --- a/mipac/types/emoji.py +++ b/mipac/types/emoji.py @@ -7,6 +7,7 @@ class ICustomEmojiLite(TypedDict): name: str url: str + class EmojiPayload(TypedDict): id: Optional[str] aliases: Optional[list[str]] diff --git a/mipac/types/endpoints.py b/mipac/types/endpoints.py index a4b13a36..b88f242c 100644 --- a/mipac/types/endpoints.py +++ b/mipac/types/endpoints.py @@ -1,6 +1,5 @@ from typing import Literal - ENDPOINTS = Literal[ '/api/admin/abuse-user-reports', '/api/admin/accounts/create', @@ -311,4 +310,3 @@ '/api/users/stats', '/api/version', ] - diff --git a/mipac/types/instance.py b/mipac/types/instance.py index 997c0f56..4017c52d 100644 --- a/mipac/types/instance.py +++ b/mipac/types/instance.py @@ -11,9 +11,10 @@ 'InstancePayload', 'OptionalInstance', 'OptionalMeta', - 'IInstanceLite' + 'IInstanceLite', ) + class IInstanceLite(TypedDict): name: str software_name: str @@ -22,6 +23,7 @@ class IInstanceLite(TypedDict): favicon_url: str theme_color: str + class FeaturesPayload: registration: bool local_time_line: bool diff --git a/mipac/types/note.py b/mipac/types/note.py index 75b9f21e..960abd71 100644 --- a/mipac/types/note.py +++ b/mipac/types/note.py @@ -102,10 +102,9 @@ class INote(INoteRequired, total=False): is_hidden: bool poll: IPoll + class INoteReaction(TypedDict): id: str created_at: str user: IUserLite type: str - - diff --git a/mipac/types/notification.py b/mipac/types/notification.py index 40d15d54..b883d668 100644 --- a/mipac/types/notification.py +++ b/mipac/types/notification.py @@ -5,8 +5,8 @@ """ from __future__ import annotations -from typing import TYPE_CHECKING, TypedDict +from typing import TYPE_CHECKING, TypedDict if TYPE_CHECKING: from mipac.types.note import INote @@ -25,4 +25,3 @@ class IReactionNf(Notification): user: IUserLite user_id: str note: INote - diff --git a/mipac/types/user.py b/mipac/types/user.py index d316740c..798169fe 100644 --- a/mipac/types/user.py +++ b/mipac/types/user.py @@ -1,5 +1,4 @@ from __future__ import annotations -import string from typing import Any, List, Literal, Optional, TypedDict