🔔
Misskey の未読通知をお知らせするアプリを書いた
Misskey API の練習がてら『未読の通知をお知らせする』Python アプリを書いてみました。
概要
Windows のタスクトレイや Mac のメニューバーに常駐して、未読があるときはアイコンを明るくしてお知らせします。
未読がある時

未読がない時

準備からアプリ起動まで
Misskey のアクセストークンを取得する
先人の素晴らしい記事がありますので、参考にして取得してください。
必要な権限の種類は アカウントの情報を見る read:account のみです。
設定ファイル .mnotify を作成する
リポジトリから clone してディレクトリを移動します。
git clone https://github.com/sharl/mnotify.git
cd mnotify
カレントディレクトリに .mnotify を作成します。JSON です。
{
"misskey_instance": "https://misskey.example.com",
"misskey_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
misskey_instance は通知を取得したい Misskey インスタンスの URL です。
misskey_token は先ほど取得したアクセストークンです。
続いて
pip install -r requirements.txt
python mnotify.py
で起動します。
実装について
Misskey API の Python ラッパーである Misskey.py を使っているので関係しているところを説明していきます。
設定ファイル .mnotify を読み込んで Misskey API オブジェクト self.misskey を作成します。
インスタンスのメタ情報を meta() で取得して「インスタンス名 name」を取得。
「favicon の URL iconUrl」を読み込んで通常アイコンと暗いアイコンを作成します。
-
ImageEnhance.Brightness(self.u_icon).enhance(0.5)- 明るさを半分に
-
convert('L')- グレースケールに
自分の情報 i() から
- 未読の有無
hasUnreadNotification - 未読数
unreadNotificationsCount
を取得しています。
インスタンスのメタ情報を利用している箇所は以上です。
雑感
最初、通知の未読状態を取得するために i_notifications() を使用していましたがなんか違う……ということで勘で i() にたどり着きましたが、本質的には Misskey のフロントのソース読めって話。

Discussion