|
|
|
@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
|
|
from typing import TYPE_CHECKING, AsyncGenerator, override
|
|
|
|
|
|
|
|
|
|
from mipac.abstract.action import AbstractAction
|
|
|
|
|
from mipac.errors.base import APIError, ParameterError
|
|
|
|
|
from mipac.errors.base import APIError
|
|
|
|
|
from mipac.file import MiFile
|
|
|
|
|
from mipac.http import HTTPClient, Route
|
|
|
|
|
from mipac.models.clip import Clip
|
|
|
|
@ -58,9 +58,7 @@ def create_note_body(
|
|
|
|
|
"channelId": channel_id,
|
|
|
|
|
}
|
|
|
|
|
if not check_multi_arg(text, files, renote_id, poll):
|
|
|
|
|
raise ParameterError(
|
|
|
|
|
"To send a note, one of content, file_ids, renote_id or poll is required"
|
|
|
|
|
)
|
|
|
|
|
raise ValueError("To send a note, one of content, file_ids, renote_id or poll is required")
|
|
|
|
|
|
|
|
|
|
if poll and type(Poll):
|
|
|
|
|
poll_data = remove_dict_empty(
|
|
|
|
@ -82,7 +80,7 @@ def create_note_body(
|
|
|
|
|
elif isinstance(file, str):
|
|
|
|
|
file_ids.append(file)
|
|
|
|
|
else:
|
|
|
|
|
raise ParameterError("files must be MiFile or str or File")
|
|
|
|
|
raise ValueError("files must be MiFile or str or File")
|
|
|
|
|
body["fileIds"] = file_ids
|
|
|
|
|
|
|
|
|
|
return remove_dict_empty(body)
|
|
|
|
@ -109,12 +107,12 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id: str | None = None,
|
|
|
|
|
) -> list[Note]:
|
|
|
|
|
if limit > 100:
|
|
|
|
|
raise ParameterError("limit は100以下である必要があります")
|
|
|
|
|
raise ValueError("limit は100以下である必要があります")
|
|
|
|
|
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
data = {
|
|
|
|
|
"noteId": note_id,
|
|
|
|
@ -191,7 +189,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
data = {
|
|
|
|
|
"noteId": note_id,
|
|
|
|
@ -228,7 +226,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
data = {"noteId": note_id}
|
|
|
|
|
res: list[IClip] = await self._session.request(
|
|
|
|
@ -260,7 +258,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
data = {"noteId": note_id, "limit": limit, "offset": offset}
|
|
|
|
|
res: list[INote] = await self._session.request(
|
|
|
|
@ -287,7 +285,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
data = {"noteId": note_id}
|
|
|
|
|
res = await self._session.request(Route("POST", "/api/notes/delete"), json=data, auth=True)
|
|
|
|
@ -305,7 +303,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
return await self._client.note.reaction.action.get_reactions(
|
|
|
|
|
type=type, note_id=note_id, limit=limit, since_id=since_id, until_id=until_id
|
|
|
|
@ -323,7 +321,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
return await self._client.note.reaction.action.fetch_reactions(
|
|
|
|
|
note_id=note_id, type=type, limit=limit, since_id=since_id, until_id=until_id
|
|
|
|
@ -360,7 +358,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
data = {
|
|
|
|
|
"noteId": note_id,
|
|
|
|
@ -446,7 +444,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
body = {"noteId": note_id, "sinceId": since_id, "untilId": until_id, "limit": limit}
|
|
|
|
|
|
|
|
|
@ -481,7 +479,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
data = {"noteId": note_id}
|
|
|
|
|
res: INoteState = await self._session.request(
|
|
|
|
@ -531,7 +529,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
data = {"noteId": note_id, "clipId": clip_id}
|
|
|
|
|
return bool(
|
|
|
|
@ -557,7 +555,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = self._note_id or note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
body = create_note_body(renote_id=note_id)
|
|
|
|
|
res: ICreatedNote = await self._session.request(
|
|
|
|
@ -660,7 +658,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
reply_id = reply_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if reply_id is None:
|
|
|
|
|
raise ParameterError("reply_id is required")
|
|
|
|
|
raise ValueError("reply_id is required")
|
|
|
|
|
|
|
|
|
|
body = create_note_body(
|
|
|
|
|
text=text,
|
|
|
|
@ -732,7 +730,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
body = create_note_body(
|
|
|
|
|
text=content,
|
|
|
|
@ -782,7 +780,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
data = {"noteId": note_id, "targetLang": target_lang}
|
|
|
|
|
res: INoteTranslateResult = await self._session.request(
|
|
|
|
@ -808,7 +806,7 @@ class ClientNoteActions(AbstractAction):
|
|
|
|
|
note_id = note_id or self._note_id
|
|
|
|
|
|
|
|
|
|
if note_id is None:
|
|
|
|
|
raise ParameterError("note_id is required")
|
|
|
|
|
raise ValueError("note_id is required")
|
|
|
|
|
|
|
|
|
|
body = {"noteId": note_id}
|
|
|
|
|
res: bool = await self._session.request(
|
|
|
|
@ -1337,7 +1335,7 @@ class NoteActions(ClientNoteActions):
|
|
|
|
|
get_all: bool = False,
|
|
|
|
|
) -> AsyncGenerator[Note, None]:
|
|
|
|
|
if limit > 100:
|
|
|
|
|
raise ParameterError("limit は100以下である必要があります")
|
|
|
|
|
raise ValueError("limit は100以下である必要があります")
|
|
|
|
|
|
|
|
|
|
if get_all:
|
|
|
|
|
limit = 100
|
|
|
|
|