公開スクリプトの自動更新への対応 

「Tampermonkey」で利用する公開スクリプトの自動更新を実現するには、「送出し側」の「ソースコード」の設置方法と、「受信側」の「Tampermonkey」の設定の両方で、自動更新に対応することが必要です。 前者は「ユーザースクリプト」の公開者の問題で、後者は「ユーザースクリプト」を利用するユーザーの問題です。

 

以下に「送出し側」「受信側」に分けて要点を整理しましたが、ここでは「GitHub」での公開に限定しています。 しかし、他のシェアサイトにも応用可能と思います。

 

 

 

 「送出し側」で自動更新に対応する

 

ファイル名の末尾に「.user.js」を付ける 

●「GitHub」上のファイル名の末尾に「.user.js」を付けてファイルを設置する。

 

下は、「GitHub」での公開をした、ツール名が「Popup Reblog」というユーザースクリプトの「ソースコード」の設置例です。

 

GitHub上のPopup_Reblog.user.jsファイル

 

 

本当の「ユーザースクリプト名」は です。

 

の左側「Popup_Reblog」は、 Githubのリポジトリ名です。

の右側「Popup_Reblog.user.js」は Githubでの登録ファイル名です。

 

 で「Popup_Reblog」の名を使ったのは整理上の目的で、と無関係なリポジトリ名や登録ファイル名でも構いません。 ただし、登録ファイル名の末尾に「.user.js」が必要です。

 

この疑似拡張子の「.user.js」が付いたファイルを、「Tampermonkey」はインストール可能な「ユーザースクリプト」の「ソースコード」として扱います。

 

 

「ソースコード」を開く「URL」 

「Tampermonkey」がインストール動作を行う条件は、ファイル名に「.user.js」が付いた「ソースコード」を、ブラウザが直接に開いた時です。

 

● 目的の「ソースコード」は「GitHub」のリポジトリの仕様から、上記のページの「URL」の一部を下の様に書き換えた場所にあります。

 

〔注〕リポジトリに登録したファイルに案内する時は、リポジトリ所有者のホルダー下で「/リポジトリ名/blob/main/ファイル名」を「URL」として示せば良いのですが、そのファイルの「ソースコード」へ案内するには、「blob」を「raw」に置き換える必要があります。

 

◎ ファイル登録をしたページの「URL」
https://github.com/personwritep/Popup_Reblog/blob/main/Popup_Reblog.user.js

◎ スクリプトの「ソースコード」の「URL」
https://github.com/personwritep/Popup_Reblog/raw/main/Popup_Reblog.user.js

 

 

スクリプトファイルの「メタデータ」 が必要

「ソースコード」の配置が出来ましたが、「自動更新」の実行には、更に「ソースコード」の「メタデータ」の設定が必要です。「Tampermonkey」は「ソースコード」の「メタデータ」を読んでインストールの方法を決定します。

 

「メタデータ」は「ソースコード」の先頭部の「// ==UserScript==」で始まる部分です。

 

Tampermonkeyスクリプトのメタデータ(@version, @updateURL)

 

 

●「メタデータ」に @version」 @updateURL」「@downloadURL」の行を追加します。

 

は、標準的な「xx.yy.zz」の3数形式が無難ですが、「xx.yy」の2数形式も使えます。 バージョン数で自動更新を制御するので、このメタデータは不可欠です。

 

は、登録スクリプトの自動更新時に「ソースコード」を探す時に使われます。 特に「@updateURL」の指定が無いと、自動更新が行われません。 この行で指定するURLは、前項のスクリプトの「ソースコード」の「URL」でなければなりません。

 

 

参考 

以上の「送出し側」の準備が完了したら、以下のテストをして設定を確認します。

 

@updateURL」の「URL」をブラウザの「URL窓」にペーストして移動すると、自動的に「Tampermonkey」のスクリプトのインストール画面が開きます。

 

登録しているスクリプトを上書きするかを問われる場合が多いと思いますが、インストール画面が開く事を確認できればOKです。

 

 

 

「受信側」で自動更新に対応する

以下は、公開されたスクリプトツールを利用する側が、自動更新を行わせるための設定です。

 

 

ファイルへのアクセスを許可 する

プラウザの拡張機能の管理を開き、「Tampermonkey」の「詳細」を開きます。

 

Tampermonkey拡張機能の詳細設定画面

 

 

●「ファイルの URL へのアクセスを許可する」の項目を「ON」にします。

 

Tampermonkey ファイルURLアクセス許可

 

 

▪ この許可は「自動更新」には必須ですが、任意のタイミングで「手動」で更新を行う場合は不要です。 詳細は最後の「自動更新のセキュリティ」の項を参照ください。

 

 

 ダッシュボードの設定

「Tampermonkey」の「スクリプトの自動更新」の設定は、「ダッシュボード」の「設定」タブの中にあります。

 

●「UserScript の更新」の項の設定を行います。

 

下は私の設定ですが、一番の要点は「確認の間隔」でしょう。

 

▪「しない」「6時間ごと」「12時間ごと」「毎日」「毎週」など、利用しているスクリプトによって適当な間隔を設定します。

 

Tampermonkey設定画面:スクリプト更新設定

 

 

▪「しない」を選択すれば全く自動更新は行われませんが、ポップアップのメニューで「  UserScript の更新を確認」を押して手動で更新する方法もあります。

 

Tampermonkeyの更新確認ボタン

 

 

「登録スクリプト」ごとの確認 

インストールしたスクリプトの「自動更新」を行わせたい場合、スクリプトごとに「自動更新」の設定を確認しておく必要があります。

 

「インストール済み UserScript」の一覧から「自動更新」を行いたいスクリプトをクリックして、スクリプトの編集画面を開きます。 

 

● 編集画面の左上の「設定」タブを開き「更新」の項目を確認します。

 

Tampermonkey更新URL設定画面

 

 

このスクリプトが「自動更新」に対応した公開方法を採っている場合は、スクリプトに「@updateURL」のメタデータが指定されます。 その内容が上図の「更新 URL」に呼び込まれるので、もし枠内が空白の場合は自動更新ができません。

 

▪ 何かの理由で「更新を確認する」にチェックがないと、このスクリプトは更新されません。 このチェックと「更新 URL」を確認して「保存」を押します。

 

▪ ユーザーがソースコードを編集した場合は、自動更新されない扱になります。 その場合で、ユーザーの編集内容が白紙化しても良いなら「UserScriptの更新を確認」のボタンで手動で更新を行えます。

 

 

 

自動更新のセキュリティ 

「Tampermonkey」に、ネット公開された「ソースコード」をインストールする際の大事な注意点は、信頼性が確認できない「ソースコード」をインストールしないことです。 JavaScriptは「PCに対してなんでも出来る」と考えた方が良いです。 ブラウザの制限により、正しくは何でも出来るわけではありませんが、悪用者は想定外の仕掛けをする場合があります。 JavaScriptはブラウザ上で能動的に機能し、悪用された場合の危険は甚大です。

 

「自動更新」の機能を利用するには、「ファイルの URL へのアクセス」を許可する必要がありますが、この許可により、ブラウザが「.user.js」の「ソースコード」のファイルを開いた時に、自動的にインストール直前の段階まで進みます。

 

ただし、擬装されたリンクで悪意の「.user.js」の「ソースコード」をユーザーが開いたとしても、必ず下の様な「インストールの確認画面」が表示されます。 この画面で「インストール」や「更新」を選択すれば、「ソースコード」は実行可能になるので、この画面は重要な関門です。

 

Popup ReblogスクリプトのTampermonkeyインストール画面

 

 

「 自動更新」機能を利用するなら

「 自動更新」機能を使うには「ファイルの URL へのアクセスの許可」は必須です。 この許可は、登録したユーザースクリプトが、自身の更新された「ソースコード」にアクセスして自動で読込む事の許可です。

 

ただし、「手動での更新」や「新規インストール」は「アクセスの許可」を「ON」にする必要はありません。

 

「手動での更新」

▪「ポップアップ」の「  UserScript の更新を確認」を押してアップデート。

▪「インストール済み UserScript」の一覧からスクリプト編集画面➔「設定」タブで「更新」メニューで「UserScript の更新を確認」を押してアップデート。

 

「新規インストール」

▪ ファイル名末尾が「.user.js」の「ソースコード」をブラウザで開く。

(ファイル場所のURLをブラウザに直接入力するか、同様のリンクを開く)

 

新しいコードの流入時は、必ず「インストールの確認画面」が表示されるので、それさえ注意すれば問題ないと思いますが、「ファイルの URL へのアクセスの許可」を「ON」にしたくなければ、随時に「手動での更新」を使っても良いでしょう。

 

 

 

自動更新対応の「メタ設定用URL」の生成ツール 

このページの最初で自動更新に対応した @updateURL」「@downloadURL」のメタデータの2行が必要と書きましたが、この2行の「URL」は、「GitHub」のリポジトリの構成から、たいてい決まった形です。

 

下はスクリプト名「Popup_Reblog」の場合ですが、最初の「リポジトリ名」と後の「ファイル名」を同じにした場合は、「user」が決まれば「定型」と言えます。

 

「github.com/user/Popup_Reblog/raw/main/Popup_Reblog.user.js」

 

そこで、この「updateURL」「downloadURL」を毎回作るのは手間なので、開いたリポジトリの「URL」から、自動で生成するツールを作りました。

 

 

「Get UpdateURL 🔵 」の使い方

「Get UpdateURL 🔵」を常駐した状態で「GitHub」の「リポジトリ」で、「登録ファイル」の単体を選択して、そのコードが表示される画面で機能します。

 

この画面は、下の赤枠で「リポジトリ名」「ファイル名」を確認できればOKです。

 

GitHub Popup_Reblog.user.js ソースコード

 

 

● この画面で「F10」のファンクションキーを押すと、下のアラートが出ます。

 

GitHub「Update URL」をクリップボードに保存

 

 

これで、「updateURL」「downloadURL」のメタデータの2行が得られるので、スクリプトの「編集画面」でペーストしてメタデータに追加します。

 

 

 

「Get UpdateURL 🔵」を利用するには

このツールは Chrome・Edge・Firefox版の拡張機能「Tampermonkey」上で動作します。 以下に、このツールの導入・更新の手順を説明します。

 

 

❶「Tampermonkey」を導入します

◎ 使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。

既に「Tampermonkey」を導入している場合は、この手順 ❶ は不要です。 

拡張機能の導入については、以下のページに簡単な説明があるので参照ください。

 

 

 

❷ スクリプトコードを登録・更新します

「Get UpdateURL 🔵」のコードは「GitHub」で配布しています。

 

● 以下のリンクを押すと「Get UpdateURL 🔵」を初めて利用される場合は「インストール」、既に利用されている場合は「上書き」(更新)ができます。

 

 

● 下の様な確認画面が表示されたら、「スクリプト名(ツール名)」「バージョン」を確認して、「インストール」または「上書き」のボタンを押します。

 

Tampermonkeyスクリプトインストール画面

 

 

以上の操作で、「Tampermonkey」の「インストール済み UserScript」のリストに「Get UpdateURL 🔵」の最新バージョンが登録・更新されます。

▪ ダッシュボードのリストは「  リロード」すると、新しい登録が反映します。

 

 

 

「Get UpdateURL 🔵」最新版に関する記事について  

スクリプトツールは、動作対象ページのHTML変更などで正常動作が不能になる場合があります。「自動更新」や手動による「更新」で、最新バージョンを利用することをお勧めします。

 

「Get UpdateURL 🔵」の最新バージョンに関する記事は、以下のページのリンクリストから探せます。