ユーザースクリプトでリンク・引用テキスト生成、Webスクレイピングも…… Chrome拡張機能「S.G.T.C.」

S.G.T.C.

以下の文章は9月中旬を過ぎても続く暑さ、深夜の眠気、しつこい蚊への対応に追われながら書いた文章です。頭のネジが抜けたような表現が多々ありますがご容赦ください。

戯言

2022年某月、リンク作成系の拡張機能をあれこれと試すが、

  • テンプレートからの置換形式だとケース毎に用意する必要が
  • ユーザースクリプト形式の場合、コード毎に全て記述するのでは無く、「共通する変数・関数」は別途コード化しライブラリとして呼び出したい
  • コンテキストメニューからの呼び出し
  • 誰得と言われようと特殊URLでも最低限(タイトルとURLの取得)の処理を行いたい

と、これら全てを満たす拡張機能は見つからず、メインブラウザを Vivaldi に移行後もリンク作成は IE系ブラウザ「Ancia」のユーザースクリプト(自作)で続行と二度手間に……

そんなストレス溜まる日々の息抜きゲームプレイ中、何の脈絡もなく「『Display Image List』のUserScript実行部分のソース流用で行ける?」との思い付きから始まった「S.G.T.C.」の開発。

事前の仕様調査が甘かったのもあるが「その機能が実装されないのには、それなりの理由がある」に何度も当たるとは思いもしなかった。まぁ、その後 Chrome に実装された API や先人のありがたいライブラリ、面倒な処理実装でなんとかした訳ですが。

「S.G.T.C.」について

閑話休題。

そんな第三者にはどうでもよい「開発者側の事情」はさておき、「S.G.T.C.」は

Send "Generated Text By UserScript" to Clipboard.

"S.G.T.C." is an extension for Chrome. It can send text generated with a "UserScript" to the clipboard.

Based on the information on the page,

  • Create Links
  • Get a list of Image URLs
  • Get a list of Links
  • Generate quoted text based on mouse-selected text
  • Get any information on a page with Web scraping

etc.

On the user side, more functionality can be added by writing "UserScript".

S.G.T.C. - Chrome ウェブストア

概要は以上。

リンク作成系の定番拡張機能「Create Link」の様なシンプルさを捨て、対象ユーザーを JavaScript 中級者以上に絞る事で、閲覧中のページから

  • URL
  • ページタイトル
  • Referrer
  • HTMLテキスト(厳密には document.documentElement.outerHTML)
  • 選択テキスト(HTML or Text)
  • キーボードの入力状態

等の情報を元にユーザー側で機能追加可能という、「環境は用意したので、後は自分で頑張ってね!」と開発者のサポート負担を減らすステキ横着仕様。

それで具体的には何ができるの?

リンクテキストの生成だけに絞っても、ユーザースクリプト次第で

  • 全角文字の半角への変換
  • エスケープHTML
  • 任意文字の置換
  • URLを基準とした
    • リンク用見出し文の冒頭・末尾へ文字追加
    • 任意形式へ見出し文を正規化

と、手作業では面倒な作業を一括自動化で時間の節約。

ユーザースクリプトの参考例として、私が使用している設定を以下のURLからダウンロードできます。設定のインポート→セーブ後、オプション画面の UserScript から確認してください。

Config File for S.G.T.C.

関連リンク

Chrome Web Store
S.G.T.C. - Chrome Chrome Web Store
Document
Chrome拡張機能「S.G.T.C. ~Send "Generated Text By UserScript" to Clipboard.~」 - 駄文にゅうす