|
|
@ -2,16 +2,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
## [Unreleased]
|
|
|
|
## [Unreleased]
|
|
|
|
|
|
|
|
|
|
|
|
### New Features ✨
|
|
|
|
## [0.5.99] 2023-12-03
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
このリリースは最新の Misskey 向けに最適化された `develop` ブランチの物となります。インスタンスで `v11` や `v12` を利用している場合は更新しないことをおすすめします。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Breaking changes 💔
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### v13 に合わせてメソッドやモデルを整理しました
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
主に削除されたモデルはチャットです。その他にも `admin` 向けのエンドポイントで既に削除されている物を削除しました。
|
|
|
|
|
|
|
|
v13 でのリクエストボディーに合わせて引数の追加なども行っています。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### pypi からダウンロードできる MiPAC は最新の Misskey のみをサポートするようになります。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
詳しくは[こちらの Issue](https://github.com/yupix/MiPAC/issues/94)を御覧ください。
|
|
|
|
|
|
|
|
今まで通りの全てのバージョンをサポートした MiPAC を利用したい場合は以下のコマンドで `shared` ブランチの物をご利用いただけます。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
今後 `v11` や `v12` のブランチを作成しそれぞれの最新のバージョンをサポートする予定です。そのため、`shared` ブランチは保守モードに入り、基本的にはバグの修正のみを提供します。機能追加も行う可能性はありますが、v11 や v12、最新の Misskey のサポートが終わってからになります。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
|
|
pip install git+https://github.com/yupix/Mi.py.git@shared
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### `Lite*` から始まるモデルの名前が `Partial*` に変更されます。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
今まで Lite と Partial が混在していましたが、今回のアップデートを期に `Partial` に統一されます
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### メソッドの変更
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| v0.5.0 | v0.6.0 |
|
|
|
|
|
|
|
|
| -------------------------------- | ------------------------------------ |
|
|
|
|
|
|
|
|
| `ClientNoteActions.get_children` | `ClientNoteActions.get_all_children` |
|
|
|
|
|
|
|
|
| `ClientNoteActions.get_reaction` | `ClientNoteActions.get_reactions` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Drive周りの作り直し
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Driveに関するManagerやActionsを全て作り直しました。詳細に記述してるといつまでも終わらないので、ご迷惑をおかけしますが、確認していただけると幸いです🙏
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### モデルの変更
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
一部のモデルがより良い形で再実装されました。結果的にモデル名が変わっています。以下がその変更後の表になります。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| v0.5.0 | v0.6.0 | 変更理由 |
|
|
|
|
|
|
|
|
| -------- | ----------- | ---------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
| UserRole | PartialRole | Role と共通していた為 User よりも Role の Partial クラスにする方が適切だと考えた為 |
|
|
|
|
|
|
|
|
|PartialNote|Note|分ける必要性が無かったため(実際どこにも使用していなかった)|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 非推奨になったモデル/クラス
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 名前 | 削除されるバージョン | 理由 |
|
|
|
|
|
|
|
|
| -------- | -------------------- | ------------------ |
|
|
|
|
|
|
|
|
| UserRole | 0.7.0 | PartialRole に変更 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Other notable changes 📜
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- `mipac.util` モジュールが削除されました
|
|
|
|
|
|
|
|
- 例外 `CredentialsError` が追加されました
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## [0.5.1] 2023-10-03
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### New Features ✨
|
|
|
|
|
|
|
|
|
|
|
|
#### `MeDetailed` モデルが追加され、自身に関する情報より多く扱えるようになりました
|
|
|
|
#### `MeDetailed` モデルが追加され、自身に関する情報より多く扱えるようになりました
|
|
|
|
|
|
|
|
|
|
|
|
今後はAPIを使用した際に自動でユーザーが自分自身かを判断し、自身であった場合は `UserDetailed` ではなく、 `MeDetailed` を返すようになります。
|
|
|
|
今後は API を使用した際に自動でユーザーが自分自身かを判断し、自身であった場合は `UserDetailed` ではなく、 `MeDetailed` を返すようになります。
|
|
|
|
`MeDetailed` と `UserDetailed` の共有体型の場合は `isinstance` を用いて判断が行えます。
|
|
|
|
`MeDetailed` と `UserDetailed` の共有体型の場合は `isinstance` を用いて判断が行えます。
|
|
|
|
また、`RoleUser` 等のように専用のユーザーモデルがある場合は `MeRole` のようなモデルを作成し、どちらかを返すようになります。
|
|
|
|
また、`RoleUser` 等のように専用のユーザーモデルがある場合は `MeRole` のようなモデルを作成し、どちらかを返すようになります。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
※まだ全てのメソッドに適応されたわけではなく、ごく一部のみの適応となっています。
|
|
|
|
※まだ全てのメソッドに適応されたわけではなく、ごく一部のみの適応となっています。
|
|
|
|
|
|
|
|
|
|
|
|
```py
|
|
|
|
```py
|
|
|
@ -28,20 +86,20 @@ async def main():
|
|
|
|
|
|
|
|
|
|
|
|
#### 以下のエンドポイントがサポートされました
|
|
|
|
#### 以下のエンドポイントがサポートされました
|
|
|
|
|
|
|
|
|
|
|
|
|エンドポント|MiPACでのメソッド|
|
|
|
|
| エンドポント | MiPAC でのメソッド |
|
|
|
|
|---|---|
|
|
|
|
| -------------------------- | ----------------------------------------- |
|
|
|
|
|`/api/admin/invite/create`|`api.admin.invite.action.create_invite`|
|
|
|
|
| `/api/admin/invite/create` | `api.admin.invite.action.create_invite` |
|
|
|
|
|`/api/admin/invite/list`|`api.admin.invite.action.get_invite_list`|
|
|
|
|
| `/api/admin/invite/list` | `api.admin.invite.action.get_invite_list` |
|
|
|
|
|`/api/roles/list`|`api.role.action.get_list`|
|
|
|
|
| `/api/roles/list` | `api.role.action.get_list` |
|
|
|
|
|`/api/roles/show`|`api.role.action.get`|
|
|
|
|
| `/api/roles/show` | `api.role.action.get` |
|
|
|
|
|`/api/roles/users`|`api.role.action.get_users`|
|
|
|
|
| `/api/roles/users` | `api.role.action.get_users` |
|
|
|
|
|`/api/roles/notes`|`api.role.action.get_notes`|
|
|
|
|
| `/api/roles/notes` | `api.role.action.get_notes` |
|
|
|
|
|
|
|
|
|
|
|
|
### Fixed 🛠️
|
|
|
|
### Fixed 🛠️
|
|
|
|
|
|
|
|
|
|
|
|
- `RoleUser` モデルで `LiteUser` を使用していましたが、正しくは `UserDetailed`
|
|
|
|
- `RoleUser` モデルで `LiteUser` を使用していましたが、正しくは `UserDetailed`
|
|
|
|
|
|
|
|
|
|
|
|
### 依存関係の更新📦
|
|
|
|
### 依存関係の更新 📦
|
|
|
|
|
|
|
|
|
|
|
|
- `aiohttp`: `3.8.4` => `3.8.5`
|
|
|
|
- `aiohttp`: `3.8.4` => `3.8.5`
|
|
|
|
|
|
|
|
|
|
|
@ -51,9 +109,9 @@ async def main():
|
|
|
|
|
|
|
|
|
|
|
|
理由としては `axblack` の更新が止まっており、また移行先である `blue` も更新が止まっているからです。今後は 通常の `black` を使用したフォーマット使用するようにお願いします。
|
|
|
|
理由としては `axblack` の更新が止まっており、また移行先である `blue` も更新が止まっているからです。今後は 通常の `black` を使用したフォーマット使用するようにお願いします。
|
|
|
|
|
|
|
|
|
|
|
|
##### Modelには `AbstractModel` を継承してください
|
|
|
|
##### Model には `AbstractModel` を継承してください
|
|
|
|
|
|
|
|
|
|
|
|
`pagination_iterator` 関数が新規に追加され、paginationの処理を楽に使えるようになりました。その際にModel以外のクラスを受け取らないよう識別するのに使用します。
|
|
|
|
`pagination_iterator` 関数が新規に追加され、pagination の処理を楽に使えるようになりました。その際に Model 以外のクラスを受け取らないよう識別するのに使用します。
|
|
|
|
|
|
|
|
|
|
|
|
## [0.5.0] 2023-07-26
|
|
|
|
## [0.5.0] 2023-07-26
|
|
|
|
|
|
|
|
|
|
|
@ -70,10 +128,10 @@ async with Client('server url', 'token') as client:
|
|
|
|
print(emoji)
|
|
|
|
print(emoji)
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 一意のIDを持つモデルで比較演算がサポートされました
|
|
|
|
#### 一意の ID を持つモデルで比較演算がサポートされました
|
|
|
|
|
|
|
|
|
|
|
|
サポートされた演算は `__eq__` と `__ne__` の2つです。一意のIDと判断しにくい物は現状サポートしていません。
|
|
|
|
サポートされた演算は `__eq__` と `__ne__` の 2 つです。一意の ID と判断しにくい物は現状サポートしていません。
|
|
|
|
一意のIDがあるにもかかわらず、サポートされていないモデルがある際はIssueを作成してください。
|
|
|
|
一意の ID があるにもかかわらず、サポートされていないモデルがある際は Issue を作成してください。
|
|
|
|
|
|
|
|
|
|
|
|
```py
|
|
|
|
```py
|
|
|
|
note_one = await api.note.action.get('note one')
|
|
|
|
note_one = await api.note.action.get('note one')
|
|
|
@ -85,7 +143,7 @@ print(note_one == note_three, note_one != note_three)
|
|
|
|
|
|
|
|
|
|
|
|
#### File モデルに `api` プロパティーが追加されました
|
|
|
|
#### File モデルに `api` プロパティーが追加されました
|
|
|
|
|
|
|
|
|
|
|
|
今まではモデルに `api` プロパティーが無かったため、 `api` プロパティーからアクションにアクセスし、対象のメソッドに対してファイルIDなどといった引数を自分で渡す必要がありましたが、今後はモデルから直接実行できます。
|
|
|
|
今まではモデルに `api` プロパティーが無かったため、 `api` プロパティーからアクションにアクセスし、対象のメソッドに対してファイル ID などといった引数を自分で渡す必要がありましたが、今後はモデルから直接実行できます。
|
|
|
|
|
|
|
|
|
|
|
|
```diff
|
|
|
|
```diff
|
|
|
|
-async for file in api.drive.file.action.get_files(get_all=True):
|
|
|
|
-async for file in api.drive.file.action.get_files(get_all=True):
|
|
|
@ -94,17 +152,18 @@ print(note_one == note_three, note_one != note_three)
|
|
|
|
+ await file.api.action.remove()
|
|
|
|
+ await file.api.action.remove()
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### `FileActions` に `save` メソッドが追加されました
|
|
|
|
#### `FileActions` に `save` メソッドが追加されました
|
|
|
|
|
|
|
|
|
|
|
|
指定したパス、またはBufferにファイルをダウンロードできるようになりました。
|
|
|
|
指定したパス、または Buffer にファイルをダウンロードできるようになりました。
|
|
|
|
パスを指定する場合
|
|
|
|
パスを指定する場合
|
|
|
|
|
|
|
|
|
|
|
|
```py
|
|
|
|
```py
|
|
|
|
async for file in api.drive.file.action.get_files(get_all=True):
|
|
|
|
async for file in api.drive.file.action.get_files(get_all=True):
|
|
|
|
await file.api.action.save(f'./test/{file.name}')
|
|
|
|
await file.api.action.save(f'./test/{file.name}')
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Bufferを指定する場合:
|
|
|
|
Buffer を指定する場合:
|
|
|
|
|
|
|
|
|
|
|
|
```py
|
|
|
|
```py
|
|
|
|
async for file in api.drive.file.action.get_files(get_all=True):
|
|
|
|
async for file in api.drive.file.action.get_files(get_all=True):
|
|
|
|
with open(f'./test/{file.name}', mode='mb') as f:
|
|
|
|
with open(f'./test/{file.name}', mode='mb') as f:
|
|
|
@ -157,15 +216,15 @@ async for file in api.drive.file.action.get_files(get_all=True):
|
|
|
|
|
|
|
|
|
|
|
|
#### `NoteManager.get` メソッドが削除されました
|
|
|
|
#### `NoteManager.get` メソッドが削除されました
|
|
|
|
|
|
|
|
|
|
|
|
何故あったのか分かりませんが、Managerの責務から逸脱しているためです
|
|
|
|
何故あったのか分かりませんが、Manager の責務から逸脱しているためです
|
|
|
|
|
|
|
|
|
|
|
|
#### NoteActionsに関する変更
|
|
|
|
#### NoteActions に関する変更
|
|
|
|
|
|
|
|
|
|
|
|
- `NoteActions.get` `NoteActions.fetch` メソッドにおいて `note_id` が optionalになっているのはおかしいため必須の引数に変更しました
|
|
|
|
- `NoteActions.get` `NoteActions.fetch` メソッドにおいて `note_id` が optional になっているのはおかしいため必須の引数に変更しました
|
|
|
|
|
|
|
|
|
|
|
|
### Fixed 🛠️
|
|
|
|
### Fixed 🛠️
|
|
|
|
|
|
|
|
|
|
|
|
- 一部 `all` 引数が存在しないが、 built-inの `all` が存在することで動作していた箇所が修正されました
|
|
|
|
- 一部 `all` 引数が存在しないが、 built-in の `all` が存在することで動作していた箇所が修正されました
|
|
|
|
- `ClientNoteActions` において `note_id` が無かった場合の例外処理が無かった為追加
|
|
|
|
- `ClientNoteActions` において `note_id` が無かった場合の例外処理が無かった為追加
|
|
|
|
|
|
|
|
|
|
|
|
### Other notable changes 📜
|
|
|
|
### Other notable changes 📜
|
|
|
@ -174,9 +233,9 @@ async for file in api.drive.file.action.get_files(get_all=True):
|
|
|
|
- クリップがサポートされました
|
|
|
|
- クリップがサポートされました
|
|
|
|
- ロールの作成時に `is_explorable` を使用できるようになりました。
|
|
|
|
- ロールの作成時に `is_explorable` を使用できるようになりました。
|
|
|
|
- 最新のインスタンス等で無いと使用できない可能性があります
|
|
|
|
- 最新のインスタンス等で無いと使用できない可能性があります
|
|
|
|
- update_metaのリクエスト時に `server_rules` パラメータが使用できるようになりました
|
|
|
|
- update_meta のリクエスト時に `server_rules` パラメータが使用できるようになりました
|
|
|
|
- このパラメータは `13.11.3` 以降のバージョン(`13.11.3`は含みません)を使用している場合は必須であり、それ以前のバージョンを使用している場合は指定するとエラーが発生する可能性があります。
|
|
|
|
- このパラメータは `13.11.3` 以降のバージョン(`13.11.3`は含みません)を使用している場合は必須であり、それ以前のバージョンを使用している場合は指定するとエラーが発生する可能性があります。
|
|
|
|
- `NoteActions.get_replies` が `ClientNoteActions.getriplies` に移動され、 `ClientNoteActions` でも使用可能になりました。(NoteActionsはClientNoteActionsを継承しているため今後とも使用できます)
|
|
|
|
- `NoteActions.get_replies` が `ClientNoteActions.getriplies` に移動され、 `ClientNoteActions` でも使用可能になりました。(NoteActions は ClientNoteActions を継承しているため今後とも使用できます)
|
|
|
|
- 全取得が以下のメソッドでサポートされました。それに伴い、一部のメソッドがジェネレーターになっています。
|
|
|
|
- 全取得が以下のメソッドでサポートされました。それに伴い、一部のメソッドがジェネレーターになっています。
|
|
|
|
- `FederationActions.get_followers`
|
|
|
|
- `FederationActions.get_followers`
|
|
|
|
- `FederationActions.get_following`
|
|
|
|
- `FederationActions.get_following`
|
|
|
|