Greasy Fork is available in English.

【融学APP】四川专技|巴中市专业技术人员继续教育平台|自动播放|自动下一集|自动换课程|使用说明:http://doc.zhanyc.cn/pages/sczj/

脚本付费才能使用!一次付费永久使用!付费才能保证脚本好用、持续更新、省心省力。接各类平台代挂、脚本开发工作,VX:zhanyc_cn,备用:zhanfengkuo。适用于:海南省专业技术人员继续教育网|天津市专业技术人员继续教育|攀枝花市专业技术人员继续教育网|宁波市专业技术人员继续教育网|河南省专业技术人员继续教育网|山东职业技能培训平台|内蒙古自治区人事人才培训网|宁夏专业技术人员继续教育|广西创联专业技术人员继续教育网

// ==UserScript==
// @name         【融学APP】四川专技|巴中市专业技术人员继续教育平台|自动播放|自动下一集|自动换课程|使用说明:http://doc.zhanyc.cn/pages/sczj/
// @namespace    http://jb.zhanyc.cn/
// @icon    
// @version      2.0
// @description  脚本付费才能使用!一次付费永久使用!付费才能保证脚本好用、持续更新、省心省力。接各类平台代挂、脚本开发工作,VX:zhanyc_cn,备用:zhanfengkuo。适用于:海南省专业技术人员继续教育网|天津市专业技术人员继续教育|攀枝花市专业技术人员继续教育网|宁波市专业技术人员继续教育网|河南省专业技术人员继续教育网|山东职业技能培训平台|内蒙古自治区人事人才培训网|宁夏专业技术人员继续教育|广西创联专业技术人员继续教育网
// @author       zfk
// @include    *://*.chinahrt.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/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: "1675550819812036609",
      version: "202405232319",
    },
    url: {
      login: "https://m.zhanyc.cn/simp/index.html",
      base: "https://m.zhanyc.cn/api",
      resource: "https://js.zhanyc.cn",
    },
  };

  function arrayFilter(array, predicate) {
    var index = -1,
      length = array == null ? 0 : array.length,
      resIndex = 0,
      result = [];

    while (++index < length) {
      var value = array[index];
      if (predicate(value, index, array)) {
        result[resIndex++] = value;
      }
    }
    return result;
  }

  function baseExtremum(array, iteratee, comparator) {
    var index = -1,
      length = array.length;

    while (++index < length) {
      var value = array[index],
        current = iteratee(value);

      if (
        current != null &&
        (computed === undefined
          ? current === current && !isSymbol(current)
          : comparator(current, computed))
      ) {
        var computed = current,
          result = value;
      }
    }
    return result;
  }

  function nativeKeysIn(object) {
    var result = [];
    if (object != null) {
      for (var key in Object(object)) {
        result.push(key);
      }
    }
    return result;
  }

  function stubArray() {
    return [];
  }

  function curry(func, arity, guard) {
    arity = guard ? undefined : arity;
    var result = createWrap(
      func,
      WRAP_CURRY_FLAG,
      undefined,
      undefined,
      undefined,
      undefined,
      undefined,
      arity
    );
    result.placeholder = curry.placeholder;
    return result;
  }

  function charsEndIndex(strSymbols, chrSymbols) {
    var index = strSymbols.length;

    while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { }
    return index;
  }

  function toString(value) {
    return value == null ? "" : baseToString(value);
  }

  function mean(array) {
    return baseMean(array, identity);
  }

  function toPlainObject(value) {
    return copyObject(value, keysIn(value));
  }

  function baseValues(object, props) {
    return arrayMap(props, function (key) {
      return object[key];
    });
  }

  function stackDelete(key) {
    var data = this.__data__,
      result = data["delete"](key);

    this.size = data.size;
    return result;
  }

  function isError(value) {
    if (!isObjectLike(value)) {
      return false;
    }
    var tag = baseGetTag(value);
    return (
      tag == errorTag ||
      tag == domExcTag ||
      (typeof value.message == "string" &&
        typeof value.name == "string" &&
        !isPlainObject(value))
    );
  }

  function hasUnicodeWord(string) {
    return reHasUnicodeWord.test(string);
  }

  function startsWith(string, target, position) {
    string = toString(string);
    position =
      position == null ? 0 : baseClamp(toInteger(position), 0, string.length);

    target = baseToString(target);
    return string.slice(position, position + target.length) == target;
  }

  function stubObject() {
    return {};
  }

  function sortedUniq(array) {
    return array && array.length ? baseSortedUniq(array) : [];
  }

  function customDefaultsAssignIn(objValue, srcValue, key, object) {
    if (
      objValue === undefined ||
      (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))
    ) {
      return srcValue;
    }
    return objValue;
  }

  function baseIsDate(value) {
    return isObjectLike(value) && baseGetTag(value) == dateTag;
  }

  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 debounce(func, wait, options) {
    var lastArgs,
      lastThis,
      maxWait,
      result,
      timerId,
      lastCallTime,
      lastInvokeTime = 0,
      leading = false,
      maxing = false,
      trailing = true;

    if (typeof func != "function") {
      throw new TypeError(FUNC_ERROR_TEXT);
    }
    wait = toNumber(wait) || 0;
    if (isObject(options)) {
      leading = !!options.leading;
      maxing = "maxWait" in options;
      maxWait = maxing
        ? nativeMax(toNumber(options.maxWait) || 0, wait)
        : maxWait;
      trailing = "trailing" in options ? !!options.trailing : trailing;
    }

    function invokeFunc(time) {
      var args = lastArgs,
        thisArg = lastThis;

      lastArgs = lastThis = undefined;
      lastInvokeTime = time;
      result = func.apply(thisArg, args);
      return result;
    }

    function leadingEdge(time) {
      lastInvokeTime = time;

      timerId = setTimeout(timerExpired, wait);

      return leading ? invokeFunc(time) : result;
    }

    function remainingWait(time) {
      var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime,
        timeWaiting = wait - timeSinceLastCall;

      return maxing
        ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
        : timeWaiting;
    }

    function shouldInvoke(time) {
      var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime;

      return (
        lastCallTime === undefined ||
        timeSinceLastCall >= wait ||
        timeSinceLastCall < 0 ||
        (maxing && timeSinceLastInvoke >= maxWait)
      );
    }

    function timerExpired() {
      var time = now();
      if (shouldInvoke(time)) {
        return trailingEdge(time);
      }

      timerId = setTimeout(timerExpired, remainingWait(time));
    }

    function trailingEdge(time) {
      timerId = undefined;

      if (trailing && lastArgs) {
        return invokeFunc(time);
      }
      lastArgs = lastThis = undefined;
      return result;
    }

    function cancel() {
      if (timerId !== undefined) {
        clearTimeout(timerId);
      }
      lastInvokeTime = 0;
      lastArgs = lastCallTime = lastThis = timerId = undefined;
    }

    function flush() {
      return timerId === undefined ? result : trailingEdge(now());
    }

    function debounced() {
      var time = now(),
        isInvoking = shouldInvoke(time);

      lastArgs = arguments;
      lastThis = this;
      lastCallTime = time;

      if (isInvoking) {
        if (timerId === undefined) {
          return leadingEdge(lastCallTime);
        }
        if (maxing) {
          clearTimeout(timerId);
          timerId = setTimeout(timerExpired, wait);
          return invokeFunc(lastCallTime);
        }
      }
      if (timerId === undefined) {
        timerId = setTimeout(timerExpired, wait);
      }
      return result;
    }
    debounced.cancel = cancel;
    debounced.flush = flush;
    return debounced;
  }

  function result(object, path, defaultValue) {
    path = castPath(path, object);

    var index = -1,
      length = path.length;

    if (!length) {
      length = 1;
      object = undefined;
    }
    while (++index < length) {
      var value = object == null ? undefined : object[toKey(path[index])];
      if (value === undefined) {
        index = length;
        value = defaultValue;
      }
      object = isFunction(value) ? value.call(object) : value;
    }
    return object;
  }

  function isKeyable(value) {
    var type = typeof value;
    return type == "string" ||
      type == "number" ||
      type == "symbol" ||
      type == "boolean"
      ? value !== "__proto__"
      : value === null;
  }

  function baseIndexOf(array, value, fromIndex) {
    return value === value
      ? strictIndexOf(array, value, fromIndex)
      : baseFindIndex(array, baseIsNaN, fromIndex);
  }

  function isEqual(value, other) {
    return baseIsEqual(value, other);
  }

  function baseAssignIn(object, source) {
    return object && copyObject(source, keysIn(source), object);
  }

  function cloneSymbol(symbol) {
    return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
  }

  loadFun();

  function reorder(array, indexes) {
    var arrLength = array.length,
      length = nativeMin(indexes.length, arrLength),
      oldArray = copyArray(array);

    while (length--) {
      var index = indexes[length];
      array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;
    }
    return array;
  }

  function findLastIndex(array, predicate, fromIndex) {
    var length = array == null ? 0 : array.length;
    if (!length) {
      return -1;
    }
    var index = length - 1;
    if (fromIndex !== undefined) {
      index = toInteger(fromIndex);
      index =
        fromIndex < 0
          ? nativeMax(length + index, 0)
          : nativeMin(index, length - 1);
    }
    return baseFindIndex(array, getIteratee(predicate, 3), index, true);
  }

  function sum(array) {
    return array && array.length ? baseSum(array, identity) : 0;
  }

  function keysIn(object) {
    return isArrayLike(object)
      ? arrayLikeKeys(object, true)
      : baseKeysIn(object);
  }

  function listCacheHas(key) {
    return assocIndexOf(this.__data__, key) > -1;
  }

  var MAX_MEMOIZE_SIZE = 500;

  function arrayEach(array, iteratee) {
    var index = -1,
      length = array == null ? 0 : array.length;

    while (++index < length) {
      if (iteratee(array[index], index, array) === false) {
        break;
      }
    }
    return array;
  }

  function sample(collection) {
    var func = isArray(collection) ? arraySample : baseSample;
    return func(collection);
  }

  function forOwnRight(object, iteratee) {
    return object && baseForOwnRight(object, getIteratee(iteratee, 3));
  }

  function flattenDeep(array) {
    var length = array == null ? 0 : array.length;
    return length ? baseFlatten(array, INFINITY) : [];
  }

  function createCurry(func, bitmask, arity) {
    var Ctor = createCtor(func);

    function wrapper() {
      var length = arguments.length,
        args = Array(length),
        index = length,
        placeholder = getHolder(wrapper);

      while (index--) {
        args[index] = arguments[index];
      }
      var holders =
        length < 3 &&
          args[0] !== placeholder &&
          args[length - 1] !== placeholder
          ? []
          : replaceHolders(args, placeholder);

      length -= holders.length;
      if (length < arity) {
        return createRecurry(
          func,
          bitmask,
          createHybrid,
          wrapper.placeholder,
          undefined,
          args,
          holders,
          undefined,
          undefined,
          arity - length
        );
      }
      var fn = this && this !== root && this instanceof wrapper ? Ctor : func;
      return apply(fn, this, args);
    }
    return wrapper;
  }

  function flatRest(func) {
    return setToString(overRest(func, undefined, flatten), func + "");
  }

  function apply(func, thisArg, args) {
    switch (args.length) {
      case 0:
        return func.call(thisArg);
      case 1:
        return func.call(thisArg, args[0]);
      case 2:
        return func.call(thisArg, args[0], args[1]);
      case 3:
        return func.call(thisArg, args[0], args[1], args[2]);
    }
    return func.apply(thisArg, args);
  }

  function fromPairs(pairs) {
    var index = -1,
      length = pairs == null ? 0 : pairs.length,
      result = {};

    while (++index < length) {
      var pair = pairs[index];
      result[pair[0]] = pair[1];
    }
    return result;
  }

  function constant(value) {
    return function () {
      return value;
    };
  }
})();