Mipa

Latest version: v0.4.1

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

Scan your dependencies

Page 1 of 5

0.6.1

[compare changes](https://github.com/yupix/MiPAC/compare/0.6.0...v0.6.1)

🚀 Enhancements

- FollowActionsをClientと分けた ([dc00a0e](https://github.com/yupix/MiPAC/commit/dc00a0e))
- Notes/search をサポート ([f3d04fb](https://github.com/yupix/MiPAC/commit/f3d04fb))

🏡 Chore

- FollowManagerでActionを再生成しないように ([bb93d03](https://github.com/yupix/MiPAC/commit/bb93d03))
- FollowActions.add メソッドを非推奨に、代わりにcreateメソッドを追加 ([69c89a7](https://github.com/yupix/MiPAC/commit/69c89a7))
- FollowActions.remove メソッドを非推奨に、代わりにdeleteメソッドを追加 ([df2ba4f](https://github.com/yupix/MiPAC/commit/df2ba4f))
- サポート状況を更新 ([be5e608](https://github.com/yupix/MiPAC/commit/be5e608))

❤️ Contributors

- Yupix ([yupix](http://github.com/yupix))

[Unreleased]

0.6.0

Breaking changes 💔

AuthClient が削除されました

今まで MiAuth やアプリ作成方式でのアクセストークンを取得する際に使用できていた `AuthClient` を削除しました。今後は `MiAuth` クラスをご利用ください。

以下のクラスを削除しました

この変更は Misskey の Schema に似せた形で再実装するにあたり、Misskey の Schema よりも細かくモデルを作成していたため、そういったものを削除した形となります。

- `UserDetailed` -> `UserDetailedNotMe | MeDetailed`
- `MeDetailedModerator` -> `MeDetailed`
- `UserDetailedModerator` -> `UserDetailedNotMe | MeDetailed`
- `UserDetailedNotLogined` -> `UserDetailedNotMe | MeDetailed`
- `AdminAnnouncementClientActions` -> `ClientAdminAnnouncementActions`
- `AnnouncementSystem` -> `AnnoucementDetailed`
- `MeRole` -> `RoleUser`

クラス名の変更

- `AdminAdvertisingModelActions` -> `ClientAdminAdActions`
- `AdminAdvertisingActions` -> `AdminAdActions`
- `AdminAdvertisingModelManager` -> `ClientAdminAdManager`
- `AdminAdvertisingManager` -> `AdminAdManager`
- `MutedUser` -> `Muting`

引数に関する変更

`*Actions` 系にて `*_id` のような引数はすべてキーワード引数に変更されました。これはリスコフの置換法則に則るうえで必要な作業であり、今後のコード変更に対する耐性を上げるためでもあります。ご迷惑をお掛けしますがご理解のほどよろしくお願いいたします。

戻り値の変更

- `Announcement.action -> ClientAdminAnnouncementActions` -> `Announcement.action -> ClientAdminAnnouncementManager`
- `AnnouncementDetailed.action -> ClientAdminAnnouncementActions` -> `AnnouncementDetailed.action -> ClientAdminAnnouncementManager`

`get_all` 引数を廃止

今まで多くの配列を返すメソッドをジェネレータとして作成していましたが、少ししかデータは要らないのに `async for` を書くのは大変ということで `get_all` 引数を廃止します。

これにより今まで `get_all` 引数があった ジェネレータは全て通常の list 等を返すメソッドに変更されます。
今まで通りのジェネレータとしての機能が必要な場合は `get_all_*` というメソッドが新しく増えているためそちらをご利用ください。

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.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` をご利用ください

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.