🔔
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