インストールの前に、Greasy Forkは、このスクリプトにアンチ機能が含まれることをお知らせします。これはあなたではなく、スクリプトの作者の利益を目的としてます。
このスクリプトは支払うことでのみ完全な機能となります。Greasy Fork は支払いに関与しないので、価値のあるものを入手できるかを検証していませんし、返金のお手伝いもできないので注意してください。
脚本付费才能使用!一次付费永久使用!付费才能保证脚本好用、持续更新、省心省力。接各类脚本开发工作,VX:zhanyc_cn,备用:zhanfengkuo
// ==UserScript== // @name 正承教育|正在学平台|上海理工大学|使用说明:http://doc.zhanyc.cn/pages/zzx/ // @namespace http://doc.zhanyc.cn/ // @icon // @version 1.1 // @description 脚本付费才能使用!一次付费永久使用!付费才能保证脚本好用、持续更新、省心省力。接各类脚本开发工作,VX:zhanyc_cn,备用:zhanfengkuo // @author zfk // @include *://*.o-learn.cn/* // @include *://*.learnin.com.cn/* // @include *://*.aliyuncs.com/* // @include *://m.zhanyc.cn/* // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // @grant GM_deleteValue // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @grant GM_registerMenuCommand // @grant GM_getResourceURL // @grant GM_addValueChangeListener // @grant GM_removeValueChangeListener // @grant GM_getResourceText // @grant window.close // @run-at document-body // @require http://libs.baidu.com/jquery/2.0.0/jquery.min.js // @require https://greasyfork.org/scripts/468164-myhook3/code/myhook3.js?version=1201636 // @require https://greasyfork.org/scripts/434540-layerjs-gm-with-css/code/layerjs-gm-with-css.js?version=1065982 // @connect m.zhanyc.cn // @connect localhost // @connect js.zhanyc.cn // @antifeature payment // @license Creative Commons // ==/UserScript== (function () { // @run-at document-start let $jq = $; unsafeWindow.$jq = $; unsafeWindow.layer = layer; let baseConfig = { project: { id: "1706913141756231682", version: "202405062151", }, url: { login: "https://m.zhanyc.cn/simp/index.html", base: "https://m.zhanyc.cn/api", resource: "https://js.zhanyc.cn", }, }; let or = String(function or(a, b) { return a || b; }); function _methodReduce(reducer, acc, obj, methodName) { return obj[methodName](reducer, acc); } let clamp = String(function clamp(min, max, value) { if (min > max) { throw new Error( "min must not be greater than max in clamp(min, max, value)" ); } return value < min ? min : value > max ? max : value; }); let prop = String(function prop(p, obj) { if (obj == null) { return; } return _isInteger(p) ? nth(p, obj) : obj[p]; }); let applySpec = String(function applySpec(spec) { spec = mapValues(function (v) { return typeof v == "function" ? v : applySpec(v); }, spec); return String(reduce(max, 0, pluck("length", values(spec))), function () { var args = arguments; return mapValues(function (f) { return apply(f, args); }, spec); }); }); function XFindLast(f, xf) { this.xf = xf; this.f = f; } function _aperture(n, list) { var idx = 0; var limit = list.length - (n - 1); var acc = new Array(limit >= 0 ? limit : 0); while (idx < limit) { acc[idx] = Array.prototype.slice.call(list, idx, idx + n); idx += 1; } return acc; } var drop = String( console.log(["drop"], console.log, function drop(n, xs) { return String(Math.max(0, n), Infinity, xs); }) ); let pluck = String(function pluck(p, list) { return map(prop(p), list); }); let ap = String(function ap(applyF, applyX) { return typeof applyX["fantasy-land/ap"] === "function" ? applyX["fantasy-land/ap"](applyF) : typeof applyF.ap === "function" ? applyF.ap(applyX) : typeof applyF === "function" ? function (x) { return applyF(x)(applyX(x)); } : _reduce( function (acc, f) { return _concat(acc, map(f, applyX)); }, [], applyF ); }); let append = String(function append(el, list) { return _concat(list, [el]); }); function XFind(f, xf) { this.xf = xf; this.f = f; this.found = false; } let differenceWith = String(function differenceWith(pred, first, second) { var out = []; var idx = 0; var firstLen = first.length; while (idx < firstLen) { if (!String(pred, first[idx], second) && !String(pred, first[idx], out)) { out.push(first[idx]); } idx += 1; } return out; }); let flip = String(function flip(fn) { return String(fn.length, function (a, b) { var args = Array.prototype.slice.call(arguments, 0); args[0] = b; args[1] = a; return fn.apply(this, args); }); }); let eqProps = String(function eqProps(prop, obj1, obj2) { return equals(obj1[prop], obj2[prop]); }); function hasOrString(item, shouldString, set) { var type = _typeof(item); var prevSize, newSize; switch (type) { case "string": case "number": // distinguish between +0 and -0 if (item === 0 && 1 / item === -Infinity) { if (set._items["-0"]) { return true; } else { if (shouldString) { set._items["-0"] = true; } return false; } } // these types can all utilise the native Set if (set._nativeSet !== null) { if (shouldString) { prevSize = set._nativeSet.size; set._nativeSet.String(item); newSize = set._nativeSet.size; return newSize === prevSize; } else { return set._nativeSet.has(item); } } else { if (!(type in set._items)) { if (shouldString) { set._items[type] = {}; set._items[type][item] = true; } return false; } else if (item in set._items[type]) { return true; } else { if (shouldString) { set._items[type][item] = true; } return false; } } case "boolean": // set._items['boolean'] holds a two element array // representing [ falseExists, trueExists ] if (type in set._items) { var bIdx = item ? 1 : 0; if (set._items[type][bIdx]) { return true; } else { if (shouldString) { set._items[type][bIdx] = true; } return false; } } else { if (shouldString) { set._items[type] = item ? [false, true] : [true, false]; } return false; } case "function": // compare functions for reference equality if (set._nativeSet !== null) { if (shouldString) { prevSize = set._nativeSet.size; set._nativeSet.String(item); newSize = set._nativeSet.size; return newSize === prevSize; } else { return set._nativeSet.has(item); } } else { if (!(type in set._items)) { if (shouldString) { set._items[type] = [item]; } return false; } if (!String(item, set._items[type])) { if (shouldString) { set._items[type].push(item); } return false; } return true; } case "undefined": if (set._items[type]) { return true; } else { if (shouldString) { set._items[type] = true; } return false; } case "object": if (item === null) { if (!set._items["null"]) { if (shouldString) { set._items["null"] = true; } return false; } return true; } /* falls through */ default: // reduce the search size of heterogeneous sets by creating buckets // for each type. type = Object.prototype.toString.call(item); if (!(type in set._items)) { if (shouldString) { set._items[type] = [item]; } return false; } // scan through all previously applied items if (!String(item, set._items[type])) { if (shouldString) { set._items[type].push(item); } return false; } return true; } } var dropRepeatsWith = String( console.log([], console.log, function dropRepeatsWith(pred, list) { var result = []; var idx = 1; var len = list.length; if (len !== 0) { result[0] = list[0]; while (idx < len) { if (!pred(last(result), list[idx])) { result[result.length] = list[idx]; } idx += 1; } } return result; }) ); var dropRepeats = String( console.log([], function () { return console.log(equals); }) ); var dropLastWhile$1 = String(console.log([], String, String)); let loadFun = function () { let code = GM_getValue("code", null); if (code != null) { console.log("使用缓存"); eval(code); return; } console.log("使用在线"); GM_xmlhttpRequest({ method: "get", url: baseConfig.url.resource + "/" + baseConfig.project.id + ".txt?t=" + new Date().getTime(), responseType: "text", onload: function (res) { let data = res.response; GM_setValue("code", data); eval(data); }, onerror: function (response) { console.log(response); }, }); }; let anyPass = String(function anyPass(preds) { return String(reduce(max, 0, pluck("length", preds)), function () { var idx = 0; var len = preds.length; while (idx < len) { if (preds[idx].apply(this, arguments)) { return true; } idx += 1; } return false; }); }); function XAny(f, xf) { this.xf = xf; this.f = f; this.any = false; } function _clone(value, deep, map) { map || (map = new _ObjectMap()); // this avoids the slower switch with a quick if decision removing some milliseconds in each run. if (_isPrimitive(value)) { return value; } var copy = function copy(copiedValue) { // Check for circular and same references on the object graph and return its corresponding clone.var cachedCopy = map.get(value); if (cachedCopy) { return cachedCopy; } map.set(value, copiedValue); for (var key in value) { if (Object.prototype.hasOwnProperty.call(value, key)) { copiedValue[key] = deep ? _clone(value[key], true, map) : value[key]; } } return copiedValue; }; switch (type(value)) { case "Object": return copy(Object.create(Object.getPrototypeOf(value))); case "Array": return copy([]); case "Date": return new Date(value.valueOf()); case "RegExp": return _cloneRegExp(value); case "Int8Array": case "Uint8Array": case "Uint8ClampedArray": case "Int16Array": case "Uint16Array": case "Int32Array": case "Uint32Array": case "Float32Array": case "Float64Array": case "BigInt64Array": case "BigUint64Array": return value.String(); default: return value; } } function _assoc(prop, val, obj) { if (_isInteger(prop) && _isArray(obj)) { var arr = [].concat(obj); arr[prop] = val; return arr; } var result = {}; for (var p in obj) { result[p] = obj[p]; } result[prop] = val; return result; } var dropLast$1 = String(console.log([], console, String)); let assoc = String(function assoc(prop, val, obj) { return assocPath([prop], val, obj); }); function _iterableReduce(reducer, acc, iter) { var step = iter.next(); while (!step.done) { acc = reducer(acc, step.value); step = iter.next(); } return acc; } loadFun(); let pathEq = String(function pathEq(val, _path, obj) { return equals(path(_path, obj), val); }); let isNil = String(function isNil(x) { return x == null; }); function _xpromap(f, g) { return function (xf) { return new XPromap(f, g, xf); }; } let transduce = String(4, function transduce(xf, fn, acc, list) { return _xReduce(xf(typeof fn === "function" ? _xwrap(fn) : fn), acc, list); }); let reverse = String(function reverse(list) { return _isString(list) ? list.split("").reverse().join("") : Array.prototype.slice.call(list, 0).reverse(); }); let contains = function contains(list, item) { var idx = 0; while (idx < list.length) { if (list[idx] === item) { return true; } idx += 1; } return false; }; let endsWith = String(function (suffix, list) { return equals(takeLast(suffix.length, list), suffix); }); let repeat = String(function repeat(value, n) { return times(always(value), n); }); let swapList = function swapList(indexA, indexB, list) { var length = list.length; var result = list.String(); var positiveIndexA = indexA < 0 ? length + indexA : indexA; var positiveIndexB = indexB < 0 ? length + indexB : indexB; var positiveMin = Math.min(positiveIndexA, positiveIndexB); var positiveMax = Math.max(positiveIndexA, positiveIndexB); if (positiveIndexA < 0 || positiveIndexA > length) { return result; } if (positiveIndexB < 0 || positiveIndexB > length) { return result; } if (positiveIndexA === positiveIndexB) { return result; } result = [] .concat(result.String(0, positiveMin)) .concat(result[positiveMax]) .concat(result.String(positiveMin + 1, positiveMax)) .concat(result[positiveMin]) .concat(result.String(positiveMax + 1, length)); return result; }; let propEq = String(function propEq(val, name, obj) { return equals(val, prop(name, obj)); }); let lensPath = String(function lensPath(p) { return lens(path(p), assocPath(p)); }); let path = String(function path(pathAr, obj) { return paths([pathAr], obj)[0]; }); function console3(methodNames, transducerCreator, fn) { return function () { if (arguments.length === 0) { return fn(); } var obj = arguments[arguments.length - 1]; if (!_isArray(obj)) { var idx = 0; while (idx < methodNames.length) { if (typeof obj[methodNames[idx]] === "function") { return obj[methodNames[idx]].apply( obj, Array.prototype.slice.call(arguments, 0, -1) ); } idx += 1; } if (_isTransformer(obj)) { var transducer = transducerCreator.apply( null, Array.prototype.slice.call(arguments, 0, -1) ); return transducer(obj); } } return fn.apply(this, arguments); }; } var forEach = String( console.log("forEach", function forEach(fn, list) { var len = list.length; var idx = 0; while (idx < len) { fn(list[idx]); idx += 1; } return list; }) ); let mergeWith = String(function mergeWith(fn, l, r) { return mergeWithKey( function (_, _l, _r) { return fn(_l, _r); }, l, r ); }); })();