您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
AtCoderのページ上で動作するスクリプト用のライブラリです。
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/386712/711405/atcoder-userscript-libs.js
- usLibs =
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
- /******/ }
- /******/ };
- /******/
- /******/ // define __esModule on exports
- /******/ __webpack_require__.r = function(exports) {
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
- /******/ }
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
- /******/ };
- /******/
- /******/ // create a fake namespace object
- /******/ // mode & 1: value is a module id, require it
- /******/ // mode & 2: merge all properties of value into the ns
- /******/ // mode & 4: return value when already ns object
- /******/ // mode & 8|1: behave like require
- /******/ __webpack_require__.t = function(value, mode) {
- /******/ if(mode & 1) value = __webpack_require__(value);
- /******/ if(mode & 8) return value;
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
- /******/ var ns = Object.create(null);
- /******/ __webpack_require__.r(ns);
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
- /******/ return ns;
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "";
- /******/
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 23);
- /******/ })
- /************************************************************************/
- /******/ ([
- /* 0 */
- /***/ (function(module, exports) {
- module.exports = moment;
- /***/ }),
- /* 1 */
- /***/ (function(module, exports) {
- module.exports = jQuery;
- /***/ }),
- /* 2 */
- /***/ (function(module, exports) {
- module.exports = has;
- /***/ }),
- /* 3 */
- /***/ (function(module, exports) {
- module.exports = arrayToSet;
- /***/ }),
- /* 4 */
- /***/ (function(module, exports) {
- module.exports = setToArray;
- /***/ }),
- /* 5 */
- /***/ (function(module, exports) {
- module.exports = setCookie;
- /***/ }),
- /* 6 */
- /***/ (function(module, exports) {
- module.exports = getCookie;
- /***/ }),
- /* 7 */
- /***/ (function(module, exports) {
- module.exports = getCookieBool;
- /***/ }),
- /* 8 */
- /***/ (function(module, exports) {
- module.exports = delCookie;
- /***/ }),
- /* 9 */
- /***/ (function(module, exports) {
- module.exports = setLS;
- /***/ }),
- /* 10 */
- /***/ (function(module, exports) {
- module.exports = getLS;
- /***/ }),
- /* 11 */
- /***/ (function(module, exports) {
- module.exports = delLS;
- /***/ }),
- /* 12 */
- /***/ (function(module, exports) {
- module.exports = getServerTime;
- /***/ }),
- /* 13 */
- /***/ (function(module, exports) {
- module.exports = rand;
- /***/ }),
- /* 14 */
- /***/ (function(module, exports) {
- module.exports = copy;
- /***/ }),
- /* 15 */
- /***/ (function(module, exports) {
- module.exports = storeFavs;
- /***/ }),
- /* 16 */
- /***/ (function(module, exports) {
- module.exports = reloadFavs;
- /***/ }),
- /* 17 */
- /***/ (function(module, exports) {
- module.exports = toggleFav;
- /***/ }),
- /* 18 */
- /***/ (function(module, exports) {
- module.exports = LANG;
- /***/ }),
- /* 19 */
- /***/ (function(module, exports) {
- module.exports = userScreenName;
- /***/ }),
- /* 20 */
- /***/ (function(module, exports) {
- module.exports = (typeof contestScreenName !== "undefined" ? contestScreenName : null);
- /***/ }),
- /* 21 */
- /***/ (function(module, exports) {
- module.exports = (typeof startTime !== "undefined" ? startTime : null);
- /***/ }),
- /* 22 */
- /***/ (function(module, exports) {
- module.exports = (typeof endTime !== "undefined" ? endTime : null);
- /***/ }),
- /* 23 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- var rating_namespaceObject = {};
- __webpack_require__.r(rating_namespaceObject);
- __webpack_require__.d(rating_namespaceObject, "calcRatingFromHistory", function() { return calcRatingFromHistory; });
- __webpack_require__.d(rating_namespaceObject, "calcRatingFromLast", function() { return calcRatingFromLast; });
- __webpack_require__.d(rating_namespaceObject, "positivizeRating", function() { return positivizeRating; });
- __webpack_require__.d(rating_namespaceObject, "unpositivizeRating", function() { return unpositivizeRating; });
- __webpack_require__.d(rating_namespaceObject, "calcRequiredPerformance", function() { return calcRequiredPerformance; });
- __webpack_require__.d(rating_namespaceObject, "colorBounds", function() { return colorBounds; });
- __webpack_require__.d(rating_namespaceObject, "colorNames", function() { return colorNames; });
- __webpack_require__.d(rating_namespaceObject, "getColor", function() { return getColor; });
- var global_namespaceObject = {};
- __webpack_require__.r(global_namespaceObject);
- __webpack_require__.d(global_namespaceObject, "has", function() { return external_has_default.a; });
- __webpack_require__.d(global_namespaceObject, "arrayToSet", function() { return external_arrayToSet_default.a; });
- __webpack_require__.d(global_namespaceObject, "setToArray", function() { return external_setToArray_default.a; });
- __webpack_require__.d(global_namespaceObject, "setCookie", function() { return external_setCookie_default.a; });
- __webpack_require__.d(global_namespaceObject, "getCookie", function() { return external_getCookie_default.a; });
- __webpack_require__.d(global_namespaceObject, "getCookieBool", function() { return external_getCookieBool_default.a; });
- __webpack_require__.d(global_namespaceObject, "delCookie", function() { return external_delCookie_default.a; });
- __webpack_require__.d(global_namespaceObject, "setLS", function() { return external_setLS_default.a; });
- __webpack_require__.d(global_namespaceObject, "getLS", function() { return external_getLS_default.a; });
- __webpack_require__.d(global_namespaceObject, "delLS", function() { return external_delLS_default.a; });
- __webpack_require__.d(global_namespaceObject, "getServerTime", function() { return external_getServerTime_default.a; });
- __webpack_require__.d(global_namespaceObject, "rand", function() { return external_rand_default.a; });
- __webpack_require__.d(global_namespaceObject, "copy", function() { return external_copy_default.a; });
- __webpack_require__.d(global_namespaceObject, "storeFavs", function() { return external_storeFavs_default.a; });
- __webpack_require__.d(global_namespaceObject, "reloadFavs", function() { return external_reloadFavs_default.a; });
- __webpack_require__.d(global_namespaceObject, "toggleFav", function() { return external_toggleFav_default.a; });
- __webpack_require__.d(global_namespaceObject, "LANG", function() { return external_LANG_default.a; });
- __webpack_require__.d(global_namespaceObject, "userScreenName", function() { return external_userScreenName_default.a; });
- __webpack_require__.d(global_namespaceObject, "contestScreenName", function() { return external_typeof_contestScreenName_undefined_contestScreenName_null_default.a; });
- __webpack_require__.d(global_namespaceObject, "startTime", function() { return external_typeof_startTime_undefined_startTime_null_default.a; });
- __webpack_require__.d(global_namespaceObject, "endTime", function() { return external_typeof_endTime_undefined_endTime_null_default.a; });
- var data_namespaceObject = {};
- __webpack_require__.r(data_namespaceObject);
- __webpack_require__.d(data_namespaceObject, "getStandingsData", function() { return getStandingsData; });
- __webpack_require__.d(data_namespaceObject, "getAPerfsData", function() { return getAPerfsData; });
- __webpack_require__.d(data_namespaceObject, "getResultsData", function() { return getResultsData; });
- __webpack_require__.d(data_namespaceObject, "getHistoryData", function() { return getHistoryData; });
- __webpack_require__.d(data_namespaceObject, "getMyHistoryData", function() { return getMyHistoryData; });
- __webpack_require__.d(data_namespaceObject, "getPerformanceHistories", function() { return getPerformanceHistories; });
- var contestInformation_namespaceObject = {};
- __webpack_require__.r(contestInformation_namespaceObject);
- __webpack_require__.d(contestInformation_namespaceObject, "contestInformation", function() { return contestInformation; });
- // CONCATENATED MODULE: ./src/libs/rating.js
- //Copyright © 2017 koba-e964.
- //from : https://github.com/koba-e964/atcoder-rating-estimator
- const finf = bigf(400);
- function bigf(n) {
- let numerator = 1.0;
- let denominator = 1.0;
- for (let i = 0; i < n; ++i) {
- numerator *= 0.81;
- denominator *= 0.9;
- }
- numerator = (1 - numerator) * 0.81 / 0.19;
- denominator = (1 - denominator) * 0.9 / 0.1;
- return Math.sqrt(numerator) / denominator;
- }
- function f(n) {
- return (bigf(n) - finf) / (bigf(1) - finf) * 1200.0;
- }
- /**
- * calculate unpositivized rating from performance history
- * @param {Number[]} [history] performance history
- * @returns {Number} unpositivized rating
- */
- function calcRatingFromHistory(history) {
- let n = history.length;
- let numerator = 0.0;
- let denominator = 0.0;
- for (let i = n - 1; i >= 0; --i) {
- numerator *= 0.9;
- numerator += 0.9 * Math.pow(2, history[i] / 800.0);
- denominator *= 0.9;
- denominator += 0.9;
- }
- return Math.log2(numerator / denominator) * 800.0 - f(n);
- }
- /**
- * calculate unpositivized rating from last state
- * @param {Number} [last] last unpositivized rating
- * @param {Number} [perf] performance
- * @param {Number} [ratedMatches] count of participated rated contest
- * @returns {number} estimated unpositivized rating
- */
- function calcRatingFromLast(last, perf, ratedMatches) {
- if (ratedMatches === 0) return perf - 1200;
- last += f(ratedMatches);
- const weight = 9 - 9 * 0.9 ** ratedMatches;
- const numerator = weight * (2 ** (last / 800.0)) + 2 ** (perf / 800.0);
- const denominator = 1 + weight;
- return Math.log2(numerator / denominator) * 800.0 - f(ratedMatches + 1);
- }
- /**
- * (-inf, inf) -> (0, inf)
- * @param {Number} [rating] unpositivized rating
- * @returns {number} positivized rating
- */
- function positivizeRating(rating) {
- if (rating >= 400.0) {
- return rating;
- }
- return 400.0 * Math.exp((rating - 400.0) / 400.0);
- }
- /**
- * (0, inf) -> (-inf, inf)
- * @param {Number} [rating] positivized rating
- * @returns {number} unpositivized rating
- */
- function unpositivizeRating(rating) {
- if (rating >= 400.0) {
- return rating;
- }
- return 400.0 + 400.0 * Math.log(rating / 400.0);
- }
- /**
- * calculate the performance required to reach a target rate
- * @param {Number} [targetRating] targeted unpositivized rating
- * @param {Number[]} [history] performance history
- * @returns {number} performance
- */
- function calcRequiredPerformance(targetRating, history) {
- let upper = 10000.0;
- let lower = -10000.0;
- for (let i = 0; i < 100; ++i) {
- const mid = (lower + upper) / 2;
- const rating = calcRatingFromHistory([mid].concat(history));
- if (targetRating <= rating) upper = mid;
- else lower = mid;
- }
- return lower;
- }
- const colorBounds = {
- "gray": 0,
- "brown": 400,
- "green": 800,
- "cyan": 1200,
- "blue": 1600,
- "yellow": 2000,
- "orange": 2400,
- "red": 2800
- };
- const colorNames = ["unrated", "gray", "brown", "green", "cyan", "blue", "yellow", "orange", "red"];
- function getColor(rating) {
- let colorIndex = rating > 0 ? Math.min(Math.floor(rating / 400) + 1, 8) : 0;
- return colorNames[colorIndex];
- }
- // EXTERNAL MODULE: external "jQuery"
- var external_jQuery_ = __webpack_require__(1);
- // EXTERNAL MODULE: external "moment"
- var external_moment_ = __webpack_require__(0);
- var external_moment_default = /*#__PURE__*/__webpack_require__.n(external_moment_);
- // EXTERNAL MODULE: external "has"
- var external_has_ = __webpack_require__(2);
- var external_has_default = /*#__PURE__*/__webpack_require__.n(external_has_);
- // EXTERNAL MODULE: external "arrayToSet"
- var external_arrayToSet_ = __webpack_require__(3);
- var external_arrayToSet_default = /*#__PURE__*/__webpack_require__.n(external_arrayToSet_);
- // EXTERNAL MODULE: external "setToArray"
- var external_setToArray_ = __webpack_require__(4);
- var external_setToArray_default = /*#__PURE__*/__webpack_require__.n(external_setToArray_);
- // EXTERNAL MODULE: external "setCookie"
- var external_setCookie_ = __webpack_require__(5);
- var external_setCookie_default = /*#__PURE__*/__webpack_require__.n(external_setCookie_);
- // EXTERNAL MODULE: external "getCookie"
- var external_getCookie_ = __webpack_require__(6);
- var external_getCookie_default = /*#__PURE__*/__webpack_require__.n(external_getCookie_);
- // EXTERNAL MODULE: external "getCookieBool"
- var external_getCookieBool_ = __webpack_require__(7);
- var external_getCookieBool_default = /*#__PURE__*/__webpack_require__.n(external_getCookieBool_);
- // EXTERNAL MODULE: external "delCookie"
- var external_delCookie_ = __webpack_require__(8);
- var external_delCookie_default = /*#__PURE__*/__webpack_require__.n(external_delCookie_);
- // EXTERNAL MODULE: external "setLS"
- var external_setLS_ = __webpack_require__(9);
- var external_setLS_default = /*#__PURE__*/__webpack_require__.n(external_setLS_);
- // EXTERNAL MODULE: external "getLS"
- var external_getLS_ = __webpack_require__(10);
- var external_getLS_default = /*#__PURE__*/__webpack_require__.n(external_getLS_);
- // EXTERNAL MODULE: external "delLS"
- var external_delLS_ = __webpack_require__(11);
- var external_delLS_default = /*#__PURE__*/__webpack_require__.n(external_delLS_);
- // EXTERNAL MODULE: external "getServerTime"
- var external_getServerTime_ = __webpack_require__(12);
- var external_getServerTime_default = /*#__PURE__*/__webpack_require__.n(external_getServerTime_);
- // EXTERNAL MODULE: external "rand"
- var external_rand_ = __webpack_require__(13);
- var external_rand_default = /*#__PURE__*/__webpack_require__.n(external_rand_);
- // EXTERNAL MODULE: external "copy"
- var external_copy_ = __webpack_require__(14);
- var external_copy_default = /*#__PURE__*/__webpack_require__.n(external_copy_);
- // EXTERNAL MODULE: external "storeFavs"
- var external_storeFavs_ = __webpack_require__(15);
- var external_storeFavs_default = /*#__PURE__*/__webpack_require__.n(external_storeFavs_);
- // EXTERNAL MODULE: external "reloadFavs"
- var external_reloadFavs_ = __webpack_require__(16);
- var external_reloadFavs_default = /*#__PURE__*/__webpack_require__.n(external_reloadFavs_);
- // EXTERNAL MODULE: external "toggleFav"
- var external_toggleFav_ = __webpack_require__(17);
- var external_toggleFav_default = /*#__PURE__*/__webpack_require__.n(external_toggleFav_);
- // EXTERNAL MODULE: external "LANG"
- var external_LANG_ = __webpack_require__(18);
- var external_LANG_default = /*#__PURE__*/__webpack_require__.n(external_LANG_);
- // EXTERNAL MODULE: external "userScreenName"
- var external_userScreenName_ = __webpack_require__(19);
- var external_userScreenName_default = /*#__PURE__*/__webpack_require__.n(external_userScreenName_);
- // EXTERNAL MODULE: external "(typeof contestScreenName !== \"undefined\" ? contestScreenName : null)"
- var external_typeof_contestScreenName_undefined_contestScreenName_null_ = __webpack_require__(20);
- var external_typeof_contestScreenName_undefined_contestScreenName_null_default = /*#__PURE__*/__webpack_require__.n(external_typeof_contestScreenName_undefined_contestScreenName_null_);
- // EXTERNAL MODULE: external "(typeof startTime !== \"undefined\" ? startTime : null)"
- var external_typeof_startTime_undefined_startTime_null_ = __webpack_require__(21);
- var external_typeof_startTime_undefined_startTime_null_default = /*#__PURE__*/__webpack_require__.n(external_typeof_startTime_undefined_startTime_null_);
- // EXTERNAL MODULE: external "(typeof endTime !== \"undefined\" ? endTime : null)"
- var external_typeof_endTime_undefined_endTime_null_ = __webpack_require__(22);
- var external_typeof_endTime_undefined_endTime_null_default = /*#__PURE__*/__webpack_require__.n(external_typeof_endTime_undefined_endTime_null_);
- // CONCATENATED MODULE: ./src/libs/global.js
- //utils.js
- //global variable
- //only contest page
- // CONCATENATED MODULE: ./src/libs/data.js
- /**
- * @typedef {{IsRated: boolean, Place: number, OldRating: number, NewRating: number, Performance: number, InnerPerformance: number, ContestScreenName: string, ContestName: string, EndTime : string}} UserResult
- * @typedef {{Assignment: string, TaskName: string, TaskScreenName: string}} TaskInfo
- * @typedef {{Count: number, Failure: number, Penalty: number, Score: number, Elapsed: number, Status: number, Pending: boolean, Frozen: boolean, Additional: null}} StandingResult
- * @typedef {{Rank: number, Additional: null, UserName: string, UserScreenName: string, UserIsDeleted: boolean, Affiliation: string, Country: string, Rating: number, OldRating: number, IsRated: boolean, Competitions: number, TaskResults: StandingResult[], TotalResult: StandingResult}} StandingData
- * @typedef {{Fixed: boolean, AdditionalColumns:null, TaskInfo: TaskInfo[], StandingsData: StandingData[]}} Standings
- */
- /**
- *
- * @param contestScreenName
- * @return {Promise<Standings>}
- */
- async function getStandingsData(contestScreenName) {
- return await external_jQuery_["ajax"](`https://atcoder.jp/contests/${contestScreenName}/standings/json`);
- }
- /**
- * コンテストの結果一覧を取得する
- * @param {string} [contestScreenName] コンテスト名
- * @return {Promise<Object.<string, number>>}
- */
- async function getAPerfsData(contestScreenName) {
- return await external_jQuery_["ajax"](`https://ac-predictor.azurewebsites.net/api/aperfs/${contestScreenName}`);
- }
- /**
- * コンテストの結果一覧を取得する
- * @param {string} [contestScreenName] コンテスト名
- * @return {Promise<UserResult[]>}
- */
- async function getResultsData(contestScreenName) {
- return await external_jQuery_["ajax"](`https://atcoder.jp/contests/${contestScreenName}/results/json`);
- }
- /**
- * ユーザーのコンテスト参加履歴を取得する
- * @param {string} [userScreenName] ユーザー名
- * @return {Promise<UserResult[]>}
- */
- async function getHistoryData(userScreenName) {
- return await external_jQuery_["ajax"](`https://atcoder.jp/users/${userScreenName}/history/json`);
- }
- /**
- * @type {UserResult[]}
- */
- let myHistoryData = null;
- /**
- * 自分のパフォーマンス履歴を取得
- * @return {Promise<UserResult[]>} パフォーマンス履歴を返すpromise
- */
- async function getMyHistoryData() {
- return new Promise((resolve) => {
- if (myHistoryData || !external_userScreenName_default.a) resolve(myHistoryData);
- getHistoryData(external_userScreenName_default.a).then((data) => {
- resolve(myHistoryData = data);
- })
- });
- }
- /**
- * ユーザーのパフォーマンス履歴を時間降順で取得
- * @param {UserResult[]} [history] ユーザーのコンテスト結果履歴
- * @return {number[]}
- */
- function getPerformanceHistories(history) {
- let onlyRated = history.filter(x => x.IsRated);
- onlyRated.sort((a, b) => external_moment_default()(b.EndTime) - external_moment_default()(a.EndTime));
- return onlyRated.map(x => x.Performance);
- }
- // CONCATENATED MODULE: ./src/libs/contestInformation.js
- class ContestInformation{
- /**
- * @param {number[]} [participatableRange]
- * @param {number[]} [ratedRange]
- * @param {number} [penalty]
- */
- constructor(participatableRange, ratedRange, penalty){
- this.ParticipatableRange = participatableRange;
- this.RatedRange = ratedRange;
- this.Penalty = penalty;
- }
- }
- /**
- * トップページに表示されるコンテスト情報を取得
- * @param {string} [contestScreenName] コンテスト名
- * @return {Promise<ContestInformation>} コンテスト情報を返すPromise
- */
- async function contestInformation(contestScreenName) {
- return new Promise(async (resolve) => {
- const topPageDom = await $.ajax(`https://atcoder.jp/contests/${contestScreenName}`).then(x => new DOMParser().parseFromString(x, "text/html"));
- const dataParagraph = topPageDom.getElementsByClassName("small")[0];
- const data = Array.from(dataParagraph.children).map(x => x.innerText.split(':')[1].trim());
- resolve(new ContestInformation(parseRangeString(data[0]), parseRangeString(data[1]), parseDurationString(data[2])));
- });
- /**
- * 範囲を表す文字列をパースする
- * @param {string} [s] 範囲を表す文字列
- * @return {number[]} 範囲を表す配列
- */
- function parseRangeString(s){
- if (s === 'All') return [0, Infinity];
- if (s.indexOf('~') === -1) return [0, -1];
- let res = s.split('~').map(x => parseInt(x.trim()));
- if (isNaN(res[0])) res[0] = 0;
- if (isNaN(res[1])) res[1] = Infinity;
- return res;
- }
- /**
- * 期間を表す文字列をパースする
- * @param {string} [s] 期間を表す文字列
- * @return {number} パース結果(ミリ秒)
- */
- function parseDurationString(s) {
- if (s === "None" || s === "なし") return 0;
- if (/(\d+[^\d]+)/.test(s)) return NaN;
- const dic = {ヶ月: "month", 日: "day", 時間: "hour", 分: "minute", 秒: "second"};
- let res = {};
- s.match(/(\d+[^\d]+)/g).forEach(x => {
- const trimmed = x.trim(' ','s');
- const num = trimmed.match(/\d+/)[0];
- const unit = trimmed.match(/[^\d]+/)[0];
- const convertedUnit = dic[unit]||unit;
- res[convertedUnit] = num;
- });
- return external_moment_["duration"](res).asMilliseconds();
- }
- }
- // CONCATENATED MODULE: ./src/main.js
- /* concated harmony reexport rating */__webpack_require__.d(__webpack_exports__, "rating", function() { return rating_namespaceObject; });
- /* concated harmony reexport data */__webpack_require__.d(__webpack_exports__, "data", function() { return data_namespaceObject; });
- /* concated harmony reexport contestInformation */__webpack_require__.d(__webpack_exports__, "contestInformation", function() { return contestInformation_namespaceObject; });
- /* concated harmony reexport global */__webpack_require__.d(__webpack_exports__, "global", function() { return global_namespaceObject; });
- /***/ })
- /******/ ]);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址