GitHubのNotificationsを取得して、OS Xの通知センターに通知を送るgithub-notifierを公開しました。

github-notifierは

この2つをただ繋ぐだけのソフトウェアです。GitHub for Macから通知センターのサポートが削除され1てずっと不便に思っていたので作成しました。今のところNotificationsしか取得しませんが、単純なソフトウェアなのでかなり容易に拡張できると思います。

使い方等はREADMEを参照してもらうとして、ここでは、github-notifierを作るにあたって、terminal-notifierに送ったプルリクを紹介します。

ファイルパス中に含まれるスペース/マルチバイト文字に対応

fileURLWithPathを使ってエンコードすれば、良い感じにこれらの文字に対応してくれる。

フラグメント識別子の復号

stringByAddingPercentEscapesUsingEncodingを使ってURLをエスケープするのはいいのだが、このメソッドはクエリ文字列中にないフラグメント識別子(#)もエスケープしてしまう。そのままエンコードされたURLを使うと正しくページを表示することができないため、フラグメント識別子だけエンコード後に復号しようというもの。

問題の認識はこれで間違っていないと思うのだが、解決方法が全くcoolに見えない。本当にこれmergeされて良かったのか・・・。とりあえず、Cocoaフレームワークの中にはフラグメント識別子を意識したエンコードメソッドは無さそう。もしもっと良い解決策を知ってる人が居れば、是非terminal-notifierの方にプルリクを送って欲しい(ついでに私にも教えて欲しい)。