[SlackLogViewer]Slack過去ログ閲覧ツール更新(5)。

前回(4)と同じく、バグ修正である。主としてMac版の不具合に対応するためのもので、既存のバージョンで満足しているWindowsユーザーは無視しても構わないが、本バージョンからはキャッシュ保存先が変更されるので、キャッシュ機能をバックアップとして使っている人はそこだけ知っておいて欲しい。

SlackLogViewerの説明はこちらへ
Windows、macOS版のダウンロード先はこちら

Macで正常に起動しない不具合(WindowsLinuxに対しても影響あり)

macOS上でSlackLogViewerを立ち上げた時、"cannot make cache folder"というエラーメッセージが表示されていたらしい。またGUI上でアイコンが表示されないという問題もあった。これらはGitHubのissue #5#6で報告されている。

原因は、SlackLogViewerがカレントディレクトリに、ダウンロードしたファイルを保管するCache、アイコンなどの画像が格納されているResourcesというディレクトリがあることを前提に設計していたためである。Windowsなどでは実行ファイルを直接ダブルクリックしたりショートカットから起動したりすることが常なので基本的にはカレントディレクトリはSlackLogViewer.exeと同階層であり、これでも問題なかったのだが、macOSの場合はこれがまずかったらしい。ので、これらのディレクトリの場所の指定方法を変更することにした。

これに伴い、キャッシュファイルの保存先が変更された。デフォルトの挙動は優先度の高い順に以下の通りである。

  1. SlackLogViewer実行ファイルと同階層にあるsetting.iniの中にCache/Locationという変数が設定されている場合、そこに保存する。
  2. 特定の環境変数(詳細は下記)が見つかった場合、そこを基準にSlackLogViewer_cacheディレクトリを作り、そこに保存。
  3. 上記環境変数が存在しない場合、WindowsまたはLinuxの場合はSlackLogViewer実行ファイルと同階層にCacheディレクトリを作成しそこに保存する。macOSの場合はSlackLogViewer.app/Contents/Resources/Cacheの中に保存する。

"特定の環境変数"を参照して作成されるSlackLogViewer_cacheディレクトリの場所は以下の通りである。

  • Windowsの場合……%LocalAppData%。典型的にはC:\Users\username\AppData\Localである。
  • macOSの場合……$HOME/Library/Caches
  • Linuxの場合……$XDG_CACHE_HOMEが定義されていればそれ、定義されていなければ$HOME/.cache

setting.iniというファイルはSlackLogViewerの初回起動時に作成される。このときCache/Locationには2.、3.の順で決定された保存先がデフォルト値として書き込まれる。もしキャッシュファイルの保存先を自分で変更したい場合、この時生成されたsetting.iniCache/Locationを書き換えれば良い。ただし必ず存在するディレクトリを指定すること。もしディレクトリが存在しない場合、cacheディレクトリを作成できないというエラーが表示される。

余談

今回の更新にはLinuxmacOSへの対応を行ってくださったcielavenir様、slackdump開発者のrusq様から多大な協力をいただいたことを記しておく。

今回の対応にはひどく苦労した。私はmacOSの仕様なんてろくに知らないのだ。私がMacを使ったのはせいぜい、大学学部生の頃に情報科学系の講義の実習用としてMacをあてがわれていたときくらい。理学部生だった我々がプログラミングを深く学ぶことなどなく、ごく初歩的なインターネットリテラシーだとかC言語のさわりだとかを扱っただけだった。C++による本格的なアプリ開発を行ったことなどあるはずもなかった。Macのアプリケーションがバンドルという特殊な構造になっていることも初めて知った。
そんな中、自力ではデバッグも出来ない中で、なんとかネット上で見つかる記事などを参考に手探りで対処法を探していたのだ。上のお二方の協力がなければどうしようもなかった(私一人ならそもそもmacOS版を公開すらできていないのだが)。

cielavenir様からのコミットでGitHub Actionsを用いたmacOS用バイナリの自動ビルドも可能になったので、今回のような不具合の可能性は否めないものの、とりあえずバイナリの提供はある程度続けられそうだ。

さて、今後はslackdumpの出力するファイルやダイレクトメッセージへの対応などを行うつもりである。ただここ数日は偶然にも時間が取れたが、私の本業を停滞させていた原因がようやく解消されてそちらが忙しくなりそうなので、いつ公開されるかは全くわからない。最悪半年後である。ここ一ヶ月半で一気に増えたユーザーのうち、どれだけの人が今後の更新に期待してくれているのか知らないけれども、まあ気長に待って欲しい。