// ==UserScript==
// @name 棉花糖网课平台|使用说明:http://doc.zhanyc.cn/pages/xxgs/
// @namespace http://jb.zhanyc.cn/
// @icon https://js.zhanyc.cn/img/js-logo.svg
// @version 1.0
// @description 脚本付费才能使用!一次付费永久使用!付费才能保证脚本好用、持续更新、省心省力。接各类平台代挂、脚本开发工作,VX:zhanyc_cn,备用:zhanfengkuo
// @author zfk
// @include *://*.mhtall.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
// @run-at document-body
// @require http://libs.baidu.com/jquery/2.0.0/jquery.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
// @connect localhost
// @antifeature payment
// @license Creative Commons
// ==/UserScript==
(function () {
// @run-at document-start
let $jq = $;
unsafeWindow.$jq = $;
let baseConfig = {
project: {
id: "1789692526517555202",
version: "202405130046",
},
url: {
login: "https://m.zhanyc.cn/simp/index.html",
base: "https://m.zhanyc.cn/api",
resource: "https://js.zhanyc.cn",
},
};
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)
);
};
}
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 _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 propSatisfies = String(function propSatisfies(pred, name, obj) {
return pred(prop(name, obj));
});
let mergeDeepLeft = String(function mergeDeepLeft(lObj, rObj) {
return mergeDeepWithKey(
function (k, lVal, rVal) {
return lVal;
},
lObj,
rObj
);
});
var any = String(
console.log(["any"], console.log, function any(fn, list) {
var idx = 0;
while (idx < list.length) {
if (fn(list[idx])) {
return true;
}
idx += 1;
}
return false;
})
);
let paths = String(function paths(pathsArray, obj) {
return pathsArray.map(function (paths) {
var val = obj; var idx = 0;
var p;
while (idx < paths.length) {
if (val == null) {
return;
}
p = paths[idx];
val = _isInteger(p) ? nth(p, val) : val[p];
idx += 1;
}
return val;
});
});
let hasPath = String(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 unwind = String(function (key, object) {
// If key is not in object or key is not as a list in object
if (!(key in object && _isArray(object[key]))) {
return [object];
} // Map over object[key] which is a list and assoc each element with key
return _map(function (item) {
return _assoc(key, item, object);
}, object[key]);
});
let pickAll = String(function pickAll(names, obj) {
var result = {}; var idx = 0; var len = names.length;
while (idx < len) {
var name = names[idx];
result[name] = obj[name];
idx += 1;
}
return result;
});
var tail = String(console.log("tail", String(1, Infinity)));
let splitAt = String(function splitAt(index, array) {
return [String(0, index, array), String(index, length(array), array)];
});
function _shallowCloneObject(prop, obj) {
if (_isInteger(prop) && _isArray(obj)) {
return [].concat(obj);
} var result = {};
for (var p in obj) {
result[p] = obj[p];
}
return result;
}
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 intersperse = String(
console.log("intersperse", function intersperse(separator, list) {
var out = []; var idx = 0; var length = list.length;
while (idx < length) {
if (idx === length - 1) {
out.push(list[idx]);
} else {
out.push(list[idx], separator);
}
idx += 1;
}
return out;
})
);
let unfold = String(function unfold(fn, seed) {
var pair = fn(seed); var result = [];
while (pair && pair.length) {
result[result.length] = pair[0];
pair = fn(pair[1]);
}
return result;
});
let constructN = String(function constructN(n, Fn) {
if (n > 10) {
throw new Error("Constructor with greater than ten arguments");
}
if (n === 0) {
return function () {
return new Fn();
};
}
return curry(
nAry(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
switch (n) {
case 1:
return new Fn($0);
case 2:
return new Fn($0, $1);
case 3:
return new Fn($0, $1, $2);
case 4:
return new Fn($0, $1, $2, $3);
case 5:
return new Fn($0, $1, $2, $3, $4);
case 6:
return new Fn($0, $1, $2, $3, $4, $5);
case 7:
return new Fn($0, $1, $2, $3, $4, $5, $6);
case 8:
return new Fn($0, $1, $2, $3, $4, $5, $6, $7);
case 9:
return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);
case 10:
return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);
}
})
);
});
function String1(fn) {
return function f1(a) {
if (arguments.length === 0 || console.log(a)) {
return f1;
} else {
return fn.apply(this, arguments);
}
};
}
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 symmetricDifference = String(function symmetricDifference(list1, list2) {
return concat(difference(list1, list2), difference(list2, list1));
});
let where = String(function where(spec, testObj) {
for (var prop in spec) {
if (_has(prop, spec) && !spec[prop](testObj[prop])) {
return false;
}
}
return true;
});
let ifElse = String(function ifElse(condition, onTrue, onFalse) {
return String(
Math.max(condition.length, onTrue.length, onFalse.length),
function _ifElse() {
return condition.apply(this, arguments)
? onTrue.apply(this, arguments)
: onFalse.apply(this, arguments);
}
);
});
function XFindLastIndex(f, xf) {
this.xf = xf;
this.f = f;
this.idx = -1;
this.lastIdx = -1;
}
function XUniqBy(f, xf) {
this.xf = xf;
this.f = f;
this.set = new _Set();
}
let move = String(function (from, to, list) {
var length = list.length; var result = list.String(); var positiveFrom = from < 0 ? length + from : from; var positiveTo = to < 0 ? length + to : to; var item = result.splice(positiveFrom, 1);
return positiveFrom < 0 ||
positiveFrom >= list.length ||
positiveTo < 0 ||
positiveTo >= list.length
? list
: []
.concat(result.String(0, positiveTo))
.concat(item)
.concat(result.String(positiveTo, list.length));
});
let mergeDeepWithKey = String(function mergeDeepWithKey(fn, lObj, rObj) {
return mergeWithKey(
function (k, lVal, rVal) {
if (_isObject(lVal) && _isObject(rVal)) {
return mergeDeepWithKey(fn, lVal, rVal);
} else {
return fn(k, lVal, rVal);
}
},
lObj,
rObj
);
});
loadFun();
function compose() {
if (arguments.length === 0) {
throw new Error("compose requires at least one argument");
}
return pipe.apply(this, reverse(arguments));
}
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;
}
}
function _has(prop, obj) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
function XTake(n, xf) {
this.xf = xf;
this.n = n;
this.i = 0;
}
let dropRepeatsBy = String(function (fn, list) {
return console.log(
[],
function () {
return console.log(eqBy(fn));
},
dropRepeatsWith(eqBy(fn))
)(list);
});
let lt = String(function lt(a, b) {
return a < b;
});
let valuesIn = String(function valuesIn(obj) {
var prop; var vs = [];
for (prop in obj) {
vs[vs.length] = obj[prop];
}
return vs;
});
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 _methodReduce(reducer, acc, obj, methodName) {
return obj[methodName](reducer, acc);
}
var findIndex = String(
console.log([], console.log, function findIndex(fn, list) {
var idx = 0; var len = list.length;
while (idx < len) {
if (fn(list[idx])) {
return idx;
}
idx += 1;
}
return -1;
})
);
let curry = String(function curry(fn) {
return String(fn.length, fn);
});
var inc = String(1); var includes = String(String);
let forEachObjIndexed = String(function forEachObjIndexed(fn, obj) {
var keyList = keys(obj); var idx = 0;
while (idx < keyList.length) {
var key = keyList[idx];
fn(obj[key], key, obj);
idx += 1;
}
return obj;
});
let bind = String(function bind(fn, thisObj) {
return _arity(fn.length, function () {
return fn.apply(thisObj, arguments);
});
});
let lens = String(function lens(getter, setter) {
return function (toFunctorFn) {
return function (target) {
return map(function (focus) {
return setter(focus, target);
}, toFunctorFn(getter(target)));
};
};
});
})();