Dieses Skript sollte nicht direkt installiert werden. Es handelt sich hier um eine Bibliothek für andere Skripte, welche über folgenden Befehl in den Metadaten eines Skriptes eingebunden wird // @require https://update.greasyfork.org/scripts/386712/816981/atcoder-userscript-libs.js
概要
AtCoder上で動くUserScriptを補助するライブラリです。
ソースについて
このライブラリは複数ファイルを1つにまとめたものです。ソースの詳細はGitHubを参照してください。一行目以外同一のものをビルド可能なソースコードを公開しています。(一行目はグローバルへエクスポートするために改変を行っています。)
使い方
まず、UserScriptのHeaderに以下のような行を追加してください。
// @require https://greasyfork.org/scripts/386712-atcoder-userscript-libs/code/atcoder-userscript-libs.js?version=715082
素のJavaScriptで開発する場合
ツールなどを用いずにこのライブラリを使用する場合は、グローバルに存在しているusLibsオブジェクトの中に格納されているライブラリ内にあるオブジェクトやクラスを用いることになります。
例えば、以下のようなコードを実行するとalertでdiverta2019-2のコンテスト情報を表示します。
var contestInformation = await usLibs.contestInformation.fetchContestInformation("diverta2019-2");
alert(JSON.stringify(contestInformation));
モジュールバンドラを用いる場合
WebPack等のモジュールバンドラを用いる場合は、公開しているパッケージをプロジェクトにインストールすることをお勧めします。
インストールした後、webpack.config.js
でexternalの記述を以下のようにしてください。:
externals: {
"atcoder-userscript-libs": "usLibs",
"atcoder-userscript-libs/src/libs/data": "usLibs.data",
"atcoder-userscript-libs/src/libs/rating": "usLibs.rating",
"atcoder-userscript-libs/src/libs/global": "usLibs.global",
"atcoder-userscript-libs/src/libs/contestInformation": "usLibs.contestInformation"
}
そうすることで依存関係の中にuserscript-libsを取り込め、
import { fetchContestInformation } from "atcoder-userscript-libs/src/libs/contestInformation";
var contestInformation = await fetchContestInformation("diverta2019-2");
alert(JSON.stringify(contestInformation));
と書けるようになります。