// ==UserScript==
// @name 百度贴吧签到
// @version 3.2.0
// @description 网页版签到或模拟客户端签到,模拟客户端可获得与客户端相同经验并且签到速度更快~
// @author sakura-flutter
// @namespace https://github.com/sakura-flutter/tampermonkey-scripts/commits/master/src/scripts/tieba
// @license GPL-3.0
// @compatible chrome >= Latest
// @compatible firefox >= Latest
// @run-at document-end
// @match https://tieba.baidu.com/index.html
// @match https://tieba.baidu.com
// @connect tieba.baidu.com
// @grant unsafeWindow
// @grant GM_xmlhttpRequest
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_deleteValue
// @grant GM_addValueChangeListener
// @grant GM_removeValueChangeListener
// @grant GM_addStyle
// @require https://cdn.jsdelivr.net/npm/md5/dist/md5.min.js
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.runtime.global.prod.js
// @require https://greasyfork.org/scripts/411093-toast/code/Toast.js?version=862073
// ==/UserScript==
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ 1530:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var charAt = __webpack_require__(8710).charAt;
// `AdvanceStringIndex` abstract operation
// https://tc39.github.io/ecma262/#sec-advancestringindex
module.exports = function (S, index, unicode) {
return index + (unicode ? charAt(S, index).length : 1);
};
/***/ }),
/***/ 9670:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var isObject = __webpack_require__(111);
module.exports = function (it) {
if (!isObject(it)) {
throw TypeError(String(it) + ' is not an object');
} return it;
};
/***/ }),
/***/ 1318:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var toIndexedObject = __webpack_require__(5656);
var toLength = __webpack_require__(7466);
var toAbsoluteIndex = __webpack_require__(1400);
// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIndexedObject($this);
var length = toLength(O.length);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) {
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
module.exports = {
// `Array.prototype.includes` method
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
includes: createMethod(true),
// `Array.prototype.indexOf` method
// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
indexOf: createMethod(false)
};
/***/ }),
/***/ 4326:
/***/ ((module) => {
var toString = {}.toString;
module.exports = function (it) {
return toString.call(it).slice(8, -1);
};
/***/ }),
/***/ 9920:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var has = __webpack_require__(6656);
var ownKeys = __webpack_require__(3887);
var getOwnPropertyDescriptorModule = __webpack_require__(1236);
var definePropertyModule = __webpack_require__(3070);
module.exports = function (target, source) {
var keys = ownKeys(source);
var defineProperty = definePropertyModule.f;
var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
}
};
/***/ }),
/***/ 8880:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var DESCRIPTORS = __webpack_require__(9781);
var definePropertyModule = __webpack_require__(3070);
var createPropertyDescriptor = __webpack_require__(9114);
module.exports = DESCRIPTORS ? function (object, key, value) {
return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
/***/ }),
/***/ 9114:
/***/ ((module) => {
module.exports = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
/***/ }),
/***/ 9781:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var fails = __webpack_require__(7293);
// Thank's IE8 for his funny defineProperty
module.exports = !fails(function () {
return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
});
/***/ }),
/***/ 317:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(7854);
var isObject = __webpack_require__(111);
var document = global.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
return EXISTS ? document.createElement(it) : {};
};
/***/ }),
/***/ 748:
/***/ ((module) => {
// IE8- don't enum bug keys
module.exports = [
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf'
];
/***/ }),
/***/ 2109:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(7854);
var getOwnPropertyDescriptor = __webpack_require__(1236).f;
var createNonEnumerableProperty = __webpack_require__(8880);
var redefine = __webpack_require__(1320);
var setGlobal = __webpack_require__(3505);
var copyConstructorProperties = __webpack_require__(9920);
var isForced = __webpack_require__(4705);
/*
options.target - name of the target object
options.global - target is the global object
options.stat - export as static methods of target
options.proto - export as prototype methods of target
options.real - real prototype method for the `pure` version
options.forced - export even if the native feature is available
options.bind - bind methods to the target, required for the `pure` version
options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
options.unsafe - use the simple assignment of property instead of delete + defineProperty
options.sham - add a flag to not completely full polyfills
options.enumerable - export as enumerable property
options.noTargetGet - prevent calling a getter on target
*/
module.exports = function (options, source) {
var TARGET = options.target;
var GLOBAL = options.global;
var STATIC = options.stat;
var FORCED, target, key, targetProperty, sourceProperty, descriptor;
if (GLOBAL) {
target = global;
} else if (STATIC) {
target = global[TARGET] || setGlobal(TARGET, {});
} else {
target = (global[TARGET] || {}).prototype;
}
if (target) for (key in source) {
sourceProperty = source[key];
if (options.noTargetGet) {
descriptor = getOwnPropertyDescriptor(target, key);
targetProperty = descriptor && descriptor.value;
} else targetProperty = target[key];
FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
// contained in target
if (!FORCED && targetProperty !== undefined) {
if (typeof sourceProperty === typeof targetProperty) continue;
copyConstructorProperties(sourceProperty, targetProperty);
}
// add a flag to not completely full polyfills
if (options.sham || (targetProperty && targetProperty.sham)) {
createNonEnumerableProperty(sourceProperty, 'sham', true);
}
// extend global
redefine(target, key, sourceProperty, options);
}
};
/***/ }),
/***/ 7293:
/***/ ((module) => {
module.exports = function (exec) {
try {
return !!exec();
} catch (error) {
return true;
}
};
/***/ }),
/***/ 7007:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
// TODO: Remove from `core-js@4` since it's moved to entry points
__webpack_require__(4916);
var redefine = __webpack_require__(1320);
var fails = __webpack_require__(7293);
var wellKnownSymbol = __webpack_require__(5112);
var regexpExec = __webpack_require__(2261);
var createNonEnumerableProperty = __webpack_require__(8880);
var SPECIES = wellKnownSymbol('species');
var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
// #replace needs built-in support for named groups.
// #match works fine because it just return the exec results, even if it has
// a "grops" property.
var re = /./;
re.exec = function () {
var result = [];
result.groups = { a: '7' };
return result;
};
return ''.replace(re, '$<a>') !== '7';
});
// IE <= 11 replaces $0 with the whole match, as if it was $&
// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
var REPLACE_KEEPS_$0 = (function () {
return 'a'.replace(/./, '$0') === '$0';
})();
var REPLACE = wellKnownSymbol('replace');
// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
if (/./[REPLACE]) {
return /./[REPLACE]('a', '$0') === '';
}
return false;
})();
// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
// Weex JS has frozen built-in prototypes, so use try / catch wrapper
var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
var re = /(?:)/;
var originalExec = re.exec;
re.exec = function () { return originalExec.apply(this, arguments); };
var result = 'ab'.split(re);
return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
});
module.exports = function (KEY, length, exec, sham) {
var SYMBOL = wellKnownSymbol(KEY);
var DELEGATES_TO_SYMBOL = !fails(function () {
// String methods call symbol-named RegEp methods
var O = {};
O[SYMBOL] = function () { return 7; };
return ''[KEY](O) != 7;
});
var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
// Symbol-named RegExp methods call .exec
var execCalled = false;
var re = /a/;
if (KEY === 'split') {
// We can't use real regex here since it causes deoptimization
// and serious performance degradation in V8
// https://github.com/zloirock/core-js/issues/306
re = {};
// RegExp[@@split] doesn't call the regex's exec method, but first creates
// a new one. We need to return the patched regex when creating the new one.
re.constructor = {};
re.constructor[SPECIES] = function () { return re; };
re.flags = '';
re[SYMBOL] = /./[SYMBOL];
}
re.exec = function () { execCalled = true; return null; };
re[SYMBOL]('');
return !execCalled;
});
if (
!DELEGATES_TO_SYMBOL ||
!DELEGATES_TO_EXEC ||
(KEY === 'replace' && !(
REPLACE_SUPPORTS_NAMED_GROUPS &&
REPLACE_KEEPS_$0 &&
!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
)) ||
(KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
) {
var nativeRegExpMethod = /./[SYMBOL];
var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
if (regexp.exec === regexpExec) {
if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
// The native String method already delegates to @@method (this
// polyfilled function), leasing to infinite recursion.
// We avoid it by directly calling the native @@method method.
return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
}
return { done: true, value: nativeMethod.call(str, regexp, arg2) };
}
return { done: false };
}, {
REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,
REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
});
var stringMethod = methods[0];
var regexMethod = methods[1];
redefine(String.prototype, KEY, stringMethod);
redefine(RegExp.prototype, SYMBOL, length == 2
// 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
// 21.2.5.11 RegExp.prototype[@@split](string, limit)
? function (string, arg) { return regexMethod.call(string, this, arg); }
// 21.2.5.6 RegExp.prototype[@@match](string)
// 21.2.5.9 RegExp.prototype[@@search](string)
: function (string) { return regexMethod.call(string, this); }
);
}
if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);
};
/***/ }),
/***/ 5005:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var path = __webpack_require__(857);
var global = __webpack_require__(7854);
var aFunction = function (variable) {
return typeof variable == 'function' ? variable : undefined;
};
module.exports = function (namespace, method) {
return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])
: path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
};
/***/ }),
/***/ 7854:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var check = function (it) {
return it && it.Math == Math && it;
};
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
module.exports =
// eslint-disable-next-line no-undef
check(typeof globalThis == 'object' && globalThis) ||
check(typeof window == 'object' && window) ||
check(typeof self == 'object' && self) ||
check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||
// eslint-disable-next-line no-new-func
Function('return this')();
/***/ }),
/***/ 6656:
/***/ ((module) => {
var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
return hasOwnProperty.call(it, key);
};
/***/ }),
/***/ 3501:
/***/ ((module) => {
module.exports = {};
/***/ }),
/***/ 4664:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var DESCRIPTORS = __webpack_require__(9781);
var fails = __webpack_require__(7293);
var createElement = __webpack_require__(317);
// Thank's IE8 for his funny defineProperty
module.exports = !DESCRIPTORS && !fails(function () {
return Object.defineProperty(createElement('div'), 'a', {
get: function () { return 7; }
}).a != 7;
});
/***/ }),
/***/ 8361:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var fails = __webpack_require__(7293);
var classof = __webpack_require__(4326);
var split = ''.split;
// fallback for non-array-like ES3 and non-enumerable old V8 strings
module.exports = fails(function () {
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
// eslint-disable-next-line no-prototype-builtins
return !Object('z').propertyIsEnumerable(0);
}) ? function (it) {
return classof(it) == 'String' ? split.call(it, '') : Object(it);
} : Object;
/***/ }),
/***/ 2788:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var store = __webpack_require__(5465);
var functionToString = Function.toString;
// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
if (typeof store.inspectSource != 'function') {
store.inspectSource = function (it) {
return functionToString.call(it);
};
}
module.exports = store.inspectSource;
/***/ }),
/***/ 9909:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var NATIVE_WEAK_MAP = __webpack_require__(8536);
var global = __webpack_require__(7854);
var isObject = __webpack_require__(111);
var createNonEnumerableProperty = __webpack_require__(8880);
var objectHas = __webpack_require__(6656);
var sharedKey = __webpack_require__(6200);
var hiddenKeys = __webpack_require__(3501);
var WeakMap = global.WeakMap;
var set, get, has;
var enforce = function (it) {
return has(it) ? get(it) : set(it, {});
};
var getterFor = function (TYPE) {
return function (it) {
var state;
if (!isObject(it) || (state = get(it)).type !== TYPE) {
throw TypeError('Incompatible receiver, ' + TYPE + ' required');
} return state;
};
};
if (NATIVE_WEAK_MAP) {
var store = new WeakMap();
var wmget = store.get;
var wmhas = store.has;
var wmset = store.set;
set = function (it, metadata) {
wmset.call(store, it, metadata);
return metadata;
};
get = function (it) {
return wmget.call(store, it) || {};
};
has = function (it) {
return wmhas.call(store, it);
};
} else {
var STATE = sharedKey('state');
hiddenKeys[STATE] = true;
set = function (it, metadata) {
createNonEnumerableProperty(it, STATE, metadata);
return metadata;
};
get = function (it) {
return objectHas(it, STATE) ? it[STATE] : {};
};
has = function (it) {
return objectHas(it, STATE);
};
}
module.exports = {
set: set,
get: get,
has: has,
enforce: enforce,
getterFor: getterFor
};
/***/ }),
/***/ 4705:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var fails = __webpack_require__(7293);
var replacement = /#|\.prototype\./;
var isForced = function (feature, detection) {
var value = data[normalize(feature)];
return value == POLYFILL ? true
: value == NATIVE ? false
: typeof detection == 'function' ? fails(detection)
: !!detection;
};
var normalize = isForced.normalize = function (string) {
return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';
module.exports = isForced;
/***/ }),
/***/ 111:
/***/ ((module) => {
module.exports = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
/***/ }),
/***/ 1913:
/***/ ((module) => {
module.exports = false;
/***/ }),
/***/ 133:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var fails = __webpack_require__(7293);
module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
// Chrome 38 Symbol has incorrect toString conversion
// eslint-disable-next-line no-undef
return !String(Symbol());
});
/***/ }),
/***/ 8536:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(7854);
var inspectSource = __webpack_require__(2788);
var WeakMap = global.WeakMap;
module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
/***/ }),
/***/ 3070:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
var DESCRIPTORS = __webpack_require__(9781);
var IE8_DOM_DEFINE = __webpack_require__(4664);
var anObject = __webpack_require__(9670);
var toPrimitive = __webpack_require__(7593);
var nativeDefineProperty = Object.defineProperty;
// `Object.defineProperty` method
// https://tc39.github.io/ecma262/#sec-object.defineproperty
exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
if (IE8_DOM_DEFINE) try {
return nativeDefineProperty(O, P, Attributes);
} catch (error) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
/***/ }),
/***/ 1236:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
var DESCRIPTORS = __webpack_require__(9781);
var propertyIsEnumerableModule = __webpack_require__(5296);
var createPropertyDescriptor = __webpack_require__(9114);
var toIndexedObject = __webpack_require__(5656);
var toPrimitive = __webpack_require__(7593);
var has = __webpack_require__(6656);
var IE8_DOM_DEFINE = __webpack_require__(4664);
var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// `Object.getOwnPropertyDescriptor` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
O = toIndexedObject(O);
P = toPrimitive(P, true);
if (IE8_DOM_DEFINE) try {
return nativeGetOwnPropertyDescriptor(O, P);
} catch (error) { /* empty */ }
if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
};
/***/ }),
/***/ 8006:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
var internalObjectKeys = __webpack_require__(6324);
var enumBugKeys = __webpack_require__(748);
var hiddenKeys = enumBugKeys.concat('length', 'prototype');
// `Object.getOwnPropertyNames` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return internalObjectKeys(O, hiddenKeys);
};
/***/ }),
/***/ 5181:
/***/ ((__unused_webpack_module, exports) => {
exports.f = Object.getOwnPropertySymbols;
/***/ }),
/***/ 6324:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var has = __webpack_require__(6656);
var toIndexedObject = __webpack_require__(5656);
var indexOf = __webpack_require__(1318).indexOf;
var hiddenKeys = __webpack_require__(3501);
module.exports = function (object, names) {
var O = toIndexedObject(object);
var i = 0;
var result = [];
var key;
for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while (names.length > i) if (has(O, key = names[i++])) {
~indexOf(result, key) || result.push(key);
}
return result;
};
/***/ }),
/***/ 5296:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
var descriptor = getOwnPropertyDescriptor(this, V);
return !!descriptor && descriptor.enumerable;
} : nativePropertyIsEnumerable;
/***/ }),
/***/ 3887:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var getBuiltIn = __webpack_require__(5005);
var getOwnPropertyNamesModule = __webpack_require__(8006);
var getOwnPropertySymbolsModule = __webpack_require__(5181);
var anObject = __webpack_require__(9670);
// all object keys, includes non-enumerable and symbols
module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
var keys = getOwnPropertyNamesModule.f(anObject(it));
var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
};
/***/ }),
/***/ 857:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(7854);
module.exports = global;
/***/ }),
/***/ 1320:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(7854);
var createNonEnumerableProperty = __webpack_require__(8880);
var has = __webpack_require__(6656);
var setGlobal = __webpack_require__(3505);
var inspectSource = __webpack_require__(2788);
var InternalStateModule = __webpack_require__(9909);
var getInternalState = InternalStateModule.get;
var enforceInternalState = InternalStateModule.enforce;
var TEMPLATE = String(String).split('String');
(module.exports = function (O, key, value, options) {
var unsafe = options ? !!options.unsafe : false;
var simple = options ? !!options.enumerable : false;
var noTargetGet = options ? !!options.noTargetGet : false;
if (typeof value == 'function') {
if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);
enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
}
if (O === global) {
if (simple) O[key] = value;
else setGlobal(key, value);
return;
} else if (!unsafe) {
delete O[key];
} else if (!noTargetGet && O[key]) {
simple = true;
}
if (simple) O[key] = value;
else createNonEnumerableProperty(O, key, value);
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, 'toString', function toString() {
return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
});
/***/ }),
/***/ 7651:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var classof = __webpack_require__(4326);
var regexpExec = __webpack_require__(2261);
// `RegExpExec` abstract operation
// https://tc39.github.io/ecma262/#sec-regexpexec
module.exports = function (R, S) {
var exec = R.exec;
if (typeof exec === 'function') {
var result = exec.call(R, S);
if (typeof result !== 'object') {
throw TypeError('RegExp exec method returned something other than an Object or null');
}
return result;
}
if (classof(R) !== 'RegExp') {
throw TypeError('RegExp#exec called on incompatible receiver');
}
return regexpExec.call(R, S);
};
/***/ }),
/***/ 2261:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var regexpFlags = __webpack_require__(7066);
var stickyHelpers = __webpack_require__(2999);
var nativeExec = RegExp.prototype.exec;
// This always refers to the native implementation, because the
// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
// which loads this file before patching the method.
var nativeReplace = String.prototype.replace;
var patchedExec = nativeExec;
var UPDATES_LAST_INDEX_WRONG = (function () {
var re1 = /a/;
var re2 = /b*/g;
nativeExec.call(re1, 'a');
nativeExec.call(re2, 'a');
return re1.lastIndex !== 0 || re2.lastIndex !== 0;
})();
var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;
// nonparticipating capturing group, copied from es5-shim's String#split patch.
var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;
if (PATCH) {
patchedExec = function exec(str) {
var re = this;
var lastIndex, reCopy, match, i;
var sticky = UNSUPPORTED_Y && re.sticky;
var flags = regexpFlags.call(re);
var source = re.source;
var charsAdded = 0;
var strCopy = str;
if (sticky) {
flags = flags.replace('y', '');
if (flags.indexOf('g') === -1) {
flags += 'g';
}
strCopy = String(str).slice(re.lastIndex);
// Support anchored sticky behavior.
if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
source = '(?: ' + source + ')';
strCopy = ' ' + strCopy;
charsAdded++;
}
// ^(? + rx + ) is needed, in combination with some str slicing, to
// simulate the 'y' flag.
reCopy = new RegExp('^(?:' + source + ')', flags);
}
if (NPCG_INCLUDED) {
reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
}
if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
match = nativeExec.call(sticky ? reCopy : re, strCopy);
if (sticky) {
if (match) {
match.input = match.input.slice(charsAdded);
match[0] = match[0].slice(charsAdded);
match.index = re.lastIndex;
re.lastIndex += match[0].length;
} else re.lastIndex = 0;
} else if (UPDATES_LAST_INDEX_WRONG && match) {
re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
}
if (NPCG_INCLUDED && match && match.length > 1) {
// Fix browsers whose `exec` methods don't consistently return `undefined`
// for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
nativeReplace.call(match[0], reCopy, function () {
for (i = 1; i < arguments.length - 2; i++) {
if (arguments[i] === undefined) match[i] = undefined;
}
});
}
return match;
};
}
module.exports = patchedExec;
/***/ }),
/***/ 7066:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var anObject = __webpack_require__(9670);
// `RegExp.prototype.flags` getter implementation
// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags
module.exports = function () {
var that = anObject(this);
var result = '';
if (that.global) result += 'g';
if (that.ignoreCase) result += 'i';
if (that.multiline) result += 'm';
if (that.dotAll) result += 's';
if (that.unicode) result += 'u';
if (that.sticky) result += 'y';
return result;
};
/***/ }),
/***/ 2999:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var fails = __webpack_require__(7293);
// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
// so we use an intermediate function.
function RE(s, f) {
return RegExp(s, f);
}
exports.UNSUPPORTED_Y = fails(function () {
// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
var re = RE('a', 'y');
re.lastIndex = 2;
return re.exec('abcd') != null;
});
exports.BROKEN_CARET = fails(function () {
// https://bugzilla.mozilla.org/show_bug.cgi?id=773687
var re = RE('^r', 'gy');
re.lastIndex = 2;
return re.exec('str') != null;
});
/***/ }),
/***/ 4488:
/***/ ((module) => {
// `RequireObjectCoercible` abstract operation
// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
module.exports = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
/***/ }),
/***/ 3505:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(7854);
var createNonEnumerableProperty = __webpack_require__(8880);
module.exports = function (key, value) {
try {
createNonEnumerableProperty(global, key, value);
} catch (error) {
global[key] = value;
} return value;
};
/***/ }),
/***/ 6200:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var shared = __webpack_require__(2309);
var uid = __webpack_require__(9711);
var keys = shared('keys');
module.exports = function (key) {
return keys[key] || (keys[key] = uid(key));
};
/***/ }),
/***/ 5465:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(7854);
var setGlobal = __webpack_require__(3505);
var SHARED = '__core-js_shared__';
var store = global[SHARED] || setGlobal(SHARED, {});
module.exports = store;
/***/ }),
/***/ 2309:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var IS_PURE = __webpack_require__(1913);
var store = __webpack_require__(5465);
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: '3.6.5',
mode: IS_PURE ? 'pure' : 'global',
copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});
/***/ }),
/***/ 8710:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var toInteger = __webpack_require__(9958);
var requireObjectCoercible = __webpack_require__(4488);
// `String.prototype.{ codePointAt, at }` methods implementation
var createMethod = function (CONVERT_TO_STRING) {
return function ($this, pos) {
var S = String(requireObjectCoercible($this));
var position = toInteger(pos);
var size = S.length;
var first, second;
if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
first = S.charCodeAt(position);
return first < 0xD800 || first > 0xDBFF || position + 1 === size
|| (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
? CONVERT_TO_STRING ? S.charAt(position) : first
: CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
};
};
module.exports = {
// `String.prototype.codePointAt` method
// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
codeAt: createMethod(false),
// `String.prototype.at` method
// https://github.com/mathiasbynens/String.prototype.at
charAt: createMethod(true)
};
/***/ }),
/***/ 1400:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var toInteger = __webpack_require__(9958);
var max = Math.max;
var min = Math.min;
// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
module.exports = function (index, length) {
var integer = toInteger(index);
return integer < 0 ? max(integer + length, 0) : min(integer, length);
};
/***/ }),
/***/ 5656:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
// toObject with fallback for non-array-like ES3 strings
var IndexedObject = __webpack_require__(8361);
var requireObjectCoercible = __webpack_require__(4488);
module.exports = function (it) {
return IndexedObject(requireObjectCoercible(it));
};
/***/ }),
/***/ 9958:
/***/ ((module) => {
var ceil = Math.ceil;
var floor = Math.floor;
// `ToInteger` abstract operation
// https://tc39.github.io/ecma262/#sec-tointeger
module.exports = function (argument) {
return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
};
/***/ }),
/***/ 7466:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var toInteger = __webpack_require__(9958);
var min = Math.min;
// `ToLength` abstract operation
// https://tc39.github.io/ecma262/#sec-tolength
module.exports = function (argument) {
return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};
/***/ }),
/***/ 7908:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var requireObjectCoercible = __webpack_require__(4488);
// `ToObject` abstract operation
// https://tc39.github.io/ecma262/#sec-toobject
module.exports = function (argument) {
return Object(requireObjectCoercible(argument));
};
/***/ }),
/***/ 7593:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var isObject = __webpack_require__(111);
// `ToPrimitive` abstract operation
// https://tc39.github.io/ecma262/#sec-toprimitive
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (input, PREFERRED_STRING) {
if (!isObject(input)) return input;
var fn, val;
if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
throw TypeError("Can't convert object to primitive value");
};
/***/ }),
/***/ 9711:
/***/ ((module) => {
var id = 0;
var postfix = Math.random();
module.exports = function (key) {
return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
};
/***/ }),
/***/ 3307:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var NATIVE_SYMBOL = __webpack_require__(133);
module.exports = NATIVE_SYMBOL
// eslint-disable-next-line no-undef
&& !Symbol.sham
// eslint-disable-next-line no-undef
&& typeof Symbol.iterator == 'symbol';
/***/ }),
/***/ 5112:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(7854);
var shared = __webpack_require__(2309);
var has = __webpack_require__(6656);
var uid = __webpack_require__(9711);
var NATIVE_SYMBOL = __webpack_require__(133);
var USE_SYMBOL_AS_UID = __webpack_require__(3307);
var WellKnownSymbolsStore = shared('wks');
var Symbol = global.Symbol;
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
module.exports = function (name) {
if (!has(WellKnownSymbolsStore, name)) {
if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];
else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
} return WellKnownSymbolsStore[name];
};
/***/ }),
/***/ 4916:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var $ = __webpack_require__(2109);
var exec = __webpack_require__(2261);
$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {
exec: exec
});
/***/ }),
/***/ 5306:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);
var anObject = __webpack_require__(9670);
var toObject = __webpack_require__(7908);
var toLength = __webpack_require__(7466);
var toInteger = __webpack_require__(9958);
var requireObjectCoercible = __webpack_require__(4488);
var advanceStringIndex = __webpack_require__(1530);
var regExpExec = __webpack_require__(7651);
var max = Math.max;
var min = Math.min;
var floor = Math.floor;
var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g;
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g;
var maybeToString = function (it) {
return it === undefined ? it : String(it);
};
// @@replace logic
fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;
var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;
var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';
return [
// `String.prototype.replace` method
// https://tc39.github.io/ecma262/#sec-string.prototype.replace
function replace(searchValue, replaceValue) {
var O = requireObjectCoercible(this);
var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
return replacer !== undefined
? replacer.call(searchValue, O, replaceValue)
: nativeReplace.call(String(O), searchValue, replaceValue);
},
// `RegExp.prototype[@@replace]` method
// https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
function (regexp, replaceValue) {
if (
(!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||
(typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)
) {
var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
if (res.done) return res.value;
}
var rx = anObject(regexp);
var S = String(this);
var functionalReplace = typeof replaceValue === 'function';
if (!functionalReplace) replaceValue = String(replaceValue);
var global = rx.global;
if (global) {
var fullUnicode = rx.unicode;
rx.lastIndex = 0;
}
var results = [];
while (true) {
var result = regExpExec(rx, S);
if (result === null) break;
results.push(result);
if (!global) break;
var matchStr = String(result[0]);
if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
}
var accumulatedResult = '';
var nextSourcePosition = 0;
for (var i = 0; i < results.length; i++) {
result = results[i];
var matched = String(result[0]);
var position = max(min(toInteger(result.index), S.length), 0);
var captures = [];
// NOTE: This is equivalent to
// captures = result.slice(1).map(maybeToString)
// but for some reason `nativeSlice.call(result, 1, result.length)` (called in
// the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
// causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
var namedCaptures = result.groups;
if (functionalReplace) {
var replacerArgs = [matched].concat(captures, position, S);
if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
var replacement = String(replaceValue.apply(undefined, replacerArgs));
} else {
replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
}
if (position >= nextSourcePosition) {
accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
nextSourcePosition = position + matched.length;
}
}
return accumulatedResult + S.slice(nextSourcePosition);
}
];
// https://tc39.github.io/ecma262/#sec-getsubstitution
function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
var tailPos = position + matched.length;
var m = captures.length;
var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
if (namedCaptures !== undefined) {
namedCaptures = toObject(namedCaptures);
symbols = SUBSTITUTION_SYMBOLS;
}
return nativeReplace.call(replacement, symbols, function (match, ch) {
var capture;
switch (ch.charAt(0)) {
case '$': return '$';
case '&': return matched;
case '`': return str.slice(0, position);
case "'": return str.slice(tailPos);
case '<':
capture = namedCaptures[ch.slice(1, -1)];
break;
default: // \d\d?
var n = +ch;
if (n === 0) return match;
if (n > m) {
var f = floor(n / 10);
if (f === 0) return match;
if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
return match;
}
capture = captures[n - 1];
}
return capture === undefined ? '' : capture;
});
}
});
/***/ }),
/***/ 5482:
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "Z": () => __WEBPACK_DEFAULT_EXPORT__
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports
;
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".skr-button{line-height:1.5715;border:1px solid;border-radius:2px;cursor:pointer;box-shadow:var(--skr-button-box-shadow);transition:var(--skr-button-transition)}.skr-button:focus:not(:focus-visible){outline:0}.skr-button:hover{filter:brightness(1.15)}.skr-button--primary{color:var(--skr-text-inverse-color);background-color:var(--skr-primary-color);border-color:var(--skr-primary-color)}.skr-button--default{color:var(--skr-text-primary-color);background-color:var(--skr-white-color);border-color:var(--skr-border-color)}.skr-button--default:hover{filter:brightness(1);color:var(--skr-primary-color);border-color:currentColor}.skr-button--round{border-radius:50%}.skr-button--shadow{box-shadow:var(--skr-box-shadow-normal)}.skr-button--mini{padding:2px 7px;font-size:12px}.skr-button--small{padding:4px 8px;font-size:12px}.skr-button--normal{padding:4px 15px;font-size:14px}.skr-button--large{padding:10px 20px;font-size:15px}", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ 9261:
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "Z": () => __WEBPACK_DEFAULT_EXPORT__
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports
;
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".skr-input{margin-top:5px;width:100%;padding-left:8px;padding-right:8px;border:1px solid #d9d9d9;transition:all .3s}.skr-input:hover{border-color:var(--skr-primary-color)}.skr-input:focus{box-shadow:0 0 0 2px var(--skr-primary-lighten-color)}.skr-input--small{padding-top:2px;padding-bottom:2px}.skr-input--normal{padding-top:6px;padding-bottom:6px}.skr-input--large{padding-top:10px;padding-bottom:10px}.skr-input--small.skr-input--scale:focus{padding-top:6px;padding-bottom:6px;font-size:14px}", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ 8443:
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "Z": () => __WEBPACK_DEFAULT_EXPORT__
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports
;
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".skr-ripple-container{contain:strict;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;padding:0 !important;margin:0 !important;pointer-events:none !important;border-radius:inherit !important}.skr-ripple{contain:layout;position:absolute;padding:0 !important;margin:0 !important;border-radius:100%;transform:scale(0);pointer-events:none;background:var(--skr-ripple-color);transition:opacity 2s cubic-bezier(0.23, 1, 0.32, 1);animation:skr-ripple forwards cubic-bezier(0.23, 1, 0.32, 1)}@keyframes skr-ripple{to{transform:scale(3)}}", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ 596:
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "Z": () => __WEBPACK_DEFAULT_EXPORT__
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports
;
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, ":root{--skr-primary-color: #2878ff;--skr-primary-lighten-color: rgba(24, 144, 255, 0.2);--skr-white-color: #fff;--skr-transition-duration-fast: 0.1s;--skr-transition-duration-normal: 0.3s;--skr-box-shadow-lighten: 0 1px 6px rgba(0, 0, 0, 0.15);--skr-box-shadow-normal: 0 1px 6px rgba(0, 0, 0, 0.2);--skr-border-color: #d9d9d9;--skr-text-primary-color: #303133;--skr-text-regular-color: #666;--skr-text-secondary-color: #909399;--skr-text-inverse-color: var(--skr-white-color);--skr-button-transition: all var(--skr-transition-duration-normal);--skr-button-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);--skr-ripple-color: rgb(138 218 255 / 20%)}#inject-sign{--container-width: 19vw;--container-right: 10px;box-sizing:border-box;color:var(--skr-text-regular-color)}#inject-sign [class*=skr-]{box-sizing:border-box}#inject-sign.normal,#inject-sign.large{--container-width: 21vw}#inject-sign *::-webkit-scrollbar{width:8px;height:8px;background:#f2f2f2}#inject-sign *::-webkit-scrollbar-thumb{border:0;background:#c1c1c1}#inject-sign a{color:var(--skr-primary-color)}#inject-sign button{background-image:none}#inject-sign.forums-hide .forums-container{bottom:0;transform:translateY(calc(100% - 35px))}#inject-sign.forums-hide .control{bottom:40px}#inject-sign.cover .forums-container{z-index:9999}#inject-sign .control{position:fixed;contain:content;display:flex;z-index:500;bottom:12px;right:max(calc(var(--container-right) + var(--container-width) / 2), 150px);transform:translateX(50%);align-items:center;user-select:none;transition:bottom .3s,right .15s}#inject-sign .control label{margin-left:8px;height:20px;text-shadow:0 1px 3px #fff;cursor:pointer}#inject-sign .control input{margin-right:4px;vertical-align:text-top}#inject-sign .control .label-wrap{display:inline-flex;flex-wrap:wrap;flex:1;max-width:156px;margin-left:10px}#inject-sign .forums-container{position:fixed;contain:content;display:flex;flex-direction:column;z-index:2;bottom:60px;right:var(--container-right);width:var(--container-width);min-width:280px;max-height:calc(100vh - 124px);box-shadow:0 2px 4px rgba(0,0,0,.2);background:#fafafa;padding:5px;transition:transform .3s,bottom .3s,width .15s,box-shadow .3s}#inject-sign .forums-container:hover{box-shadow:0 2px 4px 3px rgba(0,0,0,.1)}#inject-sign header{display:flex;margin-bottom:4px}#inject-sign .reverse-btn{flex:1;text-align:center}#inject-sign .resize-btn{flex:none;margin-left:4px}#inject-sign ul{overflow-x:hidden}#inject-sign ul.small li{height:24px}#inject-sign ul.normal li{height:28px;font-size:13px}#inject-sign ul.large li{height:32px;font-size:14px}#inject-sign li{display:flex;border-bottom:1px solid rgba(221,221,221,.4);cursor:default;transition:height .15s}#inject-sign li:hover{background-color:#f0f8ff}#inject-sign li>*{line-height:2.325em}#inject-sign li a{flex:1;padding-left:.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#inject-sign li .signed{width:.9em}#inject-sign li .level{width:2.4em}#inject-sign li .gain{width:1.8em}#inject-sign li .exp{flex:none;width:6.7em}", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ 3645:
/***/ ((module) => {
"use strict";
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
// eslint-disable-next-line func-names
module.exports = function (cssWithMappingToString) {
var list = []; // return the list of modules as css string
list.toString = function toString() {
return this.map(function (item) {
var content = cssWithMappingToString(item);
if (item[2]) {
return "@media ".concat(item[2], " {").concat(content, "}");
}
return content;
}).join('');
}; // import a list of modules into the list
// eslint-disable-next-line func-names
list.i = function (modules, mediaQuery, dedupe) {
if (typeof modules === 'string') {
// eslint-disable-next-line no-param-reassign
modules = [[null, modules, '']];
}
var alreadyImportedModules = {};
if (dedupe) {
for (var i = 0; i < this.length; i++) {
// eslint-disable-next-line prefer-destructuring
var id = this[i][0];
if (id != null) {
alreadyImportedModules[id] = true;
}
}
}
for (var _i = 0; _i < modules.length; _i++) {
var item = [].concat(modules[_i]);
if (dedupe && alreadyImportedModules[item[0]]) {
// eslint-disable-next-line no-continue
continue;
}
if (mediaQuery) {
if (!item[2]) {
item[2] = mediaQuery;
} else {
item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
}
}
list.push(item);
}
};
return list;
};
/***/ }),
/***/ 3379:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var isOldIE = function isOldIE() {
var memo;
return function memorize() {
if (typeof memo === 'undefined') {
// Test for IE <= 9 as proposed by Browserhacks
// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
// Tests for existence of standard globals is to allow style-loader
// to operate correctly into non-standard environments
// @see https://github.com/webpack-contrib/style-loader/issues/177
memo = Boolean(window && document && document.all && !window.atob);
}
return memo;
};
}();
var getTarget = function getTarget() {
var memo = {};
return function memorize(target) {
if (typeof memo[target] === 'undefined') {
var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
try {
// This will throw an exception if access to iframe is blocked
// due to cross-origin restrictions
styleTarget = styleTarget.contentDocument.head;
} catch (e) {
// istanbul ignore next
styleTarget = null;
}
}
memo[target] = styleTarget;
}
return memo[target];
};
}();
var stylesInDom = [];
function getIndexByIdentifier(identifier) {
var result = -1;
for (var i = 0; i < stylesInDom.length; i++) {
if (stylesInDom[i].identifier === identifier) {
result = i;
break;
}
}
return result;
}
function modulesToDom(list, options) {
var idCountMap = {};
var identifiers = [];
for (var i = 0; i < list.length; i++) {
var item = list[i];
var id = options.base ? item[0] + options.base : item[0];
var count = idCountMap[id] || 0;
var identifier = "".concat(id, " ").concat(count);
idCountMap[id] = count + 1;
var index = getIndexByIdentifier(identifier);
var obj = {
css: item[1],
media: item[2],
sourceMap: item[3]
};
if (index !== -1) {
stylesInDom[index].references++;
stylesInDom[index].updater(obj);
} else {
stylesInDom.push({
identifier: identifier,
updater: addStyle(obj, options),
references: 1
});
}
identifiers.push(identifier);
}
return identifiers;
}
function insertStyleElement(options) {
var style = document.createElement('style');
var attributes = options.attributes || {};
if (typeof attributes.nonce === 'undefined') {
var nonce = true ? __webpack_require__.nc : 0;
if (nonce) {
attributes.nonce = nonce;
}
}
Object.keys(attributes).forEach(function (key) {
style.setAttribute(key, attributes[key]);
});
if (typeof options.insert === 'function') {
options.insert(style);
} else {
var target = getTarget(options.insert || 'head');
if (!target) {
throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
}
target.appendChild(style);
}
return style;
}
function removeStyleElement(style) {
// istanbul ignore if
if (style.parentNode === null) {
return false;
}
style.parentNode.removeChild(style);
}
/* istanbul ignore next */
var replaceText = function replaceText() {
var textStore = [];
return function replace(index, replacement) {
textStore[index] = replacement;
return textStore.filter(Boolean).join('\n');
};
}();
function applyToSingletonTag(style, index, remove, obj) {
var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE
/* istanbul ignore if */
if (style.styleSheet) {
style.styleSheet.cssText = replaceText(index, css);
} else {
var cssNode = document.createTextNode(css);
var childNodes = style.childNodes;
if (childNodes[index]) {
style.removeChild(childNodes[index]);
}
if (childNodes.length) {
style.insertBefore(cssNode, childNodes[index]);
} else {
style.appendChild(cssNode);
}
}
}
function applyToTag(style, options, obj) {
var css = obj.css;
var media = obj.media;
var sourceMap = obj.sourceMap;
if (media) {
style.setAttribute('media', media);
} else {
style.removeAttribute('media');
}
if (sourceMap && typeof btoa !== 'undefined') {
css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
} // For old IE
/* istanbul ignore if */
if (style.styleSheet) {
style.styleSheet.cssText = css;
} else {
while (style.firstChild) {
style.removeChild(style.firstChild);
}
style.appendChild(document.createTextNode(css));
}
}
var singleton = null;
var singletonCounter = 0;
function addStyle(obj, options) {
var style;
var update;
var remove;
if (options.singleton) {
var styleIndex = singletonCounter++;
style = singleton || (singleton = insertStyleElement(options));
update = applyToSingletonTag.bind(null, style, styleIndex, false);
remove = applyToSingletonTag.bind(null, style, styleIndex, true);
} else {
style = insertStyleElement(options);
update = applyToTag.bind(null, style, options);
remove = function remove() {
removeStyleElement(style);
};
}
update(obj);
return function updateStyle(newObj) {
if (newObj) {
if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
return;
}
update(obj = newObj);
} else {
remove();
}
};
}
module.exports = function (list, options) {
options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
// tags it will allow on a page
if (!options.singleton && typeof options.singleton !== 'boolean') {
options.singleton = isOldIE();
}
list = list || [];
var lastIdentifiers = modulesToDom(list, options);
return function update(newList) {
newList = newList || [];
if (Object.prototype.toString.call(newList) !== '[object Array]') {
return;
}
for (var i = 0; i < lastIdentifiers.length; i++) {
var identifier = lastIdentifiers[i];
var index = getIndexByIdentifier(identifier);
stylesInDom[index].references--;
}
var newLastIdentifiers = modulesToDom(newList, options);
for (var _i = 0; _i < lastIdentifiers.length; _i++) {
var _identifier = lastIdentifiers[_i];
var _index = getIndexByIdentifier(_identifier);
if (stylesInDom[_index].references === 0) {
stylesInDom[_index].updater();
stylesInDom.splice(_index, 1);
}
}
lastIdentifiers = newLastIdentifiers;
};
};
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(__webpack_module_cache__[moduleId]) {
/******/ return __webpack_module_cache__[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ id: moduleId,
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => module['default'] :
/******/ () => module;
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/global */
/******/ (() => {
/******/ __webpack_require__.g = (function() {
/******/ if (typeof globalThis === 'object') return globalThis;
/******/ try {
/******/ return this || new Function('return this')();
/******/ } catch (e) {
/******/ if (typeof window === 'object') return window;
/******/ }
/******/ })();
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)
/******/ })();
/******/
/************************************************************************/
(() => {
"use strict";
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js
var es_string_replace = __webpack_require__(5306);
// CONCATENATED MODULE: ./src/utils/index.js
/**
* 解析url上的参数
* @param {string} href 或 带有参数格式的string;有search则不再hash
* @return {object}
*/
function parseURL(href = location.href) {
if (!href) return {};
let search;
try {
// 链接
const url = new URL(href);
({
search
} = url); // 主要处理对hash的search
if (!search && url.hash.includes('?')) {
search = url.hash.split('?')[1];
}
} catch {
// 非链接,如:a=1&b=2、?a=1、/foo?a=1、/foo#bar?a=1
if (href.includes('?')) {
search = href.split('?')[1];
} else {
search = href;
}
}
const searchParams = new URLSearchParams(search);
return [...searchParams.entries()].reduce((acc, [key, value]) => (acc[key] = value, acc), {});
}
function stringifyURL(obj) {
return Object.entries(obj).map(([key, value]) => `${key}=${value}`).join('&');
}
function throttle(fn, delay) {
let t = null;
let begin = Date.now();
return function (...args) {
const self = this;
const cur = Date.now();
clearTimeout(t);
if (cur - begin >= delay) {
fn.apply(self, args);
begin = cur;
} else {
t = setTimeout(function () {
fn.apply(self, args);
}, delay);
}
};
}
function once(fn) {
let called = false;
return function (...args) {
if (called === false) {
called = true;
return fn.apply(this, args);
}
};
}
/**
* 有些脚本是在document-start执行的,安全地获得document
* @param {fn} cb
*/
function documentLoaded(cb) {
document.body ? cb() : window.addEventListener('DOMContentLoaded', cb);
}
/**
* 延时
* @param {number} ms 毫秒数
*/
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
function toFormData(params = {}) {
const formData = new FormData();
for (const [key, value] of Object.entries(params)) {
formData.append(key, value);
}
return formData;
}
// CONCATENATED MODULE: ./src/utils/queue.js
class Queue {
// 默认同时进行5个任务
constructor({
tasks,
limit = 5
}) {
this._tasks = [...tasks];
this._limit = limit; // 当前执行数
this._count = 0; // 任务数
this._tasksCount = tasks.length; // 已完成数
this._finishedCount = 0;
}
run() {
return new Promise(resolve => {
if (this._tasksCount === 0) {
resolve();
return;
}
const {
_tasks
} = this;
const _run = function () {
const idle = Math.min(_tasks.length, this._limit - this._count);
for (let i = 0; i < idle; i++) {
this._count++;
const task = _tasks.shift();
task().finally(() => {
this._count--;
this._finishedCount++;
if (this._finishedCount < this._tasksCount) {
_run();
} else {
resolve();
}
});
}
}.bind(this);
_run();
});
}
}
// CONCATENATED MODULE: ./src/utils/compatibility.js
/**
* 兼容性检查
* @param {object} param0 & param1 版本, notify
* @return {boolean} 是否通过
*/
function checker({
chrome = 80,
firefox = 75,
notify = true
} = {}) {
const {
userAgent
} = window.navigator;
const chromeVersion = userAgent.match(/Chrome\/(\d+)/)?.[1];
const firefoxVersion = userAgent.match(/Firefox\/(\d+)/)?.[1];
let pass = false;
if (chromeVersion && chromeVersion >= chrome) {
pass = true;
} else if (firefoxVersion && firefoxVersion >= firefox) {
pass = true;
}
if (!pass) {
notify && Toast.error(`哎呀!遇到错误:不支持的浏览器版本(需要Chrome${chrome}或Firefox${firefox}以上~),请更新浏览器版本 o(╥﹏╥)o`, 0);
}
return pass;
}
// CONCATENATED MODULE: ./src/store/index.js
/**
* store
* @param {string} modulename key会加入 [[modulename]]- 前缀
* @param {boolean} local 是否本地存储
* @return {proxy}
*/
function createStore(modulename = '', local = true) {
const getRealProp = property => modulename ? `[[${modulename}]]-${property}` : property;
const handler = {
get(target, property) {
const realProp = getRealProp(property);
const value = local ? GM_getValue(realProp) : target[realProp];
return value;
},
set(target, property, value) {
const realProp = getRealProp(property);
local ? GM_setValue(realProp, value) : target[realProp] = value;
return true;
},
deleteProperty(target, property) {
const realProp = getRealProp(property);
local ? GM_deleteValue(realProp) : delete target[realProp];
return true;
}
};
const store = new Proxy({}, handler);
return store;
}
/* harmony default export */ const store = (createStore());
// CONCATENATED MODULE: ./src/scripts/tieba/signature.js
/* global MD5 */
const FAKE_VERSION = '11.8.8.0';
function makeFakeParams(obj) {
return Object.assign({
_client_type: 4,
// prohibit
_client_version: FAKE_VERSION,
_phone_imei: '0'.repeat(15),
model: 'HUAWEI P40',
// HUAWEI加油 ヾ(◍°∇°◍)ノ゙
net_type: 1,
stErrorNums: 1,
stMethod: 1,
stMode: 1,
stSize: 320,
stTime: 117,
stTimesNum: 1,
timestamp: Date.now()
}, obj);
}
function signature(payload, isFake = true) {
if (isFake) {
payload = makeFakeParams(payload);
}
const sortKeys = Object.keys(payload).sort();
let str = sortKeys.reduce((acc, key) => acc += `${key}=${payload[key]}`, '');
str += 'tiebaclient!!!';
return MD5(str);
}
// CONCATENATED MODULE: ./src/scripts/tieba/api.js
;
/**
* 跨域请求,依赖GM_xmlhttpRequest
* @param {string} url
* @param {object} options
*/
function GMRequest(url, options) {
return new Promise((resolve, reject) => {
GM_xmlhttpRequest({
timeout: 1000 * 15,
// 15s超时,0点高峰期失败概率大,BD是1分钟超时,实际上不必等这么久
...options,
url,
onload(res) {
try {
resolve(JSON.parse(res.response));
} catch (e) {
resolve(res.response);
}
},
onerror: reject
});
});
}
GMRequest.post = function (url, data, options) {
return GMRequest(url, { ...options,
data,
method: 'POST'
});
};
/**
* 页面直接发起请求
* @param {string} url
* @param {object} options
*/
function request(url, options) {
return fetch(url, { ...options
});
}
request.post = function (url, data, options = {}) {
options.headers = Object.assign({}, options.headers);
if (data) {
let body = data;
if (options.headers['Content-Type'].includes('application/x-www-form-urlencoded') && Object.prototype.toString.call(data) === '[object Object]') {
body = stringifyURL(data);
}
if (options.headers['Content-Type'].includes('application/json') && Object.prototype.toString.call(data) === '[object Object]') {
body = JSON.stringify(data);
}
options.body = body;
}
return request(url, { ...options,
method: 'POST'
});
};
/* web接口 */
// 获取关注列表
function getNewmoindex() {
return request.post('/mo/q/newmoindex');
}
function doWebSign(params) {
return request.post('/sign/add', {
ie: 'utf-8',
...params
}, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
}
});
}
/* app接口 */
// 获取关注列表
function getForumLike(params) {
// 签名处理
params = makeFakeParams(params);
const paramsSigned = { ...params,
sign: signature(params)
};
return GMRequest.post('http://c.tieba.baidu.com/c/f/forum/like', stringifyURL(paramsSigned), {
headers: {
'User-agent': `bdtb for Android ${FAKE_VERSION}`,
Accept: '',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept-Encoding': 'gzip',
Cookie: 'ka=open'
}
});
}
function api_doSign(params) {
params = makeFakeParams(params);
const paramsSigned = { ...params,
sign: signature(params)
};
return GMRequest.post('http://c.tieba.baidu.com/c/c/forum/sign', stringifyURL(paramsSigned), {
headers: {
'User-agent': `bdtb for Android ${FAKE_VERSION}`,
Accept: '',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept-Encoding': 'gzip',
Cookie: 'ka=open'
}
});
}
// CONCATENATED MODULE: external "Vue"
const external_Vue_namespaceObject = Vue;
// CONCATENATED MODULE: ./src/composition/use-gm-value.js
;
/**
* 同GM_getValue且在生命周期内自动GM_addValueChangeListener与GM_removeValueChangeListener,亦提供GM_setValue
* 暂不提供GM_deleteValue
* @param {string} name
* @param {any} defaultValue
*/
function useGMvalue(name, defaultValue) {
const state = (0,external_Vue_namespaceObject.reactive)({
value: GM_getValue(name, defaultValue),
old: undefined,
name
});
(0,external_Vue_namespaceObject.onUnmounted)(() => {
GM_removeValueChangeListener(id);
});
const id = GM_addValueChangeListener(name, (name, oldVal, newVal) => {
state.value = newVal;
state.old = oldVal;
});
function setValue(val) {
GM_setValue(name, val);
}
return { ...(0,external_Vue_namespaceObject.toRefs)(state),
setValue
};
}
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
var injectStylesIntoStyleTag = __webpack_require__(3379);
var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/input/index.scss
var input = __webpack_require__(9261);
// CONCATENATED MODULE: ./src/components/input/index.scss
;
var options = {};
options.insert = "head";
options.singleton = false;
var update = injectStylesIntoStyleTag_default()(input/* default */.Z, options);
/* harmony default export */ const components_input = (input/* default.locals */.Z.locals || {});
// CONCATENATED MODULE: ./src/components/input/index.js
;
const prefixCls = 'skr-input';
const Input = (0,external_Vue_namespaceObject.defineComponent)({
name: 'skr-input',
props: {
modelValue: {
type: [String, Number],
default: ''
},
size: {
type: String,
validator: value => ['small', 'normal', 'large'].includes(value),
default: 'normal'
},
scale: {
type: Boolean,
default: false
}
},
emit: ['update:modelValue'],
setup(props, {
emit
}) {
return () => (0,external_Vue_namespaceObject.createVNode)("input", {
"class": [prefixCls, `${prefixCls}--${props.size}`, {
[`${prefixCls}--scale`]: props.scale
}],
"value": props.modelValue,
"type": "text",
"onInput": event => emit('update:modelValue', event.target.value)
}, null);
}
});
/* harmony default export */ const src_components_input = (Input);
// CONCATENATED MODULE: ./src/directives/v-ripple/utils.js
/**
* 计算一个点离矩形中心点的距离
* @param {number} width 矩形宽
* @param {number} height 矩形高
* @return {function} function(left top 在矩形内点的坐标) @return {number} 距离
*/
function calcDiagInRect(width, height) {
const halfWidth = width / 2;
const halfHeight = height / 2;
return function (left, top) {
const a = left <= halfWidth ? halfWidth - left : left - halfWidth;
const b = top <= halfHeight ? halfHeight - top : top - halfHeight;
const c = Math.sqrt(a * a + b * b);
return c;
};
}
/**
* 计算当前值离总值中心的位置 越靠近中心值为1,远离中心值为0
* 例如:value:50 extent:100 则计算50在0-100中的位置返回1
* value:0或100 extent:100 返回0
* @param {number} value 当前值
* @param {number} extent 总值
* @return {number} 取值0-1
*/
function closeness(value, extent) {
if (!value || !extent) return 0;
const half = extent / 2;
return value <= half ? value / half : 1 - value / extent;
}
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/directives/v-ripple/index.scss
var v_ripple = __webpack_require__(8443);
// CONCATENATED MODULE: ./src/directives/v-ripple/index.scss
;
var v_ripple_options = {};
v_ripple_options.insert = "head";
v_ripple_options.singleton = false;
var v_ripple_update = injectStylesIntoStyleTag_default()(v_ripple/* default */.Z, v_ripple_options);
/* harmony default export */ const directives_v_ripple = (v_ripple/* default.locals */.Z.locals || {});
// CONCATENATED MODULE: ./src/directives/v-ripple/index.js
;
const containerClassname = 'skr-ripple-container';
const rippleClassname = 'skr-ripple';
const vmap = new WeakMap();
/**
* 创建容器元素
*/
function createRippleContainer() {
const div = document.createElement('div');
div.classList.add(containerClassname);
return div;
}
/**
* 创建涟漪元素
*/
function createRippleEl() {
const span = document.createElement('div');
span.classList.add(rippleClassname);
return span;
}
function checkOptions(options = {}) {
if (typeof options === 'boolean') {
return {
disabled: !options
};
}
return options;
}
/**
* 添加涟漪效果
* @param {object} options color颜色 disabled禁用 布尔值时false为禁用
*/
const addRippleEffect = function (options = {}) {
options = checkOptions(options); // 涟漪个数
let count = 0;
function listener(event) {
if (options.disabled) return;
const {
currentTarget
} = event; // 优化: 处理过后不再调用getComputedStyle
if (vmap.get(currentTarget).position === false) {
vmap.get(currentTarget).position = true; // 注意:会改变当前元素定位方式
if (getComputedStyle(currentTarget).position === 'static') {
currentTarget.style.position = 'relative';
}
}
const rect = currentTarget.getBoundingClientRect();
const rippleEl = createRippleEl(); // 取元素长的一边作为涟漪的周长
const side = Math.max(rect.width, rect.height);
const radius = side / 2; // 鼠标在元素中的坐标
const left = event.pageX - rect.left - window.scrollX;
const top = event.pageY - rect.top - window.scrollY; // 选项加入到元素中
rippleEl.style.background = options.color;
rippleEl.style.width = side + 'px';
rippleEl.style.height = side + 'px'; // 元素定位再各减自身的宽高一半
rippleEl.style.top = top - radius + 'px';
rippleEl.style.left = left - radius + 'px'; // 动画在元素中间扩散时基础时长1.5s,当点击范围处于元素边缘时,动画扩散比在元素中间位置要长,所以要加快动画进行
const base = 1.5;
const diagonal = calcDiagInRect(rect.width, rect.height)(left, top);
rippleEl.style.animationDuration = base - base * diagonal / side + 's';
let container = currentTarget.querySelector(`.${containerClassname}`);
if (!container) {
container = createRippleContainer();
currentTarget.appendChild(container);
}
container.appendChild(rippleEl);
count++;
const unlisten = (() => {
const leaveEvents = ['mouseup', 'mouseleave'];
const listener = () => {
// 为了尽量能看清动画效果,延时一下再进行透明
setTimeout(() => {
rippleEl.style.opacity = 0;
}, 100);
};
leaveEvents.forEach(eventname => currentTarget.addEventListener(eventname, listener));
return () => {
leaveEvents.forEach(eventname => currentTarget.removeEventListener(eventname, listener));
};
})(); // 移除涟漪元素
rippleEl.addEventListener('transitionend', transEvent => {
if (transEvent.propertyName === 'opacity') {
unlisten();
rippleEl.remove(); // 没有涟漪元素时移除容器
if (--count <= 0) {
container.remove();
}
}
});
} // 更新配置项
function update(newOpts) {
options = Object.assign({}, options, checkOptions(newOpts));
}
return {
listener,
update
};
};
const vRipple = {
mounted(el, binding) {
const {
listener,
update
} = addRippleEffect(binding.value);
vmap.set(el, {
listener,
update,
// 更新配置项函数
position: false // 是否已经改变了el的定位方式
});
el.addEventListener('mousedown', listener, false);
},
updated(el, binding) {
const val = vmap.get(el);
val.update(binding.value);
}
};
/* harmony default export */ const src_directives_v_ripple = (vRipple);
// CONCATENATED MODULE: ./src/directives/index.js
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/button/index.scss
var components_button = __webpack_require__(5482);
// CONCATENATED MODULE: ./src/components/button/index.scss
;
var button_options = {};
button_options.insert = "head";
button_options.singleton = false;
var button_update = injectStylesIntoStyleTag_default()(components_button/* default */.Z, button_options);
/* harmony default export */ const src_components_button = (components_button/* default.locals */.Z.locals || {});
// CONCATENATED MODULE: ./src/components/button/index.js
;
const button_prefixCls = 'skr-button'; // button type非default时覆盖一层白色
const rippleColor = 'rgb(255 255 255 / 15%)';
const Button = (0,external_Vue_namespaceObject.defineComponent)({
name: 'skr-button',
props: {
type: {
type: String,
validator: value => ['primary', 'info', 'warning', 'danger', 'default'].includes(value),
default: 'default'
},
plain: {
type: Boolean,
default: false
},
round: {
type: Boolean,
default: false
},
shadow: {
type: Boolean,
default: false
},
size: {
type: String,
validator: value => ['mini', 'small', 'normal', 'large'].includes(value),
default: 'normal'
},
// 涟漪效果 object时参数会透传给ripple
ripple: {
type: [Boolean, Object],
default: true
}
},
directives: {
ripple: src_directives_v_ripple
},
setup(props, {
slots
}) {
const rippleOptions = (0,external_Vue_namespaceObject.computed)(() => {
return Object.assign({}, {
color: props.type === 'default' ? undefined : rippleColor
}, typeof props.ripple === 'boolean' ? {
disabled: !props.ripple
} : props.ripple);
});
return () => (0,external_Vue_namespaceObject.withDirectives)((0,external_Vue_namespaceObject.createVNode)("button", {
"class": [button_prefixCls, `${button_prefixCls}--${props.type}`, {
[`${button_prefixCls}--round`]: props.round,
[`${button_prefixCls}--shadow`]: props.shadow
}, `${button_prefixCls}--${props.size}`]
}, [slots.default()]), [[(0,external_Vue_namespaceObject.resolveDirective)("ripple"), rippleOptions.value]]);
}
});
/* harmony default export */ const src_components_button_0 = (Button);
// CONCATENATED MODULE: ./src/components/index.js
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/scripts/tieba/ui.scss
var ui = __webpack_require__(596);
// CONCATENATED MODULE: ./src/scripts/tieba/ui.scss
;
var ui_options = {};
ui_options.insert = "head";
ui_options.singleton = false;
var ui_update = injectStylesIntoStyleTag_default()(ui/* default */.Z, ui_options);
/* harmony default export */ const tieba_ui = (ui/* default.locals */.Z.locals || {});
// CONCATENATED MODULE: ./src/scripts/tieba/ui.js
;
// eslint-disable-next-line no-unused-vars
/* eslint-disable camelcase */
function createUI({
store,
runByBDUSS,
runByWeb
}) {
// 兼容性:名称字段更换 middle -> normal
if (store.size === 'middle') {
store.size = 'normal';
}
const sizeTick = function* () {
const sizes = ['small', 'normal', 'large'];
let currSize = store.size ?? 'small';
let index = sizes.findIndex(v => v === currSize);
while (true) {
index >= sizes.length && (index = 0);
currSize = sizes[index++];
store.size = currSize;
yield currSize;
}
}();
const app = (0,external_Vue_namespaceObject.createApp)({
render() {
const {
loading,
size,
keyword,
isComplete,
isForumsHide,
isCover,
isReverse,
counter,
likeForums,
diaplayForums,
run,
setKeyword,
setComplete,
setForumsHide,
setCover,
changeReverse,
changeSize,
onSimulateChange
} = this;
function expTitle(item) {
const MAX_EXP_DAILY = 8;
const needed = item.levelup_score - item.user_exp;
return `距离升级还需要${needed}经验,若每天+${MAX_EXP_DAILY},还需要${Math.ceil(needed / MAX_EXP_DAILY)}天`;
}
return (0,external_Vue_namespaceObject.createVNode)("div", {
"id": "inject-sign",
"class": {
'forums-hide': isForumsHide,
cover: isCover,
[size]: true
}
}, [(0,external_Vue_namespaceObject.createVNode)("div", {
"class": "control"
}, [(0,external_Vue_namespaceObject.createVNode)(src_components_button_0, {
"disabled": loading,
"type": "primary",
"shadow": true,
"onClick": run
}, {
default: () => [(0,external_Vue_namespaceObject.createTextVNode)("\u4E00\u952E\u7B7E\u5230")]
}), (0,external_Vue_namespaceObject.createVNode)("div", {
"class": "label-wrap"
}, [(0,external_Vue_namespaceObject.createVNode)("label", {
"title": "模拟APP签到可以获得与APP相同的经验,比网页签到经验更多,也提供更多功能,但需要BDUSS,重新登录后需要再次输入,请网上搜索获得方法,不勾选则通过网页签到,此时不需要BDUSS"
}, [(0,external_Vue_namespaceObject.createVNode)("input", {
"checked": this.isSimulate,
"type": "checkbox",
"onChange": onSimulateChange
}, null), (0,external_Vue_namespaceObject.createTextVNode)("\u6A21\u62DFAPP")]), (0,external_Vue_namespaceObject.createVNode)("label", {
"title": "下次进入贴吧时自动签到,建议同时勾选模拟APP"
}, [(0,external_Vue_namespaceObject.createVNode)("input", {
"checked": isComplete,
"type": "checkbox",
"onChange": event => setComplete(event.target.checked)
}, null), (0,external_Vue_namespaceObject.createTextVNode)("\u81EA\u52A8\u7B7E\u5230")]), likeForums.length > 0 && (0,external_Vue_namespaceObject.createVNode)(external_Vue_namespaceObject.Fragment, null, [(0,external_Vue_namespaceObject.createVNode)("label", {
"title": "列表将缩到底部"
}, [(0,external_Vue_namespaceObject.createVNode)("input", {
"checked": this.isForumsHide,
"type": "checkbox",
"onChange": event => setForumsHide(event.target.checked)
}, null), (0,external_Vue_namespaceObject.createTextVNode)("\u9690\u85CF\u5217\u8868")]), (0,external_Vue_namespaceObject.createVNode)("label", {
"title": "覆盖在页面上显示"
}, [(0,external_Vue_namespaceObject.createVNode)("input", {
"checked": this.isCover,
"type": "checkbox",
"onChange": event => setCover(event.target.checked)
}, null), (0,external_Vue_namespaceObject.createTextVNode)("\u9632\u6B62\u906E\u6321")])])])]), likeForums.length > 0 && (0,external_Vue_namespaceObject.createVNode)("div", {
"class": "forums-container"
}, [(0,external_Vue_namespaceObject.createVNode)("header", {
"class": "top-btns"
}, [(0,external_Vue_namespaceObject.createVNode)(src_components_button_0, {
"class": "reverse-btn",
"size": "mini",
"onClick": changeReverse
}, {
default: () => [isReverse ? '已倒序' : '普通', (0,external_Vue_namespaceObject.createVNode)("span", {
"title": "已签/总数"
}, [counter.sign, (0,external_Vue_namespaceObject.createTextVNode)("/"), counter.total])]
}), (0,external_Vue_namespaceObject.createVNode)(src_components_button_0, {
"class": "resize-btn",
"size": "mini",
"onClick": changeSize
}, {
default: () => [(0,external_Vue_namespaceObject.createTextVNode)("\u5927\u5C0F")]
})]), (0,external_Vue_namespaceObject.createVNode)("ul", {
"class": {
[size]: true
}
}, [diaplayForums.map(item => (0,external_Vue_namespaceObject.createVNode)("li", {
"key": item.forum_id
}, [(0,external_Vue_namespaceObject.createVNode)("a", {
"href": '/f?kw=' + item.forum_name,
"title": item.forum_name,
"target": "_blank"
}, [item.forum_name]), (0,external_Vue_namespaceObject.createVNode)("span", {
"class": "signed"
}, [item.is_sign ? ' √' : '']), (0,external_Vue_namespaceObject.createVNode)("span", {
"class": "level",
"title": item.level_name
}, [item.user_level, (0,external_Vue_namespaceObject.createTextVNode)("\u7EA7")]), (0,external_Vue_namespaceObject.createVNode)("span", {
"class": "gain"
}, [item.sign_bonus_point ? '+' + item.sign_bonus_point : '']), (0,external_Vue_namespaceObject.createVNode)("span", {
"class": "exp",
"title": expTitle(item)
}, [item.user_exp, (0,external_Vue_namespaceObject.createTextVNode)("/"), item.levelup_score])]))]), likeForums.length > 25 && (0,external_Vue_namespaceObject.createVNode)(src_components_input, {
"value": keyword,
"placeholder": "搜索",
"size": "small",
"scale": true,
"onInput": event => setKeyword(event.target.value)
}, null)])]);
},
setup() {
const state = (0,external_Vue_namespaceObject.reactive)({
loading: false,
size: sizeTick.next().value,
isSimulate: false,
isReverse: store.is_reverse || false,
likeForums: []
});
const {
value: keyword,
setValue: setKeyword
} = useGMvalue('keyword', '');
const {
value: isComplete,
setValue: setComplete
} = useGMvalue('is_complete', false);
const {
value: isForumsHide,
setValue: setForumsHide
} = useGMvalue('is_forums_hide', false);
const {
value: isCover,
setValue: setCover
} = useGMvalue('is_cover', false);
const diaplayForums = (0,external_Vue_namespaceObject.computed)(() => {
let ectype = [...state.likeForums];
state.isReverse && ectype.reverse();
if (keyword.value) {
// 忽略大小写
ectype = ectype.filter(forum => forum.forum_name.toUpperCase().includes(keyword.value.toUpperCase()));
}
return ectype;
});
const counter = (0,external_Vue_namespaceObject.computed)(() => ({
total: state.likeForums.length,
sign: state.likeForums.filter(({
is_sign
}) => is_sign).length
})); // 勾选模拟APP并且确认有BDUSS 才算开启
if (store.is_simulate && store.BDUSS) {
state.isSimulate = true;
} // 自动签到
if (isComplete.value) {
run();
}
function run() {
state.loading = true; // TODO: 应该有更好的实现方法
const exportApi = {
updateLikeForum,
checkUnsign
};
(state.isSimulate ? runByBDUSS : runByWeb)(exportApi).finally(() => {
state.loading = false;
});
}
function setLikeForums(forums) {
state.likeForums = [...forums];
}
function updateLikeForum(fid, forum) {
const index = state.likeForums.findIndex(item => +fid === +item.forum_id);
if (index === -1) return;
const target = { ...state.likeForums[index],
...forum
};
if (forum.sign_bonus_point) {
target.user_exp = Number(target.user_exp) + Number(forum.sign_bonus_point);
}
state.likeForums.splice(index, 1, target);
} // 未签到的靠前
function checkUnsign() {
state.likeForums.sort((a, b) => {
if (!a.is_sign && b.is_sign) return -1;
return 0;
});
}
function changeReverse() {
state.isReverse = !state.isReverse;
store.is_reverse = state.isReverse;
}
function changeSize() {
state.size = sizeTick.next().value;
}
function onSimulateChange({
target: {
checked
}
}) {
store.is_simulate = checked;
if (!checked) return;
const {
BDUSS
} = store;
const result = window.prompt('请输入F12->Application->Cookies中的BDUSS', BDUSS || undefined);
if (result) {
store.BDUSS = result;
location.reload();
} else {
(0,external_Vue_namespaceObject.nextTick)(() => {
state.isSimulate = false;
store.is_simulate = false;
});
}
}
return { ...(0,external_Vue_namespaceObject.toRefs)(state),
keyword,
isComplete,
isForumsHide,
isCover,
diaplayForums,
counter,
run,
setLikeForums,
updateLikeForum,
checkUnsign,
setKeyword,
setComplete,
setForumsHide,
setCover,
changeReverse,
changeSize,
onSimulateChange
};
}
});
const rootContainer = document.createElement('div');
const ui = app.mount(rootContainer);
document.body.appendChild(rootContainer);
return {
setLikeForums: ui.setLikeForums,
updateLikeForum: ui.updateLikeForum,
checkUnsign: ui.checkUnsign
};
}
// CONCATENATED MODULE: ./src/scripts/tieba/index.js
;
/* eslint-disable camelcase */
const $$ = document.querySelectorAll.bind(document); // 页面节点 jquery元素
let $moreforumEl;
async function main() {
if (!checker()) return;
const {
jQuery
} = unsafeWindow;
$moreforumEl = jQuery('#moreforum'); // 未登录时删除已有的BDUSS
if (!$moreforumEl.length) {
delete store.BDUSS;
delete store.is_complete;
return;
}
let likeForums = null;
if (store.BDUSS) {
try {
likeForums = await getLikeForums();
} catch (error) {
console.error(error);
Toast.error('获取贴吧列表失败。。请刷新重试~', 0);
}
}
const ui = createUI({
store: store,
runByBDUSS,
runByWeb
});
if (likeForums) {
ui.setLikeForums(likeForums);
ui.checkUnsign();
}
} // 界面上无法获得失效的贴吧,这里调用接口获取所有关注的贴吧
async function getLikeForums() {
const {
BDUSS
} = store;
const tbs = unsafeWindow.PageData.tbs;
const req2 = {
BDUSS,
tbs
};
const [like1, like2Map] = await Promise.all([getNewmoindex().then(response => response.json()).then(data => data.data.like_forum), getForumLike(req2).then(data => data.forum_list).then(forum_list => forum_list.reduce((acc, val) => (acc[val.id] = val, acc), {}))]); // 融合数据
like1.forEach(forum => {
const {
forum_id
} = forum;
const like2Forum = like2Map[forum_id];
if (!like2Forum) return;
Object.assign(forum, {
levelup_score: like2Forum.levelup_score,
level_name: like2Forum.level_name,
slogan: like2Forum.slogan
});
}); // 经验降序
like1.sort((a, b) => b.user_exp - a.user_exp);
return like1;
} // 通过BDUSS签到 获得经验与客户端签到相同
async function runByBDUSS(ui) {
// 贴吧必须先触发才能获取剩下贴吧
$moreforumEl.trigger(new MouseEvent('mouseenter')); // 侧边元素
const likeUnsignEls = $$('#likeforumwraper .unsign'); // 查看更多元素
const alwayUnsignEls = $$('#alwayforum-wraper .unsign'); // 关闭面板
$moreforumEl.trigger(new Event('click'));
const allUnsignEls = [...likeUnsignEls, ...alwayUnsignEls]; // 需要重新签到元素(失败时尝试重签)
const resignEls = [];
if (!allUnsignEls.length) {
Toast.success('所有贴吧已经签到');
return;
}
const toast = Toast('开始签到,请等待', 0); // 签到
function doSign(data) {
const {
BDUSS
} = store;
const {
tbs,
fid,
kw
} = data;
const params = {
// 以下4个参数 + sign参数 是必选的
BDUSS,
tbs,
fid,
kw
};
return api_doSign(params);
}
const tbs = unsafeWindow.PageData.tbs;
const queue = new Queue({
// 限制5个任务,大于5个签到失败的概率好像大点了!
limit: 5,
tasks: allUnsignEls.map(current => {
return async function () {
const {
kw
} = parseURL(current.href);
const {
fid
} = current.dataset;
try {
const response = await doSign({
tbs,
kw,
fid
});
const {
error_code,
error,
user_info
} = response; // 贴吧成功码为0 还会出现code为0但error的情况
if (error_code !== '0' || error) throw response; // 标记为已签到
user_info.is_sign = true;
ui.updateLikeForum(fid, user_info); // 替换已签到样式
current.classList.replace('unsign', 'sign');
} catch (e) {
console.error(e); // 重签
resignEls.push(current);
} // 客户端签到可以将延时缩短,随机延时一下 50ms以上
const ms = parseInt(Math.random() * 20 + 50);
await sleep(ms);
};
})
});
await queue.run();
let failCount = 0; // 重签
while (resignEls.length) {
const current = resignEls.shift();
const {
kw
} = parseURL(current.href);
const {
fid
} = current.dataset;
try {
const response = await doSign({
tbs,
kw,
fid
});
const {
error_code,
error,
user_info
} = response;
if (error_code !== '0' || error) throw response;
user_info.is_sign = true;
ui.updateLikeForum(fid, user_info);
current.classList.replace('unsign', 'sign');
} catch (e) {
console.error(e);
failCount++;
Toast.error(`${decodeURIComponent(kw)} 签到失败`);
}
await sleep(500);
}
toast.close();
failCount ? Toast.warning(`签到成功,失败${failCount}个`, 0) : Toast.success('签到成功');
ui.checkUnsign();
} // 网页签到 经验没客户端那么多 但不需要获得BDUSS只需贴吧已登录即可
async function runByWeb() {
// 贴吧必须先触发才能获取剩下贴吧
$moreforumEl.trigger(new MouseEvent('mouseenter')); // 侧边元素
const likeUnsignEls = $$('#likeforumwraper .unsign'); // 查看更多元素
const alwayUnsignEls = $$('#alwayforum-wraper .unsign'); // 关闭面板
$moreforumEl.trigger(new Event('click'));
const allUnsignEls = [...likeUnsignEls, ...alwayUnsignEls]; // 需要重新签到元素(失败时尝试重签)
const resignEls = [];
if (!allUnsignEls.length) {
Toast.success('所有贴吧已经签到');
return;
}
const toast = Toast('开始签到,请等待', 0); // 签到
function doSign(data) {
return doWebSign(data).then(response => response.json());
}
while (allUnsignEls.length) {
const current = allUnsignEls.shift();
const {
kw
} = parseURL(current.href);
try {
const response = await doSign({
kw
});
const {
no
} = response; // 贴吧成功码为0
if (no !== 0) throw response; // 替换已签到样式
current.classList.replace('unsign', 'sign');
} catch (e) {
console.error(e); // 重签
resignEls.push(current);
} // 网页签到不能太短,否则很容易出现验证码(ಥ﹏ಥ) 验证码2150040
const ms = parseInt(Math.random() * 500 + 500);
await sleep(ms);
}
let failCount = 0; // 重签
while (resignEls.length) {
const current = resignEls.shift();
const {
kw
} = parseURL(current.href);
try {
const response = await doSign({
kw
});
const {
no
} = response;
if (no !== 0) throw response;
current.classList.replace('unsign', 'sign');
} catch (e) {
console.error(e);
failCount++;
Toast.error(`${decodeURIComponent(kw)} 签到失败`);
}
await sleep(500);
}
toast.close();
failCount ? Toast.warning(`签到成功,失败${failCount}个`, 0) : Toast.success('签到成功');
}
main();
})();
/******/ })()
;