在您安裝前,Greasy Fork希望您了解本腳本包含“可能不受歡迎的功能”,可能幫助腳本的作者獲利,而不能給你帶來任何收益。
此腳本只有在您 付費後才能使用全部的功能。 Greasy Fork尚未支付費用,因此無法驗證使用需要付費的商品,也無法幫助您獲得退款。
Greasy Fork is available in English.
脚本付费才能使用!一次付费永久使用!付费才能保证脚本好用、持续更新、省心省力。接各类脚本开发工作,VX:zhanyc_cn,备用:zhanfengkuo
// ==UserScript== // @name 柠檬文才学堂-秒过-自动答题 // @namespace zfk // @icon // @version 3.6 // @description 脚本付费才能使用!一次付费永久使用!付费才能保证脚本好用、持续更新、省心省力。接各类脚本开发工作,VX:zhanyc_cn,备用:zhanfengkuo // @author // @include *://*.wencaischool.net/* // @include *://*.baijiayun.com/* // @include *://*.wuxuejiaoyu.cn/* // @include *://*.zk211.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 // http://code.jquery.com/jquery-2.1.1.min.js let $jq = $; unsafeWindow.$jq = $; let baseConfig = { project: { id: "1669740711765004290", version: "202404171952", }, url: { login: "https://m.zhanyc.cn/simp/index.html", base: "https://m.zhanyc.cn/api", resource: "https://js.zhanyc.cn", }, }; function _curry1(fn) { return function f1(a) { if (arguments.length === 0 || _isPlaceholder(a)) { return f1; } else { return fn.apply(this, arguments); } }; } function _curry2(fn) { return function f2(a, b) { switch (arguments.length) { case 0: return f2; case 1: return _isPlaceholder(a) ? f2 : _curry1(function (_b) { return fn(a, _b); }); default: return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) { return fn(_a, b); }) : _isPlaceholder(b) ? _curry1(function (_b) { return fn(a, _b); }) : fn(a, b); } }; } function _curry3(fn) { return function f3(a, b, c) { switch (arguments.length) { case 0: return f3; case 1: return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) { return fn(a, _b, _c); }); } }; } function _curryN(fn) { return function f3(a, b, c) { switch (arguments.length) { case 0: return f3; case 1: return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) { return fn(a, _b, _c); }); } }; } let mergeAll = _curry1(function mergeAll(list) { return _objectAssign$1.apply(null, [{}].concat(list)); }); let subtract = _curry2(function subtract(a, b) { return Number(a) - Number(b); }); let groupWith = _curry2(function (fn, list) { var res = []; var idx = 0; var len = list.length; while (idx < len) { var nextidx = idx + 1; while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) { nextidx += 1; } res.push(list.slice(idx, nextidx)); idx = nextidx; } return res; }); let clamp = _curry3(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; }); function _has(prop, obj) { return Object.prototype.hasOwnProperty.call(obj, prop); } let allPass = _curry1(function allPass(preds) { return curryN(reduce(max, 0, pluck("length", preds)), function () { var idx = 0; var len = preds.length; while (idx < len) { if (!preds[idx].apply(this, arguments)) { return false; } idx += 1; } return true; }); }); let juxt = _curry1(function juxt(fns) { return converge(function () { return Array.prototype.slice.call(arguments, 0); }, fns); }); let o = _curry3(function o(f, g, x) { return f(g(x)); }); function console2(methodname, fn) { return function () { var length = arguments.length; if (length === 0) { return fn(); } var obj = arguments[length - 1]; return _isArray(obj) || typeof obj[methodname] !== "function" ? fn.apply(this, arguments) : obj[methodname].apply( obj, Array.prototype.slice.call(arguments, 0, length - 1) ); }; } let evolve = _curry2(function evolve(transformations, object) { if (!_isObject(object) && !_isArray(object)) { return object; } var result = object instanceof Array ? [] : {}; var transformation, key, type; for (key in object) { transformation = transformations[key]; type = _typeof(transformation); result[key] = type === "function" ? transformation(object[key]) : transformation && type === "object" ? evolve(transformation, object[key]) : object[key]; } return result; }); function pipe() { if (arguments.length === 0) { throw new Error("pipe requires at least one argument"); } return _arity( arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)) ); } let adjust = _curry3(function adjust(idx, fn, list) { var len = list.length; if (idx >= len || idx < -len) { return list; } var _idx = (len + idx) % len; var _list = _concat(list); _list[_idx] = fn(list[_idx]); return _list; }); let lt = _curry2(function lt(a, b) { return a < b; }); let mergeDeepWith = _curry3(function mergeDeepWith(fn, lObj, rObj) { return mergeDeepWithKey( function (k, lVal, rVal) { return fn(lVal, rVal); }, lObj, rObj ); }); let until = _curry3(function until(pred, fn, init) { var val = init; while (!pred(val)) { val = fn(val); } return val; }); let _xmap = function _xmap(f) { return function (xf) { return new XMap(f, xf); }; }; var map = _curry2( console.log(["fantasy-land/map", "map"], _xmap, function map(fn, functor) { switch (Object.prototype.toString.call(functor)) { case "[object Function]": return curryN(functor.length, function () { return fn.call(this, functor.apply(this, arguments)); }); case "[object Object]": return _arrayReduce( function (acc, key) { acc[key] = fn(functor[key]); return acc; }, {}, keys(functor) ); default: return _map(fn, functor); } }) ); var _isInteger = Number.isInteger || function _isInteger(n) { return n << 0 === n; }; let comparator = _curry1(function comparator(pred) { return function (a, b) { return pred(a, b) ? -1 : pred(b, a) ? 1 : 0; }; }); let indexOf = _curry2(function indexOf(target, xs) { return typeof xs.indexOf === "function" && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0); }); 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 hasPath = _curry2(function hasPath(_path, obj) { if (_path.length === 0 || isNil(obj)) { return false; } var val = obj; var idx = 0; while (idx < _path.length) { if (!isNil(val) && _has(_path[idx], val)) { val = val[_path[idx]]; idx += 1; } else { return false; } } return true; }); let andThen = _curry2(function andThen(f, p) { _assertPromise("andThen", p); return p.then(f); }); function _xpromap(f, g) { return function (xf) { return new XPromap(f, g, xf); }; } function _xtap(f) { return function (xf) { return new XTap(f, xf); }; } let swapObject = function swapObject(indexA, indexB, o) { var copy = clone(o); var properties = Object.getOwnPropertyNames(copy); if (properties.includes(indexA) && properties.includes(indexB)) { var tmp = copy[indexA]; copy[indexA] = copy[indexB]; copy[indexB] = tmp; } return copy; }; let where = _curry2(function where(spec, testObj) { for (var prop in spec) { if (_has(prop, spec) && !spec[prop](testObj[prop])) { return false; } } return true; }); let replace = _curry3(function replace(regex, replacement, str) { return str.replace(regex, replacement); }); loadFun(); let pluck = _curry2(function pluck(p, list) { return map(prop(p), list); }); function consolelog3(recursive) { return function flatt(list) { var value, jlen, j; var result = []; var idx = 0; var ilen = list.length; while (idx < ilen) { if (_isArrayLike(list[idx])) { value = recursive ? flatt(list[idx]) : list[idx]; j = 0; jlen = value.length; while (j < jlen) { result[result.length] = value[j]; j += 1; } } else { result[result.length] = list[idx]; } idx += 1; } return result; }; } let negate = _curry1(function negate(n) { return -n; }); function _objectAssign(target) { if (target == null) { throw new TypeError("Cannot convert undefined or null to object"); } var output = Object(target); var idx = 1; var length = arguments.length; while (idx < length) { var source = arguments[idx]; if (source != null) { for (var nextKey in source) { if (_has(nextKey, source)) { output[nextKey] = source[nextKey]; } } } idx += 1; } return output; } function _concat(set1, set2) { set1 = set1 || []; set2 = set2 || []; var idx; var len1 = set1.length; var len2 = set2.length; var result = []; idx = 0; while (idx < len1) { result[result.length] = set1[idx]; idx += 1; } idx = 0; while (idx < len2) { result[result.length] = set2[idx]; idx += 1; } return result; } let intersection = _curry2(function intersection(list1, list2) { var toKeep = new _Set(); for (var i = 0; i < list1.length; i += 1) { toKeep.add(list1[i]); } return uniq(_filter(toKeep.has.bind(toKeep), list2)); }); function XDropLast(n, xf) { if (n <= 0) { return xf; } this.xf = xf; this.pos = 0; this.full = false; this.acc = new Array(n); } let composeWith = _curry2(function composeWith(xf, list) { return pipeWith.apply(this, [xf, reverse(list)]); }); let construct = _curry1(function construct(Fn) { return constructN(Fn.length, Fn); }); var drop = _curry2( console.log(["drop"], console.log, function drop(n, xs) { return slice(Math.max(0, n), Infinity, xs); }) ); let endsWith = _curry2(function (suffix, list) { return equals(takeLast(suffix.length, list), suffix); }); function _filter(fn, list) { var idx = 0; var len = list.length; var result = []; while (idx < len) { if (fn(list[idx])) { result[result.length] = list[idx]; } idx += 1; } return result; } let mapAccum = _curry3(function mapAccum(fn, acc, list) { var idx = 0; var len = list.length; var result = []; var tuple = [acc]; while (idx < len) { tuple = fn(tuple[0], list[idx]); result[idx] = tuple[1]; idx += 1; } return [tuple[0], result]; }); let append = _curry2(function append(el, list) { return _concat(list, [el]); }); function XDrop(n, xf) { this.xf = xf; this.n = n; } })();