はじめに
以前、オンクラス感想エクスポーターという拡張機能を作りましたが、使っていくうちに「カテゴリを作成したら自動で先頭に移動してほしい」という要望が出てきました。
そこで、感想エクスポート機能に加えてカテゴリ自動移動機能を追加したオンクラスエンハンサーとして新しく作り直しました。
何を作ったか
オンクラスエンハンサーは、オンクラス(THE ONLINE CLASS)の管理画面を便利にするChrome拡張機能です。
主な機能
1. カテゴリ自動移動
新しく作成したカテゴリを自動的にリストの先頭に移動します。
オンクラスでは新規カテゴリは末尾に追加されるため、毎回手動でドラッグして並び替える必要がありました。この機能をONにしておくと、カテゴリ作成後に自動で先頭に移動してくれます。
2. 感想エクスポート
受講者の感想データをJSON/CSV形式で一括エクスポートできます。
- 全ページ一括取得: ページを自動で巡回して全件取得
- このページのみ: 現在表示中のページだけ取得
- 中断機能: 途中でエクスポートを中止できる
- CSV対応: Excelで開いても文字化けしない(BOM付き)
使い方
カテゴリ自動移動
- 拡張機能のアイコンをクリック
- 「カテゴリ自動移動」のトグルをONにする
- オンクラス管理画面でカテゴリを新規作成
- 自動で先頭に移動される
感想エクスポート
- オンクラス管理画面の感想ページを開く
- 必要に応じてコース・カテゴリ・ブロックで絞り込む(高速化のコツ)
- 拡張機能のアイコンをクリック
- 「全ページ一括取得」または「このページのみ」をクリック
取得中はページ右上に進捗バーが表示され、完了すると自動でファイルがダウンロードされます。
技術的なポイント
fetch/XMLHttpRequestのプロキシ
カテゴリ自動移動機能では、オンクラスのAPI通信を監視する必要があります。Content Scriptからは直接アクセスできないため、ページコンテキストにスクリプトを注入してfetch/XMLHttpRequestをプロキシしています。
カテゴリ作成APIのレスポンスを検知したら、認証情報を取得して順序変更APIを呼び出します。
Content ScriptとPage Scriptの連携
Manifest V3では、Content ScriptとPage Scriptは別の実行コンテキストになります。設定の同期にはwindow.postMessageを使って通信しています。
オンクラス感想エクスポーターからの移行
旧「オンクラス感想エクスポーター」をお使いの方は、新しい「オンクラスエンハンサー」への移行をおすすめします。感想エクスポート機能はそのままに、カテゴリ自動移動機能が追加されています。
おわりに
カテゴリの並び替えは地味に手間だったので、自動化できて満足しています。オンクラスを使っている方の参考になれば幸いです。

