// ==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;
}
})();