atcoder-userscript-libs

AtCoderのページ上で動作するスクリプト用のライブラリです。

Questo script non dovrebbe essere installato direttamente. È una libreria per altri script da includere con la chiave // @require https://updategreasyfork.deno.dev/scripts/386712/816981/atcoder-userscript-libs.js

Autore
keymoon
Versione
0.0.1.20200616134938
Creato il
23/06/2019
Aggiornato il
16/06/2020
Dimensione
24 KB
Licenza
Non disponibile

概要

AtCoder上で動くUserScriptを補助するライブラリです。

ソースについて

このライブラリは複数ファイルを1つにまとめたものです。ソースの詳細はGitHubを参照してください。一行目以外同一のものをビルド可能なソースコードを公開しています。(一行目はグローバルへエクスポートするために改変を行っています。)

使い方

まず、UserScriptのHeaderに以下のような行を追加してください。

// @require https://gf.zukizuki.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));

と書けるようになります。