Mipac

Latest version: v0.7.4

Safety actively analyzes 688903 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 5

0.5.99

このリリースは最新の 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.gitshared


`Lite*` から始まるモデルの名前が `Partial*` に変更されます。

今まで Lite と Partial が混在していましたが、今回のアップデートを期に `Partial` に統一されます

メソッドの変更

0.5.1

New Features ✨

`MeDetailed` モデルが追加され、自身に関する情報より多く扱えるようになりました

今後は API を使用した際に自動でユーザーが自分自身かを判断し、自身であった場合は `UserDetailed` ではなく、 `MeDetailed` を返すようになります。
`MeDetailed` と `UserDetailed` の共有体型の場合は `isinstance` を用いて判断が行えます。
また、`RoleUser` 等のように専用のユーザーモデルがある場合は `MeRole` のようなモデルを作成し、どちらかを返すようになります。

※まだ全てのメソッドに適応されたわけではなく、ごく一部のみの適応となっています。

py
async def main():
async with Client("https://nr.akarinext.org", "token") as client:
api = client.api
users = await api.admin.action.show_users(username="yupix")
for user in users:
if isinstance(user, MeDetailed):
print(user.is_admin)


- `LiteUser` モデルに `badge_roles` プロパティーが追加されました

以下のエンドポイントがサポートされました

| エンドポント | MiPAC でのメソッド |
| -------------------------- | ----------------------------------------- |
| `/api/admin/invite/create` | `api.admin.invite.action.create_invite` |
| `/api/admin/invite/list` | `api.admin.invite.action.get_invite_list` |
| `/api/roles/list` | `api.role.action.get_list` |
| `/api/roles/show` | `api.role.action.get` |
| `/api/roles/users` | `api.role.action.get_users` |
| `/api/roles/notes` | `api.role.action.get_notes` |

Fixed 🛠️

- `RoleUser` モデルで `LiteUser` を使用していましたが、正しくは `UserDetailed`

依存関係の更新 📦

- `aiohttp`: `3.8.4` => `3.8.5`

貢献者向け情報

`axblack` を使ったフォーマットを辞めました

理由としては `axblack` の更新が止まっており、また移行先である `blue` も更新が止まっているからです。今後は 通常の `black` を使用したフォーマット使用するようにお願いします。

Model には `AbstractModel` を継承してください

`pagination_iterator` 関数が新規に追加され、pagination の処理を楽に使えるようになりました。その際に Model 以外のクラスを受け取らないよう識別するのに使用します。

0.5.0

New Features ✨

`Client` で `async with` 構文がサポートされました

一時的にセッションを作成したい場合などに `login` メソッドや `close_session` メソッドを使用するのは非常に手間であるため、一時的にセッションを作成したいといった場合におすすめします。

py
async with Client('server url', 'token') as client:
api = client.api
async for emoji in api.admin.emoji.action.gets():
print(emoji)


一意の ID を持つモデルで比較演算がサポートされました

サポートされた演算は `__eq__` と `__ne__` の 2 つです。一意の ID と判断しにくい物は現状サポートしていません。
一意の ID があるにもかかわらず、サポートされていないモデルがある際は Issue を作成してください。

py
note_one = await api.note.action.get('note one')
note_two = await api.note.action.get('note one')
note_three = await api.note.action.get('note two')
print(note_one == note_two, note_one != note_two)
print(note_one == note_three, note_one != note_three)


File モデルに `api` プロパティーが追加されました

今まではモデルに `api` プロパティーが無かったため、 `api` プロパティーからアクションにアクセスし、対象のメソッドに対してファイル ID などといった引数を自分で渡す必要がありましたが、今後はモデルから直接実行できます。

diff
-async for file in api.drive.file.action.get_files(get_all=True):
- await api.drive.file.action.remove(file.id)
+async for file in api.drive.file.action.get_files(get_all=True):
+ await file.api.action.remove()


`FileActions` に `save` メソッドが追加されました

指定したパス、または Buffer にファイルをダウンロードできるようになりました。
パスを指定する場合

py
async for file in api.drive.file.action.get_files(get_all=True):
await file.api.action.save(f'./test/{file.name}')


Buffer を指定する場合:

py
async for file in api.drive.file.action.get_files(get_all=True):
with open(f'./test/{file.name}', mode='mb') as f:
await file.api.action.save(f)


以下のエンドポイントがサポートされました

- `/api/admin/emoji/set-license-bulk`
- `/api/antennas/create`
- `/api/antennas/delete`
- `/api/antennas/list`
- `/api/antennas/notes`
- `/api/antennas/show`
- `/api/antennas/update`
- `/api/clips/create`
- `/api/clips/delete`
- `/api/clips/list`
- `/api/clips/show`
- `/api/clips/update`
- `/api/notes/clips`
- `/api/clips/add-note`
- `/api/clips/remove-note`
- `/api/clips/notes`
- `/api/clips/my-favorites`
- `/api/users/clips`
- `/api/channels/create`
- `/api/channels/featured`
- `/api/channels/follow`
- `/api/channels/followed`
- `/api/channels/owned`
- `/api/channels/show`
- `/api/channels/unfollow`
- `/api/channels/update`
- `/api/channels/favorite`
- `/api/channels/unfavorite`
- `/api/channels/my-favorites`
- `/api/channels/search`

Breaking changes 💔

全取得の際の引数 `all` が `get_all` に変更されます。

影響を受けるのはキーワード引数を使用していた方です。位置引数を使用していた方は特に問題ありません。

diff
-Client.api.admin.emoji.action.gets(all=True)
+Client.api.admin.emoji.action.gets(get_all=True)


`NoteManager.get` メソッドが削除されました

何故あったのか分かりませんが、Manager の責務から逸脱しているためです

NoteActions に関する変更

- `NoteActions.get` `NoteActions.fetch` メソッドにおいて `note_id` が optional になっているのはおかしいため必須の引数に変更しました

Fixed 🛠️

- 一部 `all` 引数が存在しないが、 built-in の `all` が存在することで動作していた箇所が修正されました
- `ClientNoteActions` において `note_id` が無かった場合の例外処理が無かった為追加

Other notable changes 📜

- 新しい実績をサポートしました
- クリップがサポートされました
- ロールの作成時に `is_explorable` を使用できるようになりました。
- 最新のインスタンス等で無いと使用できない可能性があります
- update_meta のリクエスト時に `server_rules` パラメータが使用できるようになりました
- このパラメータは `13.11.3` 以降のバージョン(`13.11.3`は含みません)を使用している場合は必須であり、それ以前のバージョンを使用している場合は指定するとエラーが発生する可能性があります。
- `NoteActions.get_replies` が `ClientNoteActions.getriplies` に移動され、 `ClientNoteActions` でも使用可能になりました。(NoteActions は ClientNoteActions を継承しているため今後とも使用できます)
- 全取得が以下のメソッドでサポートされました。それに伴い、一部のメソッドがジェネレーターになっています。
- `FederationActions.get_followers`
- `FederationActions.get_following`
- `FederationActions.get_users`
- `AdminAnnouncementActions.gets`
- `AdminRoleModelActions.get_users`
- `AdminAdvertisingActions.get_list`
- `AdminActions.get_moderation_logs`
- `NoteActions.get_replies`
- `NoteActions.gets`
- `FileActions.get_files`
- `ClientFolderActions.get_files`
- `DriveActions.get_folders`
- `Pagination` クラスが追加されました
- 基本的にユーザーが使うことは想定されていません
- [omg-xtao](https://github.com/omg-xtao) can cancel setup_logging when init client.
- models/user にあった `FollowRequest` クラスが削除されました

0.4.99

0.4.3

Added

- 以下のエンドポイントがサポートされます。
- `emoji`
- `channels/favorite`
- `channels/unfavorite`
- `channels/my-favorites`
- 以下のクラスを追加
- `IChannelNote`
- `PartialNote`
- `Note` クラスで `tags` を取得できるように
- `Client` クラスのコンストラクタ引数に以下を追加
- `use_version`
- `use_version_autodetect`
- `ClientManager` に属性 `emoji` を追加
- `Channel` に `api` プロパティを追加
- `CustomEmoji` に `host` プロパティを追加
- `ChannelLite` に `api` プロパティを追加
- `Folder` に `api` プロパティを追加
- `File` に `api` プロパティを追加
- `Channel` クラスは `ChannelLite` を継承しているため必然的にこちらにも `api` プロパティが増えています

Changed

- `FileActions` の `remove_file` メソッドが非推奨になります。 今後は `remove` メソッドをご利用ください。
- `v0.5.0`で削除されます。
- `INoteRequired` が `IPartialNote` に変更されました
- `mipac.util` モジュールは `mipac.utils` 配下の `auth`, `cache`, `format`, `log`, `util`の 5 つに分離しました。そのため `v0.5.0`で削除されます。
- 今後は `mipac.utils.*` をご利用ください

Fixed

- `FileActions` クラスの `show_file` メソッドで引数にデフォルト値が入っていないのを修正
- `Note` のプロパティで一部戻り値が正しくない
- `ChannelLite` クラスに `is_following` プロパティは存在してはいけないので修正
- tip: `Channel` クラスに移動されました

Removed

- `LiteUser` から `name` プロパティが削除されました。
- 今後は `nickname` をご利用ください

0.4.2

Added

`config.features` が追加されました

MiPAC は v13, v12, v11 という大きな区切りでエンドポイントが利用可能かを確認しています。その都合上、v13 でサポートされいた物、例えばチャットが`13.7.0`で廃止されたような場合、MiPAC は最新の Misskey に追従しているため、デフォルトの挙動を変更します。これにより、`13.7.0`に更新してなかったり、`fork`を使用していてチャットが存在する場合でもチャットを使用すると例外である`NotSupportVersion`が発生してしまいます。その対策としてこの機能が追加されました。
この config の主な役割は以下の通りです。

- 最新の Misskey では使用できないが、自身が使用しているサーバーのバージョンでは使用できる場合に該当する物を有効にすることで例外を返さず、使用できるようにする

使い方は以下の通りです。また、現在サポートされている feature は`chat`のみです。

py
async def main():
client = Client(auth.currentUser.url, auth.currentUser.token)
await client.http.login()
api = client.api
client.config.from_dict(features={'chat': True})


`config.limits` が追加されました

MiPAC では文字数等にデフォルトで最新の Misskey の値を入れています。しかし、一部の Fork で文字数の制限が緩和されている・制限されている場合に正しくエラーを返せなくなる可能性があります。その対策としてこの機能が追加されました。

また、自分で作成・使用している Fork でこれ存在するからデフォルトでサポートしてくれない?という物がありましたら、Issue を作成してくだされば検討します。

- Note 周りのメソッドで`visibility`の型を正確に
- 以下のエンドポイントがサポートされます。
- `i/claim-achievement`
- `blocking/create`
- `blocking/delete`
- `blocking/list`
- `admin/ad/create`
- `admin/ad/delete`
- `admin/ad/list`
- `admin/ad/update`
- Added `IT_ACHIEVEMENT_NAME` fixed variable.
- Added class the given below.
- Channel
- `IChannelLite`
- `ChannelLite`
- `ChannelActions`
- `ChannelManager`
- Blocking
- `BlockingUser`
- `IBlockingUser`
- `BlockingActions`
- `BlockingManager`
- Ad
- `AdminAdvertisingModelActions`
- `AdminAdvertisingActions`
- `Ad`
- `IAd`
- `AdminAdvertisingModelManager`
- `AdminAdvertisingManager`
- Added `block` attribute to `UserManager`.
- Added `channel` attribute to `ClientManager`.
- Added `reaction_emojis` property to `Note`.
- Added `reaction_acceptance` property to `Note`.

Changed

- chat が v13 で廃止された為 v13 を利用している際は例外を返すように変更しました。
- v13 だが、fork や chat が廃止される前のバージョンを使用していてチャットが使用したい際は新しい機能である `config.features` をご利用ください
- aiohttp のバージョンを `3.8.4`に固定
- Token を使用しなくても API が一部使用できるようになりました。当然ですが、認証が必要な API を使用した場合はエラーが出ます。
- `Config.from_dict` の引数が全てキーワード引数になりました。これは今後 Config に引数が増えた際など、変更に強くするためです。

Removed

- サポートする気が無いため、sphinx を用いたドキュメントを削除

Fixed

- `Note.reply`のキーが`renote`になっていて取得不可になっていた

Page 2 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.