【要約】Slack に未読があることがさっぱりわからないので力技で解決した [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がSlackを利用する際、メンションやDM以外の未読メッセージに気づけないという課題に直面した。Slackの標準仕様では、特定の通知以外はタスクバーにバッジが表示されないためである。具体的には以下の問題が発生していた。
- ・メンション以外の未読が視覚的に判別しにくい。
- ・Slackのウィンドウが背面に回ると、未読の存在を即座に把握できない。
- ・重要なメッセージの見落としが、タスクの遅延を招く懸念がある。
// Approach
開発者は、ブラウザ拡張機能と外部スクリプトを組み合わせた、多層的な検知システムを構築した。既存のデスクトップアプリではなく、PWAとしてブラウザ上でSlackを動作させる手法を採用している。具体的な手順は以下の通りである。
1.SlackをPWA化し、Webブラウザ上で表示する。
2.Tampermonkeyを用い、サイドバーの未読DOMを検知する。
3.未読検知時に、document.titleを「(*) Slack」のように改ざんする。
4.PythonスクリプトでOSのウィンドウ一覧を定期的にスキャンする。
5.タイトルに「(*)」が含まれる場合、タスクトレイに通知を表示する。
// Result
この仕組みを導入したことで、Slackのウィンドウが背面に隠れていても未読を即座に検知できるようになった。これにより、通知の捕捉率が向上し、以下の成果を得ている。
- ・タスクバーのバッジに頼らず、未読の発生を確実に把握できる。
- ・メンション以外の重要なメッセージの見落としを防止できる。
- ・ウィンドウの背後にある状態でも、即時的な反応が可能になった。
Senior Engineer Insight
> 既存の制約を回避する独創的なハックだが、実務への導入は推奨できない。まず、DOM構造への依存は、SlackのUIアップデートにより容易に破綻する。また、UserScriptの実行は企業のセキュリティポリシーに抵触する恐れがある。Pythonスクリプトの常駐によるリソース消費や、OSレベルのウィンドウ監視に伴うオーバーヘッドも無視できない。スケーラビリティと保守性に欠けるため、あくまで個人の生産性を高めるための「実験的な手段」として評価すべきである。