# Change Log ## v0.4.2 [compare changes](https://github.com/yupix/MiPA/compare/0.4.1...v0.4.2) ### 🏡 Chore - MiPACのバージョンを0.7.0以上0.8.0まで許可するように - MiPACの最低バージョンが0.7.0に変更されています。詳細は [MiPACのリリースノート](https://github.com/yupix/MiPAC/releases/tag/0.7.0) をご覧ください。 ### ❤️ Contributors - Yupix ([@yupix](http://github.com/yupix)) ## v0.4.1 [compare changes](https://github.com/yupix/MiPA/compare/0.4.0...v0.4.1) ### 🏡 Chore - MiPACのバージョンを0.7.0までは許可するように ([4bc8aec](https://github.com/yupix/MiPA/commit/4bc8aec)) ### ❤️ Contributors - Yupix ([@yupix](http://github.com/yupix)) ## v0.4.0 このバージョンから developブランチは v13以降のみをサポートします。今まで通りの全てのイベントがあるのは shared ブランチのみとなります [compare changes](https://github.com/yupix/MiPA/compare/0.3.5...v0.4.0) ### 🚀 Enhancements - MiPAC v0.6.0への対応 ([36494ef](https://github.com/yupix/MiPA/commit/36494ef)) - Python3.12を必須に ([2abd5ed](https://github.com/yupix/MiPA/commit/2abd5ed)) ### 🩹 Fixes - Timelinesがpackagesに含まれていない ([d0caa63](https://github.com/yupix/MiPA/commit/d0caa63)) - 直せる範囲で型エラーを修正 ([8e5a58d](https://github.com/yupix/MiPA/commit/8e5a58d)) ### ❤️ Contributors - Yupix ([@yupix](http://github.com/yupix)) ## [0.3.5] 2023-11-18 ### Fixed - 0.3.4 では直しきれなかった一部の不具合を修正しました ## [0.3.4] 2023-11-01 ### Fixed - ほとんどのイベントで引数エラーが発生する ## [0.3.1] 2023-10-30 ### Added #### チャンネルに接続した際、チャンネル名と UUID の dict が帰ってくるように 例としては以下のような物が返ってきます。 ```python await self.router.connect_channel(['main', 'home']) >>> {'main': 'ce9b318b-3f7b-4227-b843-1b694112567e', 'home': '934b460d-50c5-463e-b975-9db7bf6ba42d'} ``` この ID は `connect_channel` を実行した際にのみ `チャンネル名: UUID` という形式になっており他の場所で取得したい場合は `router.channel_ids` プロパティを使用する必要があります。この場合は `UUID: チャンネル名` というキーと値が逆の状態で取得されるため注意してください。 #### チャンネルを切断できるように 最初に紹介した チャンネル名と UUID の dict を用いて特定のチャンネルから切断できるようになりました。 ```python channel_ids = await self.router.connect_channel(['main', 'home']) await self.router.disconnect_channel(channel_ids['main']) ``` #### チャンネルごとに専用のクラスを使用できるように 以下のように グローバルタイムラインに対して `AbstractTimeline` を継承した `GlobalTimeline` を実装することで作成が可能です。 `on_note` メソッドを抽象クラスに沿って作成する必要もあります。また、別にクラスを渡したくないけど、チャンネルには接続したいという場合は `None` を値として渡してください。 注意点として、チャンネル専用のクラスを渡したからと言って、今回の場合でいう `MyBot` クラスにある `on_note` が発火されなくなるわけではありません。この機能の追加は多くのチャンネルに接続したいが、それぞれに別々の処理を実行したい場合を想定しています。そのため、`MyBot` 側の `on_note` には今までと変わらず**全ての**チャンネルのノートが流れてきます。 ```python from aiohttp import ClientWebSocketResponse from loguru import logger from mipac import Note from mipa.ext.commands.bot import Bot from mipa.ext.timelines.core import AbstractTimeline class GlobalTimeline(AbstractTimeline): async def on_note(self, note: Note): logger.info(f'{note.author.username}: {note.content}') class MyBot(Bot): def __init__(self): super().__init__() async def _connect_channel(self): await self.router.connect_channel({'global': GlobalTimeline(), 'main': None, 'home': None}) async def on_ready(self, ws: ClientWebSocketResponse): await self._connect_channel() logger.info('Logged in ', self.user.username) ``` また、この機能が追加されたからと言って、今までのコードに特別な変更は必要ありません。今まで通りの `list` 形式の引数も引き続きサポートしています。 ```python await self.router.connect_channel(['global', 'main', 'home']) ``` ## [0.3.0] 2023-04-25 ### Changes by Package 📦 MiPAC に破壊的変更を含む更新があるため、よく MiPAC の CHANGELOG を読むことを推奨します。 - [MiPAC](https://github.com/yupix/MiPAC/releases) ### Changed - [@omg-xtao](https://github.com/omg-xtao) can cancel setup_logging when init client. ## [0.2.2] 2023-04-25 ### Added - v13, v12? で 絵文字が削除された際に `on_emoji_deleted` イベントを発火するように - v13, v12? で 絵文字が更新された際に `on_emoji_updated` イベントを発火するように ### Changed - 使用する MiPAC のバージョンを`0.4.3`に - 詳しい変更点は[こちらをご覧ください](https://github.com/yupix/MiPAC/releases) ### Fixed - `Cog.listener` を使った際に型エラーが出る ## [0.2.1] 2023-03-22 ### Changed - 使用する MiPAC のバージョンを`0.4.2`に ## [0.2.0] 2023-03-20 ### Added - `setup_hook` イベントが追加されました - `load_extension` 等はこのイベントで行うことを推奨します - `ExtensionNotLoaded` 例外が追加されました ### Changed - **BREAKING CHANGES** 以下のメソッドが非同期になります - Cogs 内の `setup` 関数 - `add_cog` - `remove_cog` - `load_extension` ### Fixed - `tasks.loop` をクラス内で使用すると `self` が受け取れない ## [0.1.2] 2023-03-14 ### Added - ✨ added event `on_achievement_earned`. - ✨ added `disconnect` method to `Client` class. ### Fixed - incorrect URL for streaming API #16, #17 ### Changed - 使用する MiPAC のバージョンを`0.4.1`に ## [0.1.1] 2023-01-18 ### Added - ✨ feat: support all notifications #MA-11 - `on_user_follow` when you follow a user - `on_user_unfollow` when you unfollow a user - `on_user_followed` when someone follows you - `on_mention` when someone mentions you - `on_reply` when someone replies to your note - `on_renote` when someone renote your note - `on_quote` when someone quote your note - `on_reaction` when someone react to your note - `on_poll_vote` when someone vote to your poll - `on_poll_end` when a poll is ended - `on_follow_request` when someone send you a follow request - `on_follow_request_accept` when someone accept your follow request ### Changed - 使用する MiPAC のバージョンを`0.4.0`に ### Fixed - 🐛 fix: ws reconnect - 🐛 fix: Separate unread chat message ## [0.1.0] 2022-12-24 ### Added - ✨ feat: add .flake8 config. - ✨ feat: To be able to capture notes. - ✨ added event `on_note_deleted`. - ✨ added event `on_reacted`. - ✨ added event `on_unreacted`. - ✨ added `router` property a `Client` class attributes. - 💡 Direct instantiation of the `Router` class is deprecated. - [@omg-xtao](https://github.com/omg-xtao) ✨ feat: added `hybridTimeline` channel [#9](https://github.com/yupix/MiPA/pull/9). ### Changed - ⬆️ feat(deps): update mipac update mipac version. - ✨ chore: Changed `parse_` lineage functions to asynchronous. - 💥 feat: **BREAKING CHANGE** Change event name `on_message` from `on_note`. - 💥 feat: **BREAKING CHANGE** Required Python version is 3.11. ### Fixed - 🐛 fix: not working command Framework. - 🐛 fix: Chat related stuff is flowing `on_message`. - 💡 Please use `on_chat` in the future!