SlackLogViewerの詳細はこちらの記事へ。ツールのダウンロードはこちらのGitHubページから。v1.1.Beta-2のSlackLogViewer.v1.1.Beta2.zipをダウンロードし展開すれば良い。
更新内容
- キャッシュの管理機能を作った。ウィンドウ右上のアイコンをクリックすると、現在開いているログのキャッシュの情報が表示される。×ボタンでキャッシュファイルの一括削除、DLボタンで対象となるチャンネル中のファイルを纏めてダウンロードしキャッシュフォルダに保存する。
- PDFの閲覧機能を作った。これまではテキストまたは画像のみSlackLogViewer上で表示することができ、それ以外はダウンロードしかできなかったが、ここにPDFを追加した。
- ユーザープロファイルの表示機能を作った。各メッセージのユーザーアイコンをクリックするとThread用サイドバーに表示される。
デバッグに全く手が回っていないので、不具合があれば遠慮なく報告してほしい。
1.の方は以前の記事に付いたコメントで画像の一括保存機能がほしいとの要望が出たので、それを実装したものだ。任意のフォルダにダウンロードできるようにしようかとも思ったが、色々と仕様に悩むところがあったので(ファイル名が同一の場合はどうするのか、とか)保留した。
以前の記事でも触れているが、SlackLogViewerのキャッシュは自動削除されない。というより、Slackはストレージの容量をオーバーしたファイルをアーカイブして閲覧不能にしてしまうので、このキャッシュは事実上のバックアップ機能として活用し、自動削除はしないほうが望ましいと思っている。
なお、テキスト、画像、PDFはいずれもそのファイルが添付されたメッセージが表示された時点で、ファイルを開かなくてもキャッシュにダウンロードされる。ただしそれ以外のファイルは上述のダウンロードボタンから明示的にダウンロードしない限りキャッシュに保存されない。このあたりの仕様を統一するかどうかは悩んだのだが、SlackLogViewer中で表示する可能性のある画像、テキスト、PDFは先んじて保存する意味もあるけれどもそれ以外は無意味なので、現状ではこのような仕様になっている。
またバックアップとして使うのならファイル名をもう少し分かりやすくすべきではないかとも悩んだが(現在はファイルのIDがそのまま名前になっているので、非常に分かりにくい)、ファイル名の重複や拡張子の有無など厄介な点は多く、それならファイルブラウザよりもGUI上で探してもらうほうが楽だろうと考え、特に変更しなかった。
2.は以前から作ろうと思いつつ放置していたもの。表示のためにQWebEngineViewという機能を使っているが、これでPDFを扱う機能は比較的新しいため色々とバグが残っているらしく、5.15.2ではファイルの表示こそできるものの拡大縮小ボタンが表示されなかったり、多数の警告メッセージが出力されたりした。Qtのバージョンを5.14.2に変更するとこれらの問題はなくなったが、しかしSlackLogViewer終了時にQWebEngineViewがクラッシュするようになった。どちらも意味が分からないが、5.14.2の方はちょっとした小技を使うことでクラッシュを回避できたので、そちらを採用した。Qtのバグ修正が来るまでの一時的な措置である。
3.はおまけ。本当は検索時の日時範囲指定も作るつもりだったのだが、QCalendarWidgetやQDateEditが思いの外不便だったために見送ったので、何か別の機能でも作ろうかと思って用意した。ユーザーの一覧をChannel一覧の下あたりに表示しようかとも考えたが、こちらは手間なのでやめた。QListViewにアイコンやらを表示するのは実は結構大変なのだ。
バージョン番号を1.2に引き上げるか少し悩んだが、大した機能追加でもないので1.1のままにした。ユーザーがそこそこ増えてきているようなので、きっと彼らがデバッグしてくれると期待して、バグ報告等がなければいずれリリース版にしたいところ。