虽然作者懒得写描述,但是他至少记得添加过一个默认描述……
Dette script bør ikke installeres direkte. Det er et bibliotek, som andre scripts kan inkludere med metadirektivet // @require https://update.greasyfork.org/scripts/481658/1292161/ic2api.js
/* eslint-disable no-multi-spaces */ /* eslint-disable no-return-assign */ // ==UserScript== // @name ic2api // @namespace PY-DNG userscripts // @version 0.1 // @description 虽然作者懒得写描述,但是他至少记得添加过一个默认描述…… // @author PY-DNG // @license GPL-3.0-or-later // ==/UserScript== /* global LogLevel DoLog Err $ $All $CrE $AEL $$CrE addStyle detectDom destroyEvent copyProp copyProps parseArgs escJsStr replaceText getUrlArgv dl_browser dl_GM AsyncManager */ let IC2API = (function __MAIN__() { 'use strict'; return { phoneSeatReserve: { duration() { return get('ic-web/phoneSeatReserve/duration'); }, reserve(duration) { return post('ic-web/phoneSeatReserve/duration', JSON.stringify({ duration })); } }, seatMenu() { return get('ic-web/seatMenu'); }, reserve(roomIds, resvDates, sysKind) { return get('ic-web/reserve', { roomIds, resvDates, sysKind }); }, }; function get(url, params) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: 'GET', url: toAbsURL(url, params), headers: { 'Token': getToken() || '' }, responseType: 'json', onload: res => { const data = res.response; res.status === 200 && data.code === 0 ? resolve(data) : reject(data); }, onerror: err => { reject(err); } }); }); } function post(url, data) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: 'POST', url: toAbsURL(url), headers: { 'Token': getToken() || '' }, responseType: 'json', data, onload: res => { const data = res.response; res.status === 200 && data.code === 0 ? resolve(data) : reject(data); }, onerror: err => { reject(err); } }); }); } function getToken() { const storage = sessionStorage.getItem("userInfo"); const userInfo = storage ? JSON.parse(storage) : {} return userInfo.token; } function toAbsURL(pathname, searchOptions) { return new URL(pathname, `${location.protocol}//${location.host}`).href + (searchOptions ? `?${toSearch(searchOptions)}` : ''); } function toSearch(options) { return new URLSearchParams(options).toString() } })();