View on GitHub

zenn-qiita-mute-warning

zenn-qiita-mute-warning

Zenn/Qiita Mute Warning

ZennやQiitaでミュートしたユーザーの記事を開いたとき、画面上部に警告バナーを表示するChrome拡張です。

ZennはミュートしたユーザーをTLから非表示にしてくれますが、記事URLを直接踏んだ場合はそのまま表示されてしまいます。Qiitaも同様にミュートユーザーの記事が開けてしまうため、この拡張で気付けるようにします。

動作イメージ

ミュートしたユーザーの記事を開くと、以下のような警告バナーが表示されます。

対応ページ

Debugモード

拡張機能のオプションページに「Debug Mode」トグルがあります。ONにするとconsoleへのデバッグログが有効になります。デフォルトはOFFなので、問題調査時だけONにしてください。

Zenn local mute

Zenn公式のミュート上限を超えるユーザーは、拡張機能のオプションページからlocal muteとして追加できます。Zennの記事ページでは、未ミュートの著者に対して「ローカルミュート」ボタンも表示されます。

local muteはZenn本体のミュート設定には登録されません。この拡張機能が警告対象として扱うためのローカル保存です。

仕組み

Zennは公式API GET /api/me/mutes でミュートリストを取得し、chrome.storage.local に24時間キャッシュします。Zenn local muteも同じく chrome.storage.local に保存し、判定時は公式ミュートリストとlocal muteを合成します。QiitaはGraphQL GetMutingUsers をcontent scriptから呼び出し(CSRFトークンを利用)、同様にローカルにだけ保持します。外部サーバーへのデータ送信は一切ありません。

インストール(開発者モード)

Chrome Web Storeには未公開のため、手動でのインストールが必要です。

1. リポジトリをクローン

git clone https://github.com/YOUR_USERNAME/zenn-mute-warning.git

2. Chromeの拡張機能ページを開く

アドレスバーに以下を入力します。

chrome://extensions

3. デベロッパーモードを有効化

右上のトグル「デベロッパーモード」をONにします。

4. 拡張機能を読み込む

「パッケージ化されていない拡張機能を読み込む」をクリックし、クローンしたリポジトリ直下の extension フォルダを選択します。

5. Zennにログイン

Zennにログインした状態でご利用ください。未ログイン時はミュートリストを取得できないため、バナーは表示されません。

ミュートリストの更新

ミュートリストは初回アクセス時に自動取得され、以降24時間キャッシュされます。即時更新したい場合は chrome://extensions から拡張機能を一度「更新」してください。

ファイル構成

zenn-mute-warning/
├── extension/
│   ├── manifest.json   # 拡張機能の設定
│   ├── background.js   # ミュートリストの取得・キャッシュ
│   ├── content.js      # 著者検出・警告バナー表示
│   ├── options.html    # オプションページ
│   └── options.js      # オプションページの処理
├── _config.yml     # GitHub Pages用のJekyll設定
└── README.md

注意事項

License

MIT