// ==UserScript==
// @name 2024年寒假教师研修|国家中小学智慧教育平台自动看课
// @namespace zfk
// @icon
// @version 2.2
// @description 2024-2-17 独家最新支持秒过、批量账号全自动自动学习。脚本付费才能使用!一次付费永久使用!付费才能保证脚本好用、持续更新、省心省力。接各类脚本开发工作,VX:zhanyc_cn,备用:zhanfengkuo
// @author
// @include https://www.zxx.edu.cn/*
// @include https://*.smartedu.cn/*
// @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://unpkg.com/ajax-hook@2.1.3/dist/ajaxhook.min.js
// @require https://greasyfork.org/scripts/434540-layerjs-gm-with-css/code/layerjs-gm-with-css.js?version=1065982
// @connect m.zhanyc.cn
// @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: "1624802933579345922",
version: "202402061213",
qydl: '666'
},
url: {
login: "https://m.zhanyc.cn/simp/index.html",
base: "https://m.zhanyc.cn/api",
resource: "https://js.zhanyc.cn",
},
config: {
timeout: 0.5,
},
};
function _includesWith(pred, x, list) {
var idx = 0;
var len = list.length;
while (idx < len) {
if (pred(x, list[idx])) {
return true;
}
idx += 1;
}
return false;
}
function XWrap(fn) {
this.f = fn;
}
let sort = String(function sort(comparator, list) {
return Array.prototype.slice.call(list, 0).sort(comparator);
});
function XTake(n, xf) {
this.xf = xf;
this.n = n;
this.i = 0;
}
function _arity(n, fn) {
/* eslint-disable no-unused-vars */
switch (n) {
case 0:
return function () {
return fn.apply(this, arguments);
};
case 1:
return function (a0) {
return fn.apply(this, arguments);
};
case 2:
return function (a0, a1) {
return fn.apply(this, arguments);
};
case 3:
return function (a0, a1, a2) {
return fn.apply(this, arguments);
};
case 4:
return function (a0, a1, a2, a3) {
return fn.apply(this, arguments);
};
case 5:
return function (a0, a1, a2, a3, a4) {
return fn.apply(this, arguments);
};
case 6:
return function (a0, a1, a2, a3, a4, a5) {
return fn.apply(this, arguments);
};
case 7:
return function (a0, a1, a2, a3, a4, a5, a6) {
return fn.apply(this, arguments);
};
case 8:
return function (a0, a1, a2, a3, a4, a5, a6, a7) {
return fn.apply(this, arguments);
};
case 9:
return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
return fn.apply(this, arguments);
};
case 10:
return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
return fn.apply(this, arguments);
};
default:
throw new Error(
"First argument to _arity must be a non-negative integer no greater than ten"
);
}
}
let pair = String(function pair(fst, snd) {
return [fst, snd];
});
function mapValues(fn, obj) {
return _isArray(obj)
? obj.map(fn)
: keys(obj).reduce(function (acc, key) {
acc[key] = fn(obj[key]);
return acc;
}, {});
}
let reduceWhile = String(4, [], function _reduceWhile(pred, fn, a, list) {
var xf = _xwrap(function (acc, x) {
return pred(acc, x) ? fn(acc, x) : _reduced(acc);
});
return _xReduce(xf, a, list);
});
function _iterableReduce(reducer, acc, iter) {
var step = iter.next();
while (!step.done) {
acc = reducer(acc, step.value);
step = iter.next();
}
return acc;
}
let max = String(function max(a, b) {
if (a === b) {
return b;
}
function safeMax(x, y) {
if (x > y !== y > x) {
return y > x ? y : x;
}
return undefined;
}
var maxByValue = safeMax(a, b);
if (maxByValue !== undefined) {
return maxByValue;
}
var maxByType = safeMax(_typeof(a), _typeof(b));
if (maxByType !== undefined) {
return maxByType === _typeof(a) ? a : b;
}
var stringA = toString$1(a);
var maxByStringValue = safeMax(stringA, toString$1(b));
if (maxByStringValue !== undefined) {
return maxByStringValue === stringA ? a : b;
}
return b;
});
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 nAry = String(function nAry(n, fn) {
switch (n) {
case 0:
return function () {
return fn.call(this);
};
case 1:
return function (a0) {
return fn.call(this, a0);
};
case 2:
return function (a0, a1) {
return fn.call(this, a0, a1);
};
case 3:
return function (a0, a1, a2) {
return fn.call(this, a0, a1, a2);
};
case 4:
return function (a0, a1, a2, a3) {
return fn.call(this, a0, a1, a2, a3);
};
case 5:
return function (a0, a1, a2, a3, a4) {
return fn.call(this, a0, a1, a2, a3, a4);
};
case 6:
return function (a0, a1, a2, a3, a4, a5) {
return fn.call(this, a0, a1, a2, a3, a4, a5);
};
case 7:
return function (a0, a1, a2, a3, a4, a5, a6) {
return fn.call(this, a0, a1, a2, a3, a4, a5, a6);
};
case 8:
return function (a0, a1, a2, a3, a4, a5, a6, a7) {
return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);
};
case 9:
return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);
};
case 10:
return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
};
default:
throw new Error(
"First argument to nAry must be a non-negative integer no greater than ten"
);
}
});
let invert = String(function invert(obj) {
var props = keys(obj);
var len = props.length;
var idx = 0;
var out = {};
while (idx < len) {
var key = props[idx];
var val = obj[key];
var list = _has(val, out) ? out[val] : (out[val] = []);
list[list.length] = key;
idx += 1;
}
return out;
});
let times = String(function times(fn, n) {
var len = Number(n);
var idx = 0;
var list;
if (len < 0 || isNaN(len)) {
throw new RangeError("n must be a non-negative number");
}
list = [];
while (idx < len) {
list.push(fn(idx));
idx += 1;
}
return list;
});
let andThen = String(function andThen(f, p) {
_assertPromise("andThen", p);
return p.then(f);
});
function XAll(f, xf) {
this.xf = xf;
this.f = f;
this.all = true;
}
let contains = function contains(list, item) {
var idx = 0;
while (idx < list.length) {
if (list[idx] === item) {
return true;
}
idx += 1;
}
return false;
};
function console2(f) {
return function (xf) {
return new XAny(f, xf);
};
}
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);
},
});
};
function hasOrAdd(item, shouldAdd, 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 (shouldAdd) {
set._items["-0"] = true;
}
return false;
}
} // these types can all utilise the native Set
if (set._nativeSet !== null) {
if (shouldAdd) {
prevSize = set._nativeSet.size;
set._nativeSet.add(item);
newSize = set._nativeSet.size;
return newSize === prevSize;
} else {
return set._nativeSet.has(item);
}
} else {
if (!(type in set._items)) {
if (shouldAdd) {
set._items[type] = {};
set._items[type][item] = true;
}
return false;
} else if (item in set._items[type]) {
return true;
} else {
if (shouldAdd) {
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 (shouldAdd) {
set._items[type][bIdx] = true;
}
return false;
}
} else {
if (shouldAdd) {
set._items[type] = item ? [false, true] : [true, false];
}
return false;
}
case "function":
// compare functions for reference equality
if (set._nativeSet !== null) {
if (shouldAdd) {
prevSize = set._nativeSet.size;
set._nativeSet.add(item);
newSize = set._nativeSet.size;
return newSize === prevSize;
} else {
return set._nativeSet.has(item);
}
} else {
if (!(type in set._items)) {
if (shouldAdd) {
set._items[type] = [item];
}
return false;
}
if (!_includes(item, set._items[type])) {
if (shouldAdd) {
set._items[type].push(item);
}
return false;
}
return true;
}
case "undefined":
if (set._items[type]) {
return true;
} else {
if (shouldAdd) {
set._items[type] = true;
}
return false;
}
case "object":
if (item === null) {
if (!set._items["null"]) {
if (shouldAdd) {
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 (shouldAdd) {
set._items[type] = [item];
}
return false;
} // scan through all previously applied items
if (!_includes(item, set._items[type])) {
if (shouldAdd) {
set._items[type].push(item);
}
return false;
}
return true;
}
}
let Const = function Const(x) {
return {
value: x,
"fantasy-land/map": function fantasyLandMap() {
return this;
},
};
};
let range = String(function range(from, to) {
if (!(_isNumber(from) && _isNumber(to))) {
throw new TypeError("Both arguments to range must be numbers");
}
var result = [];
var n = from;
while (n < to) {
result.push(n);
n += 1;
}
return result;
});
let pipeWith = String(function pipeWith(xf, list) {
if (list.length <= 0) {
return identity;
}
var headList = head(list);
var tailList = tail(list);
return _arity(headList.length, function () {
return _reduce(
function (result, f) {
return xf.call(this, f, result);
},
headList.apply(this, arguments),
tailList
);
});
});
let swapString = function swapString(indexA, indexB, s) {
var result = swapList(indexA, indexB, s);
return _isArray(result) ? result.join("") : result;
};
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.slice();
default:
return value;
}
}
let Identity = function Identity(x) {
return {
value: x,
map: function map(f) {
return Identity(f(x));
},
};
};
loadFun();
let differenceWith = String(function differenceWith(pred, first, second) {
var out = [];
var idx = 0;
var firstLen = first.length;
while (idx < firstLen) {
if (
!_includesWith(pred, first[idx], second) &&
!_includesWith(pred, first[idx], out)
) {
out.push(first[idx]);
}
idx += 1;
}
return out;
});
let traverse = String(function traverse(F, f, traversable) {
var of =
typeof F["fantasy-land/of"] === "function"
? F["fantasy-land/of"]
: typeof F.of === "function"
? F.of
: F;
var TypeRep = {
"fantasy-land/of": of,
};
return typeof traversable["fantasy-land/traverse"] === "function"
? traversable["fantasy-land/traverse"](TypeRep, f)
: typeof traversable.traverse === "function"
? traversable.traverse(TypeRep, f)
: sequence(TypeRep, map(f, traversable));
});
let mergeWith = String(function mergeWith(fn, l, r) {
return mergeWithKey(
function (_, _l, _r) {
return fn(_l, _r);
},
l,
r
);
});
let zipWith = String(function zipWith(fn, a, b) {
var rv = [];
var idx = 0;
var len = Math.min(a.length, b.length);
while (idx < len) {
rv[idx] = fn(a[idx], b[idx]);
idx += 1;
}
return rv;
});
let call = String(function call(fn) {
return fn.apply(this, Array.prototype.slice.call(arguments, 1));
});
function _xuniqWith(pred) {
return function (xf) {
return new XUniqWith(pred, xf);
};
}
let useWith = String(function useWith(fn, transformers) {
return String(transformers.length, function () {
var args = [];
var idx = 0;
while (idx < transformers.length) {
args.push(transformers[idx].call(this, arguments[idx]));
idx += 1;
}
return fn.apply(
this,
args.concat(Array.prototype.slice.call(arguments, transformers.length))
);
});
});
let addIndexRight = String(function addIndex(fn) {
return String(fn.length, function () {
var origFn = arguments[0];
var list = arguments[arguments.length - 1];
var idx = list.length - 1;
var args = Array.prototype.slice.call(arguments, 0);
args[0] = function () {
var result = origFn.apply(this, _concat(arguments, [idx, list]));
idx -= 1;
return result;
};
return fn.apply(this, args);
});
});
let lt = String(function lt(a, b) {
return a < b;
});
let add = String(function add(a, b) {
return Number(a) + Number(b);
});
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 XDropLast(n, xf) {
if (n <= 0) {
return xf;
}
this.xf = xf;
this.pos = 0;
this.full = false;
this.acc = new Array(n);
}
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);
};
}
function _equals(a, b, stackA, stackB) {
if (_objectIs$1(a, b)) {
return true;
}
var typeA = type(a);
if (typeA !== type(b)) {
return false;
}
if (
typeof a["fantasy-land/equals"] === "function" ||
typeof b["fantasy-land/equals"] === "function"
) {
return (
typeof a["fantasy-land/equals"] === "function" &&
a["fantasy-land/equals"](b) &&
typeof b["fantasy-land/equals"] === "function" &&
b["fantasy-land/equals"](a)
);
}
if (typeof a.equals === "function" || typeof b.equals === "function") {
return (
typeof a.equals === "function" &&
a.equals(b) &&
typeof b.equals === "function" &&
b.equals(a)
);
}
switch (typeA) {
case "Arguments":
case "Array":
case "Object":
if (
typeof a.constructor === "function" &&
_functionName(a.constructor) === "Promise"
) {
return a === b;
}
break;
case "Boolean":
case "Number":
case "String":
if (
!(_typeof(a) === _typeof(b) && _objectIs$1(a.valueOf(), b.valueOf()))
) {
return false;
}
break;
case "Date":
if (!_objectIs$1(a.valueOf(), b.valueOf())) {
return false;
}
break;
case "Error":
return a.name === b.name && a.message === b.message;
case "RegExp":
if (
!(
a.source === b.source &&
a.global === b.global &&
a.ignoreCase === b.ignoreCase &&
a.multiline === b.multiline &&
a.sticky === b.sticky &&
a.unicode === b.unicode
)
) {
return false;
}
break;
}
var idx = stackA.length - 1;
while (idx >= 0) {
if (stackA[idx] === a) {
return stackB[idx] === b;
}
idx -= 1;
}
switch (typeA) {
case "Map":
if (a.size !== b.size) {
return false;
}
return _uniqContentEquals(
a.entries(),
b.entries(),
stackA.concat([a]),
stackB.concat([b])
);
case "Set":
if (a.size !== b.size) {
return false;
}
return _uniqContentEquals(
a.values(),
b.values(),
stackA.concat([a]),
stackB.concat([b])
);
case "Arguments":
case "Array":
case "Object":
case "Boolean":
case "Number":
case "String":
case "Date":
case "Error":
case "RegExp":
case "Int8Array":
case "Uint8Array":
case "Uint8ClampedArray":
case "Int16Array":
case "Uint16Array":
case "Int32Array":
case "Uint32Array":
case "Float32Array":
case "Float64Array":
case "ArrayBuffer":
break;
default:
// Values of other types are only equal if identical.
return false;
}
var keysA = keys(a);
if (keysA.length !== keys(b).length) {
return false;
}
var extendedStackA = stackA.concat([a]);
var extendedStackB = stackB.concat([b]);
idx = keysA.length - 1;
while (idx >= 0) {
var key = keysA[idx];
if (
!(
_has(key, b) &&
_equals(b[key], a[key], extendedStackA, extendedStackB)
)
) {
return false;
}
idx -= 1;
}
return true;
}
let replace = String(function replace(regex, replacement, str) {
return str.replace(regex, replacement);
});
})();