|

楼主 |
发表于 2022-11-28 13:01:24
手机版
|
显示全部楼层
Lyyy233 发表于 2022-11-28 00:162 x. ^2 C; Y2 b5 N. M(欢迎访问老王论坛:laowang.vip)
lz这个115网盘点秒传要怎么搞啊,整了半天没一个插件能打开的 ...
4 M- X/ r I, M先下载一个115浏览器电脑端,找到浏览器右上角有个三个点,点开有个扩展程序,再点左上角有个几道杠的东西在拓展程序旁边那个,然后找到115拓展中心点开搜索tam就会出现一个小黑脸一样的插件,下载,下载完你的浏览器右上角会有个小脸,点开有个管理面板,点开右上角有个小加号点开,全选然后替换成我在最后弄的这段话,替换完毕后左边有个文件点开保存,再打开115网盘网络版,就会出现一个连接与sha1转存任务,点开把我这次的115链接粘贴到上面就可以开始转存,转存完就可以下载了。// ==UserScript==
4 h) ?3 ^! A( W3 j// @name 115转存助手ui优化版3.5改- w/ l" ?; W8 h3 `% C5 i(欢迎访问老王论坛:laowang.vip)
// @name:zh 115转存助手ui优化版3.5改( T t2 S' t- i3 h1 F(欢迎访问老王论坛:laowang.vip)
// @description 2022.04.02 更新,115转存助手ui优化版 v3.5改 (143.2022.0402.1)(based on Fake115Upload 1.4.3 @T3rry)
, k+ W: a/ ?4 G& _$ \// @author Never4Ever
; A6 A2 a$ Z' Q1 c; x# L( A// @namespace Fake115Upload@Never4Ever! w* w g& _" v(欢迎访问老王论坛:laowang.vip)
// @version 143.2022.0402.1
# k$ [! s! e4 r* ?! T) @// @match https://115.com/*
9 E. J9 C* g2 e: ]% d* {6 |// @exclude https://115.com/s/*4 e( z, x4 J4 ](欢迎访问老王论坛:laowang.vip)
9 Q# ]$ L+ u: ~5 v(欢迎访问老王论坛:laowang.vip)
// @grant GM_xmlhttpRequest
0 C1 M' z$ b) V% Y* s0 w4 h// @grant GM_log- A8 Q" ]1 D) ^# {- ~5 C0 i(欢迎访问老王论坛:laowang.vip)
// @grant GM_setValue
' ~+ ^+ Z- \& ^- r$ {9 w/ }) ]// @grant GM_getValue* n c9 P' P! C, h( R: e& Y0 B(欢迎访问老王论坛:laowang.vip)
// @grant GM_setClipboard
% n [1 e' g( j- _8 n, V4 ?// @grant unsafeWindow) N+ y& ]# M2 `& \+ |(欢迎访问老王论坛:laowang.vip)
// @grant GM_registerMenuCommand4 l; W. j% a; |1 R2 z' f5 ? ^3 B(欢迎访问老王论坛:laowang.vip)
// @grant GM_addStyle9 v: w$ n1 R4 Y0 K1 r(欢迎访问老王论坛:laowang.vip)
// @grant GM_info {6 C# {, ]8 e4 M& C3 e1 I. D(欢迎访问老王论坛:laowang.vip)
7 n0 F' {' h4 c7 B(欢迎访问老王论坛:laowang.vip)
// @connect proapi.115.com' ?6 t, B9 t4 S0 \7 B7 r8 ?% Q(欢迎访问老王论坛:laowang.vip)
// @connect webapi.115.com
1 r( ?* O5 [0 }% {// @connect 115.com
7 R! M h- i* e- F7 r8 h
: c, u, [# H. ^! C7 Q1 ~7 A7 a// @require https://unpkg.zhimg.com/[email protected]/underscore-min.js
0 K8 _" t$ K* A1 I# {% N) x, P# @1 q// @require https://unpkg.zhimg.com/[email protected]8 _" a! \6 E9 d$ a* _& t+ g(欢迎访问老王论坛:laowang.vip)
// @require https://unpkg.zhimg.com/[email protected]/dist/forge.min.js6 v) u+ n% O0 S ?3 W* ~(欢迎访问老王论坛:laowang.vip)
// @require https://unpkg.zhimg.com/[email protected]/dist/umd/emoutils.min.js+ ~- X* o" {0 o: d* T# ~(欢迎访问老王论坛:laowang.vip)
// @require https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js
3 V% ?- N; m+ h4 e8 F// @require https://peterolson.github.io/BigInteger.js/BigInteger.min.js7 H4 t2 z$ g9 W5 n. q3 F9 C1 |. f(欢迎访问老王论坛:laowang.vip)
// ==/UserScript==- m/ v! d" b/ J! ?4 x# R(欢迎访问老王论坛:laowang.vip)
: P% ?% l, s1 h8 s" J(欢迎访问老王论坛:laowang.vip)
4 X: w; U) h4 Y(欢迎访问老王论坛:laowang.vip)
/*********************************************& x( V1 ~: e& B8 t3 p(欢迎访问老王论坛:laowang.vip)
请从以下获取最新版,或者遇到问题去此反馈,感谢+ v1 f% A [( Q. I9 Q3 h6 L1 H(欢迎访问老王论坛:laowang.vip)
https://gist.github.com/Nerver4Ever/953447c9ecd330ffc0861d4cbb8393690 g+ J5 ?8 ?$ w& e( L: l(欢迎访问老王论坛:laowang.vip)
**********************************************// q6 Z. ^; p6 h7 k0 K' e. U' _- |(欢迎访问老王论坛:laowang.vip)
* B" q7 z, v k- u4 {; @* {/*针对网络问题,只能将不稳定的依赖库放置于此*/, T& P+ J' e [( N4 a7 g(欢迎访问老王论坛:laowang.vip)
$ \. p/ t C4 t/*[email protected]/src/sha.js*/+ p% @( M- P/ r' H2 k(欢迎访问老王论坛:laowang.vip)
/*
6 ~6 W5 g5 b% B* \- P0 i+ X5 E A JavaScript implementation of the SHA family of hashes, as2 E) i8 z1 Q0 M(欢迎访问老王论坛:laowang.vip)
defined in FIPS PUB 180-4 and FIPS PUB 202, as well as the corresponding
0 M- l+ `* C, c HMAC implementation as defined in FIPS PUB 198a* g0 {& P2 S4 D8 J9 Y" [' R) ^ {(欢迎访问老王论坛:laowang.vip)
! s6 M% w5 g/ w Copyright Brian Turek 2008-20176 V. j! i% D. |. @, S" r8 h(欢迎访问老王论坛:laowang.vip)
Distributed under the BSD License
3 L: Z% g- X8 Z; i2 f. Z See http://caligatio.github.com/jsSHA/ for more information5 n3 S5 k1 ~; Y( i; |6 b(欢迎访问老王论坛:laowang.vip)
& b- t2 d* C0 e3 b; }! B5 T Several functions taken from Paul Johnston
6 g0 T8 l% Y3 Q0 l3 ?5 f% I' p*/7 U6 f7 N$ z. L(欢迎访问老王论坛:laowang.vip)
'use strict';' V, S7 y* [% n6 ]' |- o5 Q(欢迎访问老王论坛:laowang.vip)
(function (Y) {6 m9 g, s% a& q% Z& Z0 I(欢迎访问老王论坛:laowang.vip)
function C(c, a, b) {
! o- c: q- u i) ^/ u. [( J var e = 0,. m! ]- P9 q9 u(欢迎访问老王论坛:laowang.vip)
h = [],7 Z9 n# i5 Y) Q$ U! d' a' F(欢迎访问老王论坛:laowang.vip)
n = 0,
+ d2 H+ n6 E' d" Y8 }9 S g, l, d, f, m, q, u, r, I = !1,- u+ a) B( `( ?- c5 N6 B(欢迎访问老王论坛:laowang.vip)
v = [],- y; y: X5 s6 W! U; D# h/ @7 A' ](欢迎访问老王论坛:laowang.vip)
w = [],0 x5 } P* F, T(欢迎访问老王论坛:laowang.vip)
t, y = !1,
+ q% o$ F5 P$ Q! j0 B z = !1,* E6 g, B5 m, ?(欢迎访问老王论坛:laowang.vip)
x = -1;$ ` I% G: O, s3 u(欢迎访问老王论坛:laowang.vip)
b = b || {};
& n( y5 z0 j! O& F3 p g = b.encoding || "UTF8";
S: p$ N7 H7 E% V t = b.numRounds || 1;! k5 N3 W% R8 C" Y! ^) l& Q(欢迎访问老王论坛:laowang.vip)
if (t !== parseInt(t, 10) || 1 > t) throw Error("numRounds must a integer >= 1");
2 T- y3 q; J5 l p4 L if ("SHA-1" === c) m = 512, q = K, u = Z, f = 160, r = function (a) {( a1 @$ h; H8 o5 O. }$ F(欢迎访问老王论坛:laowang.vip)
return a.slice()
7 ~" m, I0 ^ ^8 r+ Q };
& g! n8 |1 ?7 `, G8 |- W else if (0 === c.lastIndexOf("SHA-", 0))
0 S, i5 Z S4 N. @' B h. K if (q = function (a, b) {
/ c; T5 X' j/ O- \5 S S' w0 U1 j* e/ k return L(a, b, c): p. `9 U; l8 g3 ^( Y8 i(欢迎访问老王论坛:laowang.vip)
}, u = function (a, b, h, e) {. d& w! q, {* x) k8 T(欢迎访问老王论坛:laowang.vip)
var k, f;0 U( o$ D4 P( S(欢迎访问老王论坛:laowang.vip)
if ("SHA-224" === c || "SHA-256" === c) k = (b + 65 >>> 9 << 4) + 15, f = 16;! q5 ]# |5 y2 ^1 S& g(欢迎访问老王论坛:laowang.vip)
else if ("SHA-384" === c || "SHA-512" === c) k = (b + 129 >>> 10 <<: b7 M, l. X& u) ]2 `(欢迎访问老王论坛:laowang.vip)
5) + 31, f = 32;
, b& K: V/ ^4 H7 o else throw Error("Unexpected error in SHA-2 implementation");
& ~% Q s# q& {% f$ k* q for (; a.length <= k;) a.push(0);
6 H" `# \/ H% A: v8 X a[b >>> 5] |= 128 << 24 - b % 32;
' E7 k4 }/ q; U8 n4 Y b = b + h; S6 j$ B8 Z! I7 _9 e(欢迎访问老王论坛:laowang.vip)
a[k] = b & 4294967295;, o H, D: |. a4 T(欢迎访问老王论坛:laowang.vip)
a[k - 1] = b / 4294967296 | 0;: P6 g6 B. F- E* j" M4 q1 N(欢迎访问老王论坛:laowang.vip)
h = a.length;% j# ^# s2 K o! _(欢迎访问老王论坛:laowang.vip)
for (b = 0; b < h; b += f) e = L(a.slice(b, b + f), e, c);
. U4 j; I6 }' j8 P if ("SHA-224" === c) a = [e[0], e[1], e[2], e[3], e[4], e[5], e[6]];& _$ l; _; K9 z* h2 a5 b(欢迎访问老王论坛:laowang.vip)
else if ("SHA-256" === c) a = e;% N! N6 Z J: S7 E(欢迎访问老王论坛:laowang.vip)
else if ("SHA-384" === c) a = [e[0].a, e[0].b, e[1].a, e[1].b, e[2].a, e[2].b, e[3].a, e[3].b, e[4].a, e[4].b, e[5].a, e[5].b];
1 O3 ^( C1 k. M( ~ else if ("SHA-512" === c) a = [e[0].a, e[0].b, e[1].a, e[1].b, e[2].a, e[2].b, e[3].a, e[3].b, e[4].a,, O. p: p: D& E, z. `, J$ H$ H1 F! d(欢迎访问老王论坛:laowang.vip)
e[4].b, e[5].a, e[5].b, e[6].a, e[6].b, e[7].a, e[7].b
3 u) \1 d: p) n! T S4 p Y ];
& O- S7 ?' A8 e5 x& E y7 ^ else throw Error("Unexpected error in SHA-2 implementation");
) `8 K0 x1 |7 l( S C2 e, \3 s6 Y' @ return a# v7 j( r" ?' s) F3 F4 j4 p(欢迎访问老王论坛:laowang.vip)
}, r = function (a) {
`# A( a# J& { U2 n return a.slice()
/ \1 z, ]( K8 n a* y( r }, "SHA-224" === c) m = 512, f = 224;
, h9 @) C+ q$ \, L) j else if ("SHA-256" === c) m = 512, f = 256;
$ |0 ], E. x: |0 L6 K* k6 K& L else if ("SHA-384" === c) m = 1024, f = 384;7 {4 Y( x8 i3 M: ?(欢迎访问老王论坛:laowang.vip)
else if ("SHA-512" === c) m = 1024, f = 512;
# W6 A) N; x/ y- `( w+ k else throw Error("Chosen SHA variant is not supported");
8 U5 k, r2 ?: u, W" o else if (0 === c.lastIndexOf("SHA3-", 0) || 0 === c.lastIndexOf("SHAKE", 0)) {
3 ]* p1 s& O$ Q8 V1 X var F = 6;1 M3 Z" _: w/ j3 v6 ?$ }(欢迎访问老王论坛:laowang.vip)
q = D;
6 l1 ^" l; n- y5 o: F r = function (a) {5 f' W+ s: U# H(欢迎访问老王论坛:laowang.vip)
var c = [],' W* V0 |! X: K0 T5 j# A" i& F(欢迎访问老王论坛:laowang.vip)
e;! S' r; S9 A! d0 J( Z1 c! L5 @: b(欢迎访问老王论坛:laowang.vip)
for (e = 0; 5 > e; e += 1) c[e] = a[e].slice(); N" _/ m4 X, W' O- x9 v4 ~(欢迎访问老王论坛:laowang.vip)
return c
) Z4 F1 j) c, w5 n };
0 y1 E7 a! @1 P h) ~8 F x = 1;/ L! g! ~: Z6 a& k1 C# K+ F3 n(欢迎访问老王论坛:laowang.vip)
if ("SHA3-224" ===. \' T! ?% o# H1 ^(欢迎访问老王论坛:laowang.vip)
c) m = 1152, f = 224;2 C5 _5 q% B2 l(欢迎访问老王论坛:laowang.vip)
else if ("SHA3-256" === c) m = 1088, f = 256;; {8 O' V& n4 R: X# i& k(欢迎访问老王论坛:laowang.vip)
else if ("SHA3-384" === c) m = 832, f = 384;
4 L4 n! r7 S; i/ D/ G2 `) z" ]4 [ else if ("SHA3-512" === c) m = 576, f = 512;
' e& P X% |( `% P2 M% _ else if ("SHAKE128" === c) m = 1344, f = -1, F = 31, z = !0;
4 C+ d1 h' z: ` else if ("SHAKE256" === c) m = 1088, f = -1, F = 31, z = !0;
/ i& i3 o2 A- `" l( e3 X7 k else throw Error("Chosen SHA variant is not supported");
/ D6 ?( i/ X0 `( ^& s$ `* [ u = function (a, c, e, b, h) {! }- R: ]9 Q, f( j2 ^0 f7 Y/ N(欢迎访问老王论坛:laowang.vip)
e = m;1 m- A% r( D1 A! t/ ^(欢迎访问老王论坛:laowang.vip)
var k = F,1 X. Q, M. [6 [4 K; M/ j/ c(欢迎访问老王论坛:laowang.vip)
f, g = [],
: _- K0 H- t$ L' y- f! ] n = e >>> 5,
+ i K% x4 e% S5 f3 y4 J l = 0,0 }' J; Z) x. A {+ P l) B3 \(欢迎访问老王论坛:laowang.vip)
d = c >>> 5;1 W$ W4 a- x7 _+ [# a |(欢迎访问老王论坛:laowang.vip)
for (f = 0; f < d && c >= e; f += n) b = D(a.slice(f, f + n), b), c -= e;
+ X# G9 A+ y+ b% g# i% {* ^5 I a = a.slice(f);- |' ?- D4 ^+ a(欢迎访问老王论坛:laowang.vip)
for (c %= e; a.length < n;) a.push(0);
7 K/ M: ?; ^+ V* Z1 i0 x) H# F f = c >>> 3;
$ k; j- Z+ I0 U C/ d, T a[f >> 2] ^= k << f % 4 * 8;
- B+ B/ y3 |( A6 h2 _ a[n - 1] ^= 2147483648;
# } e7 t+ k# g3 y% e2 r h for (b = D(a, b); 32 * g.length < h;) {2 P6 Z% \3 d% Y+ D0 S(欢迎访问老王论坛:laowang.vip)
a = b[l %
: ^& D6 E5 O5 a$ B 5][l / 5 | 0];
- O& i& Z: N. l6 ^( @: S g.push(a.b);+ C, R$ A, x7 }, M2 @4 x(欢迎访问老王论坛:laowang.vip)
if (32 * g.length >= h) break;
: `( ]9 q9 {' E. b9 J g.push(a.a);; _6 |) G% w5 H- M+ i! X(欢迎访问老王论坛:laowang.vip)
l += 1;
' q7 O! M* S# R( i( p2 a 0 === 64 * l % e && D(null, b)" `& q4 v9 O) }" |- N! u" E(欢迎访问老王论坛:laowang.vip)
}
. y4 K4 K5 F- Y C return g
: ]$ u! Z! p6 t6 s4 g1 E8 o7 B- W) H }
7 V! Q9 [6 {+ | } else throw Error("Chosen SHA variant is not supported");
- Q' d' O! v. i. z \, i C& p d = M(a, g, x);
* U7 ]6 ^$ i2 G' M% }9 r l = A(c);- w3 W0 i0 [& X" [( z5 D(欢迎访问老王论坛:laowang.vip)
this.setHMACKey = function (a, b, h) {# \! Y- D; F# h! U(欢迎访问老王论坛:laowang.vip)
var k;& O" C! L+ Q- H# P0 e5 M(欢迎访问老王论坛:laowang.vip)
if (!0 === I) throw Error("HMAC key already set");
$ n, q* e, Z! A! n! z. r' h* c8 ~ if (!0 === y) throw Error("Cannot set HMAC key after calling update");+ }9 ~- ~/ a) d, R! w(欢迎访问老王论坛:laowang.vip)
if (!0 === z) throw Error("SHAKE is not supported for HMAC");
0 Z$ X$ a7 P, V- W4 X g = (h || {}).encoding || "UTF8";
6 D5 f' G' i- y" E b = M(b, g, x)(a);! R3 `" H' |" J(欢迎访问老王论坛:laowang.vip)
a = b.binLen;9 X0 g; l8 q7 q8 l(欢迎访问老王论坛:laowang.vip)
b = b.value;9 G+ q. Z( p6 A- {(欢迎访问老王论坛:laowang.vip)
k = m >>> 3;0 _" s% w' x+ B0 A: _(欢迎访问老王论坛:laowang.vip)
h = k / 4 - 1;
! q, H, w% z' q7 R' q if (k < a / 8) {
8 { g1 @! T$ F# Y' u- X for (b = u(b, a, 0, A(c), f); b.length <= h;) b.push(0);
G, Q* d! w* W" | T _7 y b[h] &= 4294967040* d4 D2 \! ^! Y( d- Z: x" t7 k(欢迎访问老王论坛:laowang.vip)
} else if (k > a / 8) {2 x5 k( h( ]5 f# I& }(欢迎访问老王论坛:laowang.vip)
for (; b.length <= h;) b.push(0);/ L+ Z% Z! w' V2 b7 k5 L(欢迎访问老王论坛:laowang.vip)
b[h] &= 4294967040- Z4 r. U0 h t: N(欢迎访问老王论坛:laowang.vip)
}: a% E8 Q2 m0 K& z/ u" ](欢迎访问老王论坛:laowang.vip)
for (a = 0; a <= h; a += 1) v[a] = b[a] ^ 909522486, w[a] = b[a] ^ 1549556828;
6 y9 H3 |9 g* s! G$ r; N l = q(v, l);$ o' I; Y- Q7 }4 Z& x2 ]: t(欢迎访问老王论坛:laowang.vip)
e = m;
2 i( ?4 t7 X4 |) x5 h j' j I = !09 J7 O! T) R+ P" Q5 R" _(欢迎访问老王论坛:laowang.vip)
};$ L% T5 l& [# O9 A3 g e) S: `(欢迎访问老王论坛:laowang.vip)
this.update = function (a) {2 l. e z$ m0 _6 w(欢迎访问老王论坛:laowang.vip)
var c, b, k, f = 0,
6 A* w% Q" z7 {# I6 G- {$ { x g = m >>> 5;) t% q5 k" W5 M(欢迎访问老王论坛:laowang.vip)
c = d(a, h, n);
; F# ~' r# u. S7 T6 v8 x2 T1 L* q; z9 Q a = c.binLen;
7 i; L K6 Z, [/ } b = c.value;4 {" _6 a1 @' N(欢迎访问老王论坛:laowang.vip)
c = a >>> 5;
) Z2 E9 A( b& W% @0 x# p for (k = 0; k < c; k += g) f + m <= a && (l = q(b.slice(k, k + g), l), f += m);9 T0 I2 V$ q) V7 L$ K1 L(欢迎访问老王论坛:laowang.vip)
e += f;
5 s/ T0 [/ T, a# g# {( H* R h = b.slice(f >>> 5);
# v1 G- y: Z: H n = a % m;, ], m+ F6 W. X/ s' \$ s" ~& `+ E(欢迎访问老王论坛:laowang.vip)
y = !0' u: R3 N9 x$ f7 `4 g2 Y9 k4 t(欢迎访问老王论坛:laowang.vip)
};$ R7 d1 Z$ M* o( g% v$ O: J$ y(欢迎访问老王论坛:laowang.vip)
this.getHash = function (a, b) {
6 h/ s, r( d+ c4 E9 _; F4 ~2 A var k, g, d, m;6 ^. \# `; P5 q. K- j/ F) x# t1 |(欢迎访问老王论坛:laowang.vip)
if (!0 === I) throw Error("Cannot call getHash after setting HMAC key");3 B. |2 L0 E/ {! h( u(欢迎访问老王论坛:laowang.vip)
d = N(b);5 u) o* \. p- g/ A8 I3 N$ z(欢迎访问老王论坛:laowang.vip)
if (!0 === z) {: l( k6 I! l* u" w1 w; O(欢迎访问老王论坛:laowang.vip)
if (-1 === d.shakeLen) throw Error("shakeLen must be specified in options");
( w, [. ~) h: j6 c- ^ V# a f = d.shakeLen
9 z, s& E% j5 [6 j }
$ O* t( {( \6 y2 J; d+ [6 z switch (a) {
* r" m& ~' W( ]) B' l case "HEX":5 U0 }- _1 ~( h) I/ q0 `1 C(欢迎访问老王论坛:laowang.vip)
k = function (a) {+ \ f9 s8 E4 n: N, h(欢迎访问老王论坛:laowang.vip)
return O(a, f, x, d)) {7 ~1 P# w. x# M# h(欢迎访问老王论坛:laowang.vip)
};
4 H2 [, r- O# h8 d break;
7 l: `$ S# K) K }1 Q; N case "B64":6 q. q7 f( q. L! L: D' ?(欢迎访问老王论坛:laowang.vip)
k = function (a) {3 j A) ? H3 i7 H(欢迎访问老王论坛:laowang.vip)
return P(a, f, x, d)4 T9 ~* T6 H* Y' W& y' X(欢迎访问老王论坛:laowang.vip)
}; W1 T. R! r- h(欢迎访问老王论坛:laowang.vip)
break;
8 \2 Y9 b& G, A5 T/ O case "BYTES":$ r# {8 H6 c! v' s+ e% N(欢迎访问老王论坛:laowang.vip)
k = function (a) {
0 p$ X. y1 W7 C return Q(a, f, x)
3 d( {' C5 o; s1 f };
# A& f; m7 M3 q- ? j/ j break;) W% O2 c8 ] r8 ?9 w* I(欢迎访问老王论坛:laowang.vip)
case "ARRAYBUFFER":
$ Z' s y* \( |) y/ }, x try {& p- P6 K1 j8 M, Q, D( h, M, ](欢迎访问老王论坛:laowang.vip)
g = new ArrayBuffer(0)
0 F, }; O5 M# h7 m9 W' t3 I } catch (p) {0 [/ u" \. ?$ w9 W3 j4 O. z! N4 L(欢迎访问老王论坛:laowang.vip)
throw Error("ARRAYBUFFER not supported by this environment");6 `. E0 g9 ]! V3 s7 A4 M(欢迎访问老王论坛:laowang.vip)
}
' D, M" N8 y: `$ C0 d+ p k = function (a) {
, E) w2 [ p$ a1 q4 H8 G6 w/ M+ P& z! z return R(a, f, x)
4 p8 }; P1 [ v' w5 N! H1 e };
0 Z* X0 H- @! {" ] break;! ~% u: v! o9 I; A0 F7 N8 N/ e(欢迎访问老王论坛:laowang.vip)
default:" |6 z/ B! G# [* k4 h(欢迎访问老王论坛:laowang.vip)
throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER");: N* H* g: ]( k* b(欢迎访问老王论坛:laowang.vip)
}% f! i& b' B3 `! s& Y(欢迎访问老王论坛:laowang.vip)
m = u(h.slice(), n, e, r(l), f);
; w. e% B! v0 k. I for (g = 1; g < t; g += 1) !0 === z && 0 !== f % 32 && (m[m.length - 1] &= 16777215 >>> 24 - f % 32), m = u(m, f,+ u5 j: @ P9 {3 X5 ^(欢迎访问老王论坛:laowang.vip)
0, A(c), f);0 S. ?9 y5 i6 @, Y(欢迎访问老王论坛:laowang.vip)
return k(m)
9 E% [5 i6 g+ _' R# d6 w0 Y( H" r _ };1 g$ W7 V8 k' I9 f& F) v6 [0 \2 O# Q(欢迎访问老王论坛:laowang.vip)
this.getHMAC = function (a, b) {- M5 a# i! U8 o9 G* Z(欢迎访问老王论坛:laowang.vip)
var k, g, d, p;8 R+ X" n) j4 @" t9 h(欢迎访问老王论坛:laowang.vip)
if (!1 === I) throw Error("Cannot call getHMAC without first setting HMAC key");4 I" v! u: C# Z) B% I2 Y1 W(欢迎访问老王论坛:laowang.vip)
d = N(b);) k( a& D9 ?4 Z1 P% Y; p(欢迎访问老王论坛:laowang.vip)
switch (a) {
8 ?) `; w; `# F$ A1 q+ v+ k3 B case "HEX":
& m2 {, S5 n( F X2 j+ Z; z k = function (a) {* g$ F. `! O8 h3 C/ a(欢迎访问老王论坛:laowang.vip)
return O(a, f, x, d)2 L4 r# t8 s9 W" \1 C2 @(欢迎访问老王论坛:laowang.vip)
};
% g1 L, G+ E7 i4 I; z break;
) a |! f5 a2 ]& z% j case "B64":4 k P7 `( k) K" s* z3 k(欢迎访问老王论坛:laowang.vip)
k = function (a) {
+ p& z" V, @+ \# l$ s return P(a, f, x, d)
% W% y [) i# q. I0 X };
" y. q1 p' [7 |. n( A% d) h1 e# M break;* L. c# K8 n! ^7 ~# T j( M. S7 q(欢迎访问老王论坛:laowang.vip)
case "BYTES":
6 S, W9 V8 B% `+ J( } k = function (a) {1 Q1 g0 { Y( g! X/ \2 w' H$ _; |(欢迎访问老王论坛:laowang.vip)
return Q(a, f, x)
3 ?2 B* S' l. r a0 n- p };) `# X' ^2 m3 z' |+ p( _(欢迎访问老王论坛:laowang.vip)
break;6 _9 U+ q9 Y0 F" U% C/ T(欢迎访问老王论坛:laowang.vip)
case "ARRAYBUFFER":* h. G/ t( {' S2 N6 K6 w(欢迎访问老王论坛:laowang.vip)
try {
* v# A2 f( k2 h k = new ArrayBuffer(0)6 U4 J8 I& a( U, Z5 v(欢迎访问老王论坛:laowang.vip)
} catch (v) {
/ G Y# [; V, c0 @( c throw Error("ARRAYBUFFER not supported by this environment");" Q1 _$ g0 @8 O+ y& n(欢迎访问老王论坛:laowang.vip)
}9 T( n8 k/ F1 x$ u(欢迎访问老王论坛:laowang.vip)
k = function (a) {" p* {- j4 a* R; k4 S' [1 s+ L(欢迎访问老王论坛:laowang.vip)
return R(a, f, x)# w1 f4 ?' S8 b(欢迎访问老王论坛:laowang.vip)
};% }* X0 F$ O; b(欢迎访问老王论坛:laowang.vip)
break;
; R/ }6 ~- W( j8 o" X default:
* C' H: f" l9 Y& C' b& }/ T throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER");4 J% Q- [# N8 C& H9 c(欢迎访问老王论坛:laowang.vip)
}
2 o- _- n, c/ i; q/ l r, h( E g = u(h.slice(), n, e, r(l), f);; C6 H! g. Z' A4 ?(欢迎访问老王论坛:laowang.vip)
p = q(w, A(c));
8 T1 b( ?, }5 N/ H! l3 T p = u(g, f, m, p, f); X( f' ?* |/ v* N(欢迎访问老王论坛:laowang.vip)
return k(p)
; l1 f* E/ F, U/ [$ |- u }
( a6 Q- y; N w: l$ t }
1 [! X( i+ ?. o( B4 B, [' V# w0 a
: p* I' M2 a t$ G function b(c, a) {
* H5 T$ l: n# q. P this.a = c;
) _4 x/ n7 j$ D9 d, l$ s6 g3 _ this.b = a$ ? _+ |! z% X: g" g$ s. m(欢迎访问老王论坛:laowang.vip)
}1 z+ ~# c. v, I& w$ G1 \. d(欢迎访问老王论坛:laowang.vip)
$ g1 ?# n7 m w# L8 R function O(c, a, b, e) {8 J" L, S3 b2 O) d3 I6 `(欢迎访问老王论坛:laowang.vip)
var h = "";; Q1 g1 @. D! k6 [ m+ S+ ?(欢迎访问老王论坛:laowang.vip)
a /= 8;/ m( c# h4 ^7 M- `, K8 W8 Q(欢迎访问老王论坛:laowang.vip)
var n, g, d;, n3 x( Z8 z& @+ c" i; E(欢迎访问老王论坛:laowang.vip)
d = -1 === b ? 3 : 0;
z* l/ A# J2 h- [' V' o for (n = 0; n < a; n += 1) g = c[n >>> 2] >>> 8 * (d + n % 4 * b), h += "0123456789abcdef".charAt(g >>> 4 & 15) + "0123456789abcdef".charAt(g & 15);
. f7 o! R k. p( k4 Y. V3 [$ K& i return e.outputUpper ? h.toUpperCase() : h, `5 e* O0 H a/ ^ H(欢迎访问老王论坛:laowang.vip)
}
2 r+ r0 A* A9 C: v: Q: B3 _: K% j3 ^(欢迎访问老王论坛:laowang.vip)
function P(c, a, b, e) {! U& R2 E9 z% ^5 [(欢迎访问老王论坛:laowang.vip)
var h = "",
9 L$ h! f2 h6 }. M: h5 z n = a / 8,0 x _7 Y* N$ m9 H" N(欢迎访问老王论坛:laowang.vip)
g, d, p, f;
1 Y7 r0 g0 f: [' d- ^ f = -1 === b ? 3 : 0;0 v5 S6 h1 q! R* t3 }(欢迎访问老王论坛:laowang.vip)
for (g = 0; g < n; g += 3)7 e# o' c* ?. T7 h5 V(欢迎访问老王论坛:laowang.vip)
for (d = g + 1 < n ? c[g + 1 >>> 2] : 0, p = g + 2 < n ? c[g + 2 >>> 2] : 0, p = (c[g >>> 2] >>> 8 * (f + g % 4 * b) & 255) << 16 | (d >>> 8 * (f + (g + 1) % 4 * b) & 255) << 8 | p >>> 8 * (f +0 i" E5 g6 K9 u6 S, s(欢迎访问老王论坛:laowang.vip)
(g + 2) % 4 * b) & 255, d = 0; 4 > d; d += 1) 8 * g + 6 * d <= a ? h += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(p >>> 6 * (3 - d) & 63) : h += e.b64Pad;
. s' o, r" H8 X& v: O return h6 i6 @- l' {7 J; p2 j! k- H5 z(欢迎访问老王论坛:laowang.vip)
}" q# T- n& U- m(欢迎访问老王论坛:laowang.vip)
; G9 f% ~( e3 u4 `& N3 ^8 c) g, ?9 Y(欢迎访问老王论坛:laowang.vip)
function Q(c, a, b) {
8 m! h% R( C0 k7 k var e = "";
7 h" |" b& `7 O3 O# V& } a /= 8;+ \2 U9 S& q! S) |# f) H% h(欢迎访问老王论坛:laowang.vip)
var h, d, g;7 b* A6 ]. B3 D% ]& x+ X8 d- S+ {(欢迎访问老王论坛:laowang.vip)
g = -1 === b ? 3 : 0;+ M3 p" u3 K! y8 |: n# x(欢迎访问老王论坛:laowang.vip)
for (h = 0; h < a; h += 1) d = c[h >>> 2] >>> 8 * (g + h % 4 * b) & 255, e += String.fromCharCode(d);
( _% V" C6 }- @ return e
( I/ U' Z L8 j. L, I }$ x: P0 C) W1 k% U( \; w(欢迎访问老王论坛:laowang.vip)
' _8 ?) i6 i X, E+ T/ C(欢迎访问老王论坛:laowang.vip)
function R(c, a, b) {
H( v$ e8 X8 v7 S& {4 g a /= 8;
: |3 l6 @7 b0 P! @9 t var e, h = new ArrayBuffer(a),8 u7 f7 W _- e4 x* B6 t% g(欢迎访问老王论坛:laowang.vip)
d, g;
; I& k: K( q3 {6 P! z; v+ b g = new Uint8Array(h);3 K! x4 N5 n0 _4 g% |(欢迎访问老王论坛:laowang.vip)
d = -1 === b ? 3 : 0;
) ] G& @/ `# }1 g, n9 _# c) n for (e = 0; e < a; e += 1) g[e] = c[e >>> 2] >>> 8 * (d + e % 4 * b) & 255;
4 R& g' @) u% w* p" A1 x3 S return h
$ g) k' F0 N& O, j1 P4 W }8 U+ x2 w( L& U(欢迎访问老王论坛:laowang.vip)
5 W' T+ U0 w; G$ B( c* Q/ [ function N(c) {' P! O8 D0 ~6 B% l" C# {. X+ g(欢迎访问老王论坛:laowang.vip)
var a = { M+ x) t! C* g8 Q; K5 u0 f4 y/ p(欢迎访问老王论坛:laowang.vip)
outputUpper: !1,: y! j/ l! l2 ]1 t(欢迎访问老王论坛:laowang.vip)
b64Pad: "=",
$ ], ]' q, k& n; p" E9 e0 P& K/ X$ C shakeLen: -15 r5 i, l. a1 f+ C+ i9 b: H(欢迎访问老王论坛:laowang.vip)
};
* z; A# ?' `9 _ c = c || {};
. X% X. c+ T6 H9 t0 S a.outputUpper = c.outputUpper || !1;: M7 I, r0 X) g1 a: A3 }(欢迎访问老王论坛:laowang.vip)
!0 === c.hasOwnProperty("b64Pad") && (a.b64Pad = c.b64Pad);
8 G* O M; l/ W; f if (!0 === c.hasOwnProperty("shakeLen")) {
: D7 q4 O0 d8 n( ^! } if (0 !== c.shakeLen % 8) throw Error("shakeLen must be a multiple of 8");; \9 t- |5 Y5 t# G9 W) Q0 ](欢迎访问老王论坛:laowang.vip)
a.shakeLen = c.shakeLen
% r" v# b6 O' F! s2 Z2 P }# h. B7 g3 r9 d4 v/ e. |(欢迎访问老王论坛:laowang.vip)
if ("boolean" !== typeof a.outputUpper) throw Error("Invalid outputUpper formatting option");
3 h5 F' U% m% z0 l# l if ("string" !== typeof a.b64Pad) throw Error("Invalid b64Pad formatting option");7 x5 t f) Z7 k! ?(欢迎访问老王论坛:laowang.vip)
return a0 a8 q. \6 J' t: E(欢迎访问老王论坛:laowang.vip)
}0 i' o2 U g6 `7 i0 z: v(欢迎访问老王论坛:laowang.vip)
- O6 Q$ S* b# E8 q% C+ ~6 H function M(c, a, b) {9 E) P' z3 K" b5 P& A(欢迎访问老王论坛:laowang.vip)
switch (a) {
. Z; s' n( s+ x; W case "UTF8":
, ?( A* L4 [: ]7 q7 s) j case "UTF16BE":: H+ F4 h0 j# F(欢迎访问老王论坛:laowang.vip)
case "UTF16LE":. j* l0 P5 A7 W9 C/ d: P: m(欢迎访问老王论坛:laowang.vip)
break;
; S1 q$ n y9 e4 \ default:
& Z" i/ b% M$ F+ `; W8 v: L throw Error("encoding must be UTF8, UTF16BE, or UTF16LE");7 f8 o$ A ~7 h* Z) t- M(欢迎访问老王论坛:laowang.vip)
}
. n2 g3 x) c" x switch (c) {
+ h, F# n( m7 \: x, r7 ^ case "HEX":
5 W7 e. D% c6 N c = function (a, c, d) {- X- Y/ m5 J8 M5 _(欢迎访问老王论坛:laowang.vip)
var g = a.length,
: g5 d* H( n' K1 j9 ]% Z l, p, f, m, q, u;
( f% |% `1 n( A% x: w if (0 !== g % 2) throw Error("String of HEX type must be in byte increments");
5 N. g; Z% q* a( f c = c || [0];, w0 Z4 a- Z& [: [(欢迎访问老王论坛:laowang.vip)
d = d || 0;
. l5 R' ?7 d3 y' O- p# P& o- ] q = d >>> 3;
8 A' e5 |6 C" G/ T3 K! K: d u = -1 === b ? 3 : 0;3 C9 H- o* }8 W" i3 w4 d8 D(欢迎访问老王论坛:laowang.vip)
for (l = 0; l < g; l += 2) {# m! t4 l1 ?$ B' w(欢迎访问老王论坛:laowang.vip)
p = parseInt(a.substr(l, 2), 16); M! N, I2 F, g6 h(欢迎访问老王论坛:laowang.vip)
if (isNaN(p)) throw Error("String of HEX type contains invalid characters");2 e3 n* w: ^0 W- v1 q(欢迎访问老王论坛:laowang.vip)
m = (l >>> 1) + q;0 [9 n2 s2 b9 I(欢迎访问老王论坛:laowang.vip)
for (f = m >>> 2; c.length <= f;) c.push(0);/ G+ v6 w: [" D(欢迎访问老王论坛:laowang.vip)
c[f] |= p << 8 * (u + m % 4 * b) L- E4 a2 W0 r2 y( v(欢迎访问老王论坛:laowang.vip)
}
; Z5 M6 @0 q2 U- [/ e7 [ U return {
; i$ \/ J* N/ e% R0 u* G value: c,
9 n' B( f6 L4 ]& r- o& B: i, p' D binLen: 4 * g + d" }. z; @. W* V8 |# ?0 d(欢迎访问老王论坛:laowang.vip)
}) J: ]; u& }* o+ e8 w( z) h/ ]5 X(欢迎访问老王论坛:laowang.vip)
};
2 k! i" \& ]2 G) j. c4 i# d break;
2 [7 _, Q( g( @$ _ case "TEXT":
7 Z" z3 Q4 [; H: s6 e4 p# d+ {3 I c = function (c, h, d) {4 A& Q- _! C& R% d E! v% V(欢迎访问老王论坛:laowang.vip)
var g, l, p = 0,
1 g5 s' A- T* U2 k f, m, q, u, r, t;1 p" T/ c7 |7 e- W7 ^1 ~(欢迎访问老王论坛:laowang.vip)
h = h || [0];
8 ?: H9 \7 v ?; g9 W( T. h d = d || 0;; h; F( `8 @" ~+ @; v Z6 O( [(欢迎访问老王论坛:laowang.vip)
q = d >>> 3;
% G, V! f' H2 @# B0 Z4 S9 ~. s if ("UTF8" === a)4 N' z5 w1 ?1 x$ X' }6 I/ q6 x s, D, `(欢迎访问老王论坛:laowang.vip)
for (t = -1 ===
' @7 Y# z. y4 [0 O1 [9 f b ? 3 : 0, f = 0; f < c.length; f += 1)2 u9 J5 J9 X( ?7 I2 B(欢迎访问老王论坛:laowang.vip)
for (g = c.charCodeAt(f), l = [], 128 > g ? l.push(g) : 2048 > g ? (l.push(192 | g >>> 6), l.push(128 | g & 63)) : 55296 > g || 57344 <= g ? l.push(224 | g >>> 12, 128 | g >>> 6 & 63, 128 | g & 63) : (f += 1, g = 65536 + ((g & 1023) << 10 | c.charCodeAt(f) & 1023), l.push(240 | g >>> 18, 128 | g >>> 12 & 63, 128 | g >>> 6 & 63, 128 | g & 63)), m = 0; m < l.length; m += 1) {$ J4 y) e& P0 O4 B* G! P( ?(欢迎访问老王论坛:laowang.vip)
r = p + q;; @1 ?3 s, t) j+ N# t' I2 e(欢迎访问老王论坛:laowang.vip)
for (u = r >>> 2; h.length <= u;) h.push(0);
3 h2 l) G S/ `# }% `" _* P5 J4 o h |= l[m] << 8 * (t + r % 4 * b);, L2 z6 o2 \$ Q7 r' L7 _- l(欢迎访问老王论坛:laowang.vip)
p += 1, H& @) d3 }4 P; e/ q `: y(欢迎访问老王论坛:laowang.vip)
} else if ("UTF16BE" === a || "UTF16LE" === a)
0 K3 f% G, |! a7 s# |( S7 R. d6 c' i for (t = -1 === b ? 2 : 0, l = "UTF16LE" === a && 1 !== b || "UTF16LE" !== a && 1 === b, f = 0; f < c.length; f += 1) {" \* z# B7 }2 Y(欢迎访问老王论坛:laowang.vip)
g = c.charCodeAt(f);
0 G, `4 i% w3 Y) C !0 === l && (m = g & 255, g = m << 8 | g >>> 8);: B8 y+ ^" b( m+ F(欢迎访问老王论坛:laowang.vip)
r = p + q;
! \' X5 H* d. ?- a0 E for (u = r >>> 2; h.length <= u;) h.push(0);( k$ l: b/ [* @* k {1 K* ^(欢迎访问老王论坛:laowang.vip)
h |= g << 8 * (t + r % 4 * b);
8 E' a' r+ ^* c) Y* b p += 2- G$ P; |% I9 K: `1 \9 T Q w(欢迎访问老王论坛:laowang.vip)
}8 I! w* H2 V, p- Z(欢迎访问老王论坛:laowang.vip)
return {% U% N: k( U" ]2 M1 H/ s$ J(欢迎访问老王论坛:laowang.vip)
value: h,( v' M) j% G3 k7 h9 T/ H" ](欢迎访问老王论坛:laowang.vip)
binLen: 8 * p + d/ ]) J$ j; g$ s+ i1 E3 G9 {& ~) s% q(欢迎访问老王论坛:laowang.vip)
}
; @8 ^1 G& y; z+ i };
* q; h- k, S) Q5 y. ^! p% e j6 e break;
9 W- l3 M0 b7 w, D case "B64":
/ {; \" L& E8 J+ ~# o, T s# X c = function (a, c, d) {( E# a5 M1 P- X% [/ d( _' E! m(欢迎访问老王论坛:laowang.vip)
var g = 0,
/ b* J: @. z8 S. M2 z7 e0 t, f l, p, f, m, q, u, r, t;
- i) m& V* _) P4 P if (-1 === a.search(/^[a-zA-Z0-9=+\/]+$/)) throw Error("Invalid character in base-64 string");
; b2 y* x7 K$ Z4 d" ^& M+ m; K p = a.indexOf("=");% q" G: I& D1 t6 y0 |(欢迎访问老王论坛:laowang.vip)
a = a.replace(/\=/g, "");
$ g0 d8 }2 p: b4 q8 Q' g. F$ O3 h( y if (-1 !== p && p < a.length) throw Error("Invalid '=' found in base-64 string");
$ ~7 z% }9 T, m! D& L: P4 f c = c || [0];; M$ o+ M" a+ F6 U A(欢迎访问老王论坛:laowang.vip)
d = d || 0;. D1 C4 s3 o0 K! t* G(欢迎访问老王论坛:laowang.vip)
u = d >>> 3;6 D0 U- F+ S. U. s3 @(欢迎访问老王论坛:laowang.vip)
t = -1 === b ? 3 : 0;
& _# D" C. }/ h$ e5 D' ^ for (p = 0; p < a.length; p += 4) {
, O# I i3 d0 R6 F q = a.substr(p, 4);
) }" y; D6 ^3 c. Y% { for (f = m = 0; f < q.length; f += 1) l = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(q[f]),
8 T; @7 C6 G8 Z" a; Q9 ?% e m |= l << 18 - 6 * f;+ V7 F/ q' B$ p8 Q(欢迎访问老王论坛:laowang.vip)
for (f = 0; f < q.length - 1; f += 1) {
* H/ w; I. b+ P0 C2 w3 `: w( L. t9 l r = g + u;+ {8 B$ _0 T1 R7 q! m(欢迎访问老王论坛:laowang.vip)
for (l = r >>> 2; c.length <= l;) c.push(0);
8 P# _- M! | ?: J* V c[l] |= (m >>> 16 - 8 * f & 255) << 8 * (t + r % 4 * b);
% U6 S" ^. w o! F) R g += 1
. Z% L/ y2 u/ N$ ^9 g4 W }/ v/ v& ?* |; U$ C/ @(欢迎访问老王论坛:laowang.vip)
}
- J; i3 B! q% Q/ U( k return {
$ ^4 y% M9 t' w% k. b+ X3 X value: c,
1 C5 l" H, o0 J9 D binLen: 8 * g + d
( X3 g+ b9 K; _5 T9 l$ E5 `& t7 H }
% C J/ L: }+ C' j4 L' h$ A };
3 {2 j( B5 o6 a8 _- ?9 _. C0 D break;
]4 a) P# p c; H, @& t case "BYTES":
8 C& O$ M4 K5 J9 V, [7 ~! t c = function (a, c, d) {$ {7 m: a) n5 i( M3 I" W6 Q" u% \(欢迎访问老王论坛:laowang.vip)
var g, l, p, f, m, q;, j3 w6 }, N, K% j/ o(欢迎访问老王论坛:laowang.vip)
c = c || [0];
( a$ h: R# v1 o- x' @: h" B5 h d = d || 0;* [" [- M# N8 R6 j' b* }(欢迎访问老王论坛:laowang.vip)
p = d >>> 3; ]' _, w+ T% k: X# s3 T(欢迎访问老王论坛:laowang.vip)
q = -1 === b ? 3 : 0;: Z! V# ~8 w( o% h; O(欢迎访问老王论坛:laowang.vip)
for (l = 0; l < a.length; l += 1) g = a.charCodeAt(l), m = l + p, f = m >>> 2, c.length <= f && c.push(0), c[f] |= g << 8 * (q + m % 4 * b);. R" w6 U0 |$ V(欢迎访问老王论坛:laowang.vip)
return {
6 y9 M$ ?* h2 E# J value: c,$ M \1 u5 X; H, @* B6 n& w2 a$ M(欢迎访问老王论坛:laowang.vip)
binLen: 8 * a.length + d% d8 U) _& O3 O$ y7 w(欢迎访问老王论坛:laowang.vip)
}0 l: x7 k1 b1 q. Y% T. P(欢迎访问老王论坛:laowang.vip)
};
+ F& l7 d: z- { break;- j) B( r& u3 T) E; P6 c(欢迎访问老王论坛:laowang.vip)
case "ARRAYBUFFER":- d3 y% s" R! D- Z1 `0 V m; s' Y(欢迎访问老王论坛:laowang.vip)
try {- S8 H) M( U7 N; R$ `(欢迎访问老王论坛:laowang.vip)
c = new ArrayBuffer(0)
- z4 Z: ]* _5 H8 H: \0 v6 R } catch (e) {6 J0 {1 H3 P' W% E5 e O6 t(欢迎访问老王论坛:laowang.vip)
throw Error("ARRAYBUFFER not supported by this environment");& q% q) X0 W1 F5 j# O(欢迎访问老王论坛:laowang.vip)
}- x$ s l7 n) n' p0 v, X) _(欢迎访问老王论坛:laowang.vip)
c = Y4 J& q+ u/ I8 P9 v( I8 @$ {(欢迎访问老王论坛:laowang.vip)
function (a, c, d) {
" X l% t9 A: K# f5 ^8 s var g, l, p, f, m, q;
' o% p# }/ V9 T) O4 `4 _, ]: B c = c || [0];
2 r; t5 ~4 n% U: G5 s) d& I d = d || 0;
" k3 u+ A7 u9 h% V& s3 c$ c l = d >>> 3;
# R0 F. q" B; y m = -1 === b ? 3 : 0;4 m8 \3 {9 ~1 }. M4 p/ V(欢迎访问老王论坛:laowang.vip)
q = new Uint8Array(a);& e$ F% Z' a2 B* u(欢迎访问老王论坛:laowang.vip)
for (g = 0; g < a.byteLength; g += 1) f = g + l, p = f >>> 2, c.length <= p && c.push(0), c[p] |= q[g] << 8 * (m + f % 4 * b);5 R2 \& I" \6 i4 i(欢迎访问老王论坛:laowang.vip)
return {
8 ]$ e s! l% w5 E# p0 [ value: c,
6 d' H+ r1 h+ N( b binLen: 8 * a.byteLength + d6 Z7 \ i6 I: z! C(欢迎访问老王论坛:laowang.vip)
}% v; ]. [- d: [(欢迎访问老王论坛:laowang.vip)
};
2 t& h: n" x' ?- @5 u break;. e8 b$ C' m- l/ i3 U4 x4 ](欢迎访问老王论坛:laowang.vip)
default:
6 U' M5 e4 J' l% n# ` throw Error("format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER");3 W) f9 y$ C- h M/ {& e" \4 B(欢迎访问老王论坛:laowang.vip)
}3 A- V5 I z& _(欢迎访问老王论坛:laowang.vip)
return c
0 }% P. q T5 R6 V. J- w+ z }
$ |+ ^8 p* h Y+ ~% x$ k t; B% ~8 v) H& e0 |; u4 ~$ ^* ~) ](欢迎访问老王论坛:laowang.vip)
function y(c, a) {
5 \' `7 j* S$ U5 e+ w$ w return c << a | c >>> 32 - a# V& j8 X B' I' A) c0 ~( V$ U(欢迎访问老王论坛:laowang.vip)
}
7 }' h4 [0 f5 r! \* _) `) V0 Q; f$ m) }+ o. W% [( a# C z" Y+ x(欢迎访问老王论坛:laowang.vip)
function S(c, a) {
# E2 c' B: U' p1 N7 j return 32 < a ? (a -= 32, new b(c.b << a | c.a >>> 32 - a, c.a << a | c.b >>> 32 - a)) : 0 !== a ? new b(c.a << a | c.b >>> 32 - a, c.b << a | c.a >>> 32 - a) : c
/ g6 v* p4 H4 l6 u% D- s# s }
6 N9 {# l% H; V1 _' F
( G! c2 g( T6 u y8 i4 C9 { function w(c, a) {5 T$ N* ` f7 X8 }(欢迎访问老王论坛:laowang.vip)
return c >>>8 y* {2 y/ c* C4 r0 K(欢迎访问老王论坛:laowang.vip)
a | c << 32 - a' R/ Z& }, G6 R: z(欢迎访问老王论坛:laowang.vip)
}
& s- T- Q/ e' o7 M. L, G: `0 @3 s9 K: s1 _2 o+ Q3 @5 t(欢迎访问老王论坛:laowang.vip)
function t(c, a) {+ U5 p, f Y/ C: W1 n# S, r M(欢迎访问老王论坛:laowang.vip)
var k = null,& a: o8 B W/ U9 q(欢迎访问老王论坛:laowang.vip)
k = new b(c.a, c.b);
" j1 P; T$ v* u( X7 l- ?$ h return k = 32 >= a ? new b(k.a >>> a | k.b << 32 - a & 4294967295, k.b >>> a | k.a << 32 - a & 4294967295) : new b(k.b >>> a - 32 | k.a << 64 - a & 4294967295, k.a >>> a - 32 | k.b << 64 - a & 4294967295)* k$ Z% P2 w1 `(欢迎访问老王论坛:laowang.vip)
}
% y& m8 H, P) j6 Z; W
' a5 H! @$ T# r* H- p+ J5 Y9 U' r8 ] function T(c, a) {
9 m5 v4 H8 U' z- W$ `8 P+ E4 W' q( B var k = null;5 H; _( J& h9 e$ e(欢迎访问老王论坛:laowang.vip)
return k = 32 >= a ? new b(c.a >>> a, c.b >>> a | c.a << 32 - a & 4294967295) : new b(0, c.a >>> a - 32)) l$ V" u3 V- G s8 m(欢迎访问老王论坛:laowang.vip)
}
5 J% k6 n0 c3 s3 A5 ~8 }0 H0 C1 e L5 P(欢迎访问老王论坛:laowang.vip)
function aa(c, a, b) {
3 E \1 W) x) Q return c & a ^ ~c & b
0 H7 t( `. y, [* M8 D/ ^' V* R }
( ^) S! I. {# }9 g+ N1 L
. @8 ?; D- A, e% }& J8 i8 g$ y% | function ba(c, a, k) {
, |, n$ U& n0 L, h+ z. V0 r return new b(c.a & a.a ^ ~c.a & k.a, c.b & a.b ^ ~c.b & k.b)
# v9 _, J3 o* S i+ _ }! s, L/ Q9 |; }) q(欢迎访问老王论坛:laowang.vip)
$ d ^& g& [* N* g* y) h(欢迎访问老王论坛:laowang.vip)
function U(c, a, b) {7 I* u" Q, Y8 Z [- S4 I8 @$ b2 a) ?(欢迎访问老王论坛:laowang.vip)
return c & a ^ c & b ^ a & b% I+ |4 m/ D+ y8 p0 i% Q(欢迎访问老王论坛:laowang.vip)
}8 s. I+ m; m7 I. _6 u4 V7 r(欢迎访问老王论坛:laowang.vip)
0 d' Y9 c* h3 e V function ca(c, a, k) {
) W# R% S( g2 A$ l3 {6 w return new b(c.a & a.a ^ c.a & k.a ^ a.a &
9 _5 A: m3 O# e+ w% h3 K k.a, c.b & a.b ^ c.b & k.b ^ a.b & k.b)
/ \% j! ^; e) W0 o( w+ S }6 a+ D9 L& z: o7 ? D(欢迎访问老王论坛:laowang.vip)
& D) E/ ~1 u) Q: Q) J! x3 W1 M(欢迎访问老王论坛:laowang.vip)
function da(c) {
5 O, |5 w" K- r. v return w(c, 2) ^ w(c, 13) ^ w(c, 22)/ M+ N3 h! g- W/ \(欢迎访问老王论坛:laowang.vip)
}
& v0 J: M: Z& v4 q5 x! M" S( R( s' z
# i- \% ]. J v) x* m% ?/ n" ` function ea(c) {7 F- z9 G. _0 ~' p- `) w- n(欢迎访问老王论坛:laowang.vip)
var a = t(c, 28),* }+ B5 H0 Z8 a: b! v8 \+ M(欢迎访问老王论坛:laowang.vip)
k = t(c, 34);/ C, x1 M2 n7 a9 B" o6 k(欢迎访问老王论坛:laowang.vip)
c = t(c, 39);
! t2 l( F P8 w return new b(a.a ^ k.a ^ c.a, a.b ^ k.b ^ c.b)
$ n7 O2 w( ~$ u. g }
* S, X( d f) A& [
$ }# s# p Y! Z' |4 L* E3 C% V function fa(c) {3 I1 s; ?5 A$ X8 {(欢迎访问老王论坛:laowang.vip)
return w(c, 6) ^ w(c, 11) ^ w(c, 25)
( V/ A; e4 I) V3 [% M$ q }
/ @: m7 R4 H- W( ]
) Q4 h% ^- ]4 \ x3 R function ga(c) {
" c! C. [- @& ~0 q, x var a = t(c, 14),
/ K* ]6 H! t7 Y+ T k = t(c, 18);
8 S! {, m! f4 l c = t(c, 41);
. N* k0 Q9 N: ~- y& r. } return new b(a.a ^ k.a ^ c.a, a.b ^ k.b ^ c.b); H. c" B! D( ](欢迎访问老王论坛:laowang.vip)
}
. _3 M6 \$ G. @/ V# S: U, ~* I) @/ ?" v# w; A(欢迎访问老王论坛:laowang.vip)
function ha(c) {
, I; N' w8 n5 y# [) n return w(c, 7) ^ w(c, 18) ^ c >>> 3
/ Y- G8 V& z/ C }: m: G7 R/ A3 u, _: B/ o8 w(欢迎访问老王论坛:laowang.vip)
# }0 G4 w0 n2 l, D$ M5 e(欢迎访问老王论坛:laowang.vip)
function ia(c) {
" ]1 U- V1 {5 N& S, }3 v var a = t(c, 1),9 b4 }. I& B) u& _6 ~; u! Y(欢迎访问老王论坛:laowang.vip)
k = t(c, 8);3 m: y7 A& U2 b6 I: Q. B(欢迎访问老王论坛:laowang.vip)
c = T(c, 7);. a+ f7 N# |5 A* N# f(欢迎访问老王论坛:laowang.vip)
return new b(a.a ^ k.a ^ c.a, a.b ^ k.b ^ c.b)
1 Z! o0 q# j$ t }7 j" R3 r. w! L3 t(欢迎访问老王论坛:laowang.vip)
1 o. W: h4 c6 g, ?, u' q4 w% P function ja(c) {4 A( {. V) c9 ~: X(欢迎访问老王论坛:laowang.vip)
return w(c, 17) ^ w(c, 19) ^ c >>> 10$ {# v. s$ l5 b4 K' Z" G(欢迎访问老王论坛:laowang.vip)
}' N1 z6 {0 S. J& L- s M(欢迎访问老王论坛:laowang.vip)
' T* O, Q3 `! l$ s* N0 f(欢迎访问老王论坛:laowang.vip)
function ka(c) {9 }% \% f, o& u7 z(欢迎访问老王论坛:laowang.vip)
var a = t(c, 19),
' R. @5 u; N G k = t(c, 61);; a: D0 c4 D+ c(欢迎访问老王论坛:laowang.vip)
c = T(c, 6); c1 w; a( J5 `/ P" s" z(欢迎访问老王论坛:laowang.vip)
return new b(a.a ^ k.a ^ c.a, a.b ^ k.b ^ c.b)
. H$ {% G" Y( k. h% _* i }
7 r+ p1 [1 P, R2 Y3 `$ t
( W* H: z9 D; T( z, ?2 Q+ t function G(c, a) {
E$ Z5 P* Q/ x$ U/ a* {* ~ var b = (c & 65535) + (a & 65535);
" Z8 ?6 k- k# y2 ^( {! W return ((c >>> 16) + (a >>> 16) + (b >>> 16) & 65535) << 16 | b & 65535
. s8 M5 M& i" |) C( `6 h+ |, L% p }. c* z, ? @7 Y4 B. p(欢迎访问老王论坛:laowang.vip)
5 H& h& F$ I. I- A(欢迎访问老王论坛:laowang.vip)
function la(c, a, b, e) {# Z S; P3 q& K: \(欢迎访问老王论坛:laowang.vip)
var h = (c & 65535) + (a & 65535) + (b & 65535) + (e & 65535);
0 c o0 r, }. _( j3 L1 v return ((c >>> 16) + (a >>> 16) + (b >>> 16) + (e >>> 16) + (h >>> 16) & 65535) << 16 | h & 65535 R+ B$ M- `: ](欢迎访问老王论坛:laowang.vip)
}
; H, B3 p6 L# e( H1 }* X a
2 A4 t6 \, M9 T' d7 U3 n function H(c, a, b, e, h) {
/ ]8 p# i2 D6 N% j3 o9 A! } var d = (c & 65535) + (a & 65535) + (b & 65535) + (e & 65535) + (h & 65535);
+ F7 e, h1 O0 v$ K/ u return ((c >>> 16) + (a >>> 16) + (b >>> 16) + (e >>> 16) + (h >>> 16) + (d >>> 16) & 65535) << 16 | d & 65535
' T: G" B# s) w. k9 i% r }) ~8 @2 |8 T% o- O6 ^- D: p(欢迎访问老王论坛:laowang.vip)
* e9 ^7 H$ L- N6 {* t# Z8 g' p(欢迎访问老王论坛:laowang.vip)
function ma(c, a) {! W- H; N# y+ Z4 m7 i8 _3 C1 L' m(欢迎访问老王论坛:laowang.vip)
var d, e, h;
, f+ G, U8 ^; J# ~ d = (c.b & 65535) + (a.b & 65535);
! B( x+ @' E3 l6 @1 O' s9 ]: d e = (c.b >>> 16) +
7 Z4 o n& p5 b* G( }2 W (a.b >>> 16) + (d >>> 16);
6 u0 L/ z3 ^4 e2 n: l1 X h = (e & 65535) << 16 | d & 65535;( w3 S/ M$ [; \& \6 I- d7 T(欢迎访问老王论坛:laowang.vip)
d = (c.a & 65535) + (a.a & 65535) + (e >>> 16);
7 p+ S) ~4 Z+ }% B0 y1 F5 [( d e = (c.a >>> 16) + (a.a >>> 16) + (d >>> 16);
% t" H% G3 V u, \ return new b((e & 65535) << 16 | d & 65535, h)
4 X% b$ D3 c6 F0 C }
# m; B9 ^/ I, \% g( t& V' [* I
% L+ X/ u, g! V. W7 O+ g function na(c, a, d, e) {
: f# _- O5 o: R" Z/ q var h, n, g;
$ H D& i" [: M" Z- U6 j: r' k h = (c.b & 65535) + (a.b & 65535) + (d.b & 65535) + (e.b & 65535);
* j% m' ]- u8 ^# [& ~ n = (c.b >>> 16) + (a.b >>> 16) + (d.b >>> 16) + (e.b >>> 16) + (h >>> 16);
2 O3 G: O0 k+ ~7 z( ^( n& ~ g = (n & 65535) << 16 | h & 65535;
* M. r' i3 b5 O" n5 \# X h = (c.a & 65535) + (a.a & 65535) + (d.a & 65535) + (e.a & 65535) + (n >>> 16);
3 v! Y2 M( @, q. e n = (c.a >>> 16) + (a.a >>> 16) + (d.a >>> 16) + (e.a >>> 16) + (h >>> 16);" o2 H/ u6 l! \4 c% s; N(欢迎访问老王论坛:laowang.vip)
return new b((n & 65535) << 16 | h & 65535, g)
. o" F+ d7 D5 A }5 t: o U+ C I2 ^ l* j1 z/ G(欢迎访问老王论坛:laowang.vip)
. l$ d+ w9 J" w(欢迎访问老王论坛:laowang.vip)
function oa(c, a, d, e, h) {/ D" i5 a: u5 U T(欢迎访问老王论坛:laowang.vip)
var n, g, l;
9 e" u, |5 `4 O$ R T# Y5 | n = (c.b &; O% z/ i9 ^0 G+ p5 l# M(欢迎访问老王论坛:laowang.vip)
65535) + (a.b & 65535) + (d.b & 65535) + (e.b & 65535) + (h.b & 65535);$ s" P6 o* u- O4 i j5 C, ~& S(欢迎访问老王论坛:laowang.vip)
g = (c.b >>> 16) + (a.b >>> 16) + (d.b >>> 16) + (e.b >>> 16) + (h.b >>> 16) + (n >>> 16);! [" R9 R# U+ ?6 v(欢迎访问老王论坛:laowang.vip)
l = (g & 65535) << 16 | n & 65535;
/ P+ I& G5 L; B+ b& M$ ~0 `- R n = (c.a & 65535) + (a.a & 65535) + (d.a & 65535) + (e.a & 65535) + (h.a & 65535) + (g >>> 16);! ^4 e! d2 ]+ D' X(欢迎访问老王论坛:laowang.vip)
g = (c.a >>> 16) + (a.a >>> 16) + (d.a >>> 16) + (e.a >>> 16) + (h.a >>> 16) + (n >>> 16);4 A; _7 y8 P% n2 S(欢迎访问老王论坛:laowang.vip)
return new b((g & 65535) << 16 | n & 65535, l)0 O, R8 E8 \+ s6 B# ^1 d/ |5 ](欢迎访问老王论坛:laowang.vip)
}
4 H. y9 b4 r2 p) E. I# P" Q0 ]
0 t/ ~. @6 j$ V" F! D& t function B(c, a) {
1 B/ O5 Y5 Q% B3 y4 y7 g I' Z return new b(c.a ^ a.a, c.b ^ a.b)$ Q* ]" S b9 C(欢迎访问老王论坛:laowang.vip)
}! f) W J- ], I(欢迎访问老王论坛:laowang.vip)
9 D: P+ B/ I! r! U4 C, C7 C function A(c) {
4 L- u2 W$ B W0 l& I. }0 B var a = [],
. B. J3 A+ o: A: `4 U0 ~5 o% ^ d;
& c/ V8 Y I4 e if ("SHA-1" === c) a = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
" t8 C$ X: k. O7 A else if (0 === c.lastIndexOf("SHA-", 0)) switch (a = [3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428], d = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225], c) {
' a: K! R1 I' h" Y X$ d+ G3 O case "SHA-224":: j( ~ t7 O/ \* W/ @, y" E; N0 `(欢迎访问老王论坛:laowang.vip)
break;
7 \& [# V* ~ [ I5 ]/ g case "SHA-256": Q' b+ S. E; n3 @/ Y3 I" C/ j0 \% R(欢迎访问老王论坛:laowang.vip)
a = d;5 b* E0 }6 c: E- b* j. g(欢迎访问老王论坛:laowang.vip)
break;9 z* j) v: h4 p9 q$ f(欢迎访问老王论坛:laowang.vip)
case "SHA-384":
! P4 `6 D$ r. }" p" `, v, N9 H a = [new b(3418070365, a[0]), new b(1654270250, a[1]), new b(2438529370, a[2]), new b(355462360, a[3]), new b(1731405415, a[4]), new b(41048885895, a[5]), new b(3675008525, a[6]), new b(1203062813, a[7])];6 e3 @# q1 n* A(欢迎访问老王论坛:laowang.vip)
break;
. a7 w" J8 [! F7 C- H$ W e: u case "SHA-512":
+ C" E3 t4 N& ~( m2 { a = [new b(d[0], 4089235720), new b(d[1], 2227873595),$ h A% Q8 B) v- Z(欢迎访问老王论坛:laowang.vip)
new b(d[2], 4271175723), new b(d[3], 1595750129), new b(d[4], 2917565137), new b(d[5], 725511199), new b(d[6], 4215389547), new b(d[7], 327033209)" B1 A1 ?) {' B5 P1 N3 M5 y: H(欢迎访问老王论坛:laowang.vip)
];+ C7 u, ]1 l; B- W- }, _! c(欢迎访问老王论坛:laowang.vip)
break;# V2 J, x3 E8 M(欢迎访问老王论坛:laowang.vip)
default:
( G7 p8 G* U' V throw Error("Unknown SHA variant");2 g% h. [4 D) e" f% {(欢迎访问老王论坛:laowang.vip)
} else if (0 === c.lastIndexOf("SHA3-", 0) || 0 === c.lastIndexOf("SHAKE", 0))6 j$ y; N! ~1 }. z4 B7 @" _(欢迎访问老王论坛:laowang.vip)
for (c = 0; 5 > c; c += 1) a[c] = [new b(0, 0), new b(0, 0), new b(0, 0), new b(0, 0), new b(0, 0)];
1 J* F+ O5 r0 H. G! U9 y else throw Error("No SHA variants supported");
0 W6 W* J i/ L# Q2 m return a/ u0 V# o3 q, ^# I" q/ G A' M(欢迎访问老王论坛:laowang.vip)
}% N c! u0 m" a8 [(欢迎访问老王论坛:laowang.vip)
# D% v' l. b4 D6 N6 Y(欢迎访问老王论坛:laowang.vip)
function K(c, a) {7 S7 L( n8 Y) G: ~/ j6 a# K(欢迎访问老王论坛:laowang.vip)
var b = [],; B; ?/ ^8 R. x& r) ?6 ~; o7 i& E(欢迎访问老王论坛:laowang.vip)
e, d, n, g, l, p, f;+ G( N2 a+ Y% Y O) ?' W+ b+ ~(欢迎访问老王论坛:laowang.vip)
e = a[0];
& a7 D H# h0 x1 y! T8 X d = a[1];. v" A/ q7 m5 I(欢迎访问老王论坛:laowang.vip)
n = a[2];
3 I$ G; B5 ?) ] v1 j g = a[3];
& s$ j6 X. s1 Z e l = a[4];
! ? }& a: B% L9 K; k" X for (f = 0; 80 > f; f += 1) b[f] = 16 > f ? c[f] : y(b[f -
7 o9 B& {, ^, N4 l8 d/ `1 O2 B 3] ^ b[f - 8] ^ b[f - 14] ^ b[f - 16], 1), p = 20 > f ? H(y(e, 5), d & n ^ ~d & g, l, 1518500249, b[f]) : 40 > f ? H(y(e, 5), d ^ n ^ g, l, 1859775393, b[f]) : 60 > f ? H(y(e, 5), U(d, n, g), l, 2400959708, b[f]) : H(y(e, 5), d ^ n ^ g, l, 3395469782, b[f]), l = g, g = n, n = y(d, 30), d = e, e = p;
; x6 J$ ~& x: { a[0] = G(e, a[0]);$ t' o0 W9 l4 t2 ]# v. w(欢迎访问老王论坛:laowang.vip)
a[1] = G(d, a[1]);
1 m* s- G: k$ s: z; N a[2] = G(n, a[2]);
! X& w( ] V7 h: K4 Z a[3] = G(g, a[3]);' J9 ?7 H- B T- |; ^(欢迎访问老王论坛:laowang.vip)
a[4] = G(l, a[4]);$ }) E* ~4 N6 j, j$ ](欢迎访问老王论坛:laowang.vip)
return a+ k8 c- Q6 w9 g(欢迎访问老王论坛:laowang.vip)
}2 d+ L% l! e% x C2 N5 y3 ~% Z(欢迎访问老王论坛:laowang.vip)
% U, l! e; T* G function Z(c, a, b, e) {
7 R6 E) O* z7 a" A' G; ] var d; M% l9 ?9 J! J1 Z% H(欢迎访问老王论坛:laowang.vip)
for (d = (a + 65 >>> 9 << 4) + 15; c.length <= d;) c.push(0);
' F. ^: C+ V% _) q0 k) |, X c[a >>> 5] |= 128 << 24 - a % 32;
: g2 m N* A( c; g8 \ a += b;
# s( ?5 D; d- o4 |$ Q2 d2 @# a. l c[d] = a & 4294967295;
5 E! ~& I: o6 ^7 |8 m K# i c[d - 1] = a / 4294967296 | 0; ~& Y' t5 q* C! n: g(欢迎访问老王论坛:laowang.vip)
a = c.length;
, Q- o* b# i% Q. h# n8 Z for (d = 0; d < a; d += 16) e = K(c.slice(d, d + 16), e);
* ^+ N+ I; a o return e, ~. F, y" B, O$ L2 m(欢迎访问老王论坛:laowang.vip)
}
% {$ F% d( C" k8 o5 p
" o8 @: {: P* B. r% ^! F function L(c,( L H- G2 P& j$ X" t6 u+ A(欢迎访问老王论坛:laowang.vip)
a, k) {
* \; t, b. |+ |9 O( T7 y var e, h, n, g, l, p, f, m, q, u, r, t, v, w, y, A, z, x, F, B, C, D, E = [],0 X! R/ x% {+ F1 \9 I; o6 ~" S(欢迎访问老王论坛:laowang.vip)
J;
* b0 |& V; X+ X0 d if ("SHA-224" === k || "SHA-256" === k) u = 64, t = 1, D = Number, v = G, w = la, y = H, A = ha, z = ja, x = da, F = fa, C = U, B = aa, J = d;
0 N" r. c5 b2 F; H else if ("SHA-384" === k || "SHA-512" === k) u = 80, t = 2, D = b, v = ma, w = na, y = oa, A = ia, z = ka, x = ea, F = ga, C = ca, B = ba, J = V;( b9 z4 |! A8 K4 m6 I6 z$ G(欢迎访问老王论坛:laowang.vip)
else throw Error("Unexpected error in SHA-2 implementation");
, ]: H+ J3 g* l+ ` k = a[0];0 H5 [6 o9 j9 @* C(欢迎访问老王论坛:laowang.vip)
e = a[1];
6 Z P( _! Z. o- U: Z h = a[2];+ g+ t |. Q+ A/ M5 C8 z: i) ](欢迎访问老王论坛:laowang.vip)
n = a[3];% K# C0 G, E% q, g5 n(欢迎访问老王论坛:laowang.vip)
g = a[4];
' V0 [& k0 S4 U9 U' R l = a[5];
/ V0 C4 E( P7 S2 M, U8 p# m. M p = a[6];
% g, i; w- V E* w1 F" @+ f# v f = a[7];
; \2 }* q/ ` d! u3 A for (r = 0; r < u; r += 1) 16 > r ? (q = r * t, m = c.length <= q ? 0 : c[q], q = c.length <= q + 1 ? 0 : c[q + 1], E[r] = new D(m, q)) : E[r] = w(z(E[r - 2]), E[r - 7], A(E[r - 15]), E[r -
/ Q# W; e5 X3 ^, b 16]), m = y(f, F(g), B(g, l, p), J[r], E[r]), q = v(x(k), C(k, e, h)), f = p, p = l, l = g, g = v(n, m), n = h, h = e, e = k, k = v(m, q);) b; r4 m* v- E$ v. Z2 a+ S3 V+ g(欢迎访问老王论坛:laowang.vip)
a[0] = v(k, a[0]);
/ g. Y: M! W2 u6 A/ X: O k& v$ J a[1] = v(e, a[1]);
& S0 y& z) S2 ?$ U- }# o a[2] = v(h, a[2]);& w- U" k2 Z5 f; I3 d( y(欢迎访问老王论坛:laowang.vip)
a[3] = v(n, a[3]);
* s$ Y- N, I" y/ X k* G) G+ j7 M a[4] = v(g, a[4]);
9 ^7 g/ N2 f' b- h( z& R6 o a[5] = v(l, a[5]);
8 D. J" y4 T( ~ I0 u a[6] = v(p, a[6]);
" S& p. R' D" T6 X* d' J a[7] = v(f, a[7]);
% W5 }4 y! g5 t# k( l+ v6 e return a
* [; H- f; @" z" f }0 j% l# N7 ~7 P, I2 u2 Z(欢迎访问老王论坛:laowang.vip)
: ~ s z, R4 E# N(欢迎访问老王论坛:laowang.vip)
function D(c, a) {1 g* c4 [- t& i: n(欢迎访问老王论坛:laowang.vip)
var d, e, h, n, g = [],( J) P) k. l( s+ y: {(欢迎访问老王论坛:laowang.vip)
l = [];
$ p' o. P7 m0 \3 M _# J1 V8 x if (null !== c)8 @- h# [* `) L1 I: J(欢迎访问老王论坛:laowang.vip)
for (e = 0; e < c.length; e += 2) a[(e >>> 1) % 5][(e >>> 1) / 5 | 0] = B(a[(e >>> 1) % 5][(e >>> 1) / 5 | 0], new b(c[e + 1], c[e]));* Y' T( E5 z" r# e* j(欢迎访问老王论坛:laowang.vip)
for (d = 0; 24 > d; d += 1) {
( s* |* A- i- s7 u" H O5 i n = A("SHA3-");
, b& K7 J' o) f0 ~, W* E, i for (e = 0; 5 > e; e += 1) {4 e7 K/ C ? G) {$ w4 c" p% F(欢迎访问老王论坛:laowang.vip)
h = a[e][0];" [& n: ?" m, K( E4 u$ s(欢迎访问老王论坛:laowang.vip)
var p = a[e][1],0 k. U/ y f/ ~* m2 a(欢迎访问老王论坛:laowang.vip)
f = a[e][2]," H! B& n4 i, q; k+ f9 F(欢迎访问老王论坛:laowang.vip)
m = a[e][3],
: U7 k$ [* j* z; s' Y! m q = a[e][4];
6 i9 P( w# W% x" } g[e] = new b(h.a ^ p.a ^ f.a ^
) ]+ R0 _7 P9 i: f+ G m.a ^ q.a, h.b ^ p.b ^ f.b ^ m.b ^ q.b)8 A/ C; r/ ^* Z( C, d(欢迎访问老王论坛:laowang.vip)
}
1 a# ^7 T; H% f for (e = 0; 5 > e; e += 1) l[e] = B(g[(e + 4) % 5], S(g[(e + 1) % 5], 1));
1 y2 D R1 X! l) d0 ~ for (e = 0; 5 > e; e += 1)/ }- _# b& V2 b! [9 m* a(欢迎访问老王论坛:laowang.vip)
for (h = 0; 5 > h; h += 1) a[e][h] = B(a[e][h], l[e]);
6 u1 L" q1 }" Z for (e = 0; 5 > e; e += 1)0 g& C0 ?' ~% Y4 m(欢迎访问老王论坛:laowang.vip)
for (h = 0; 5 > h; h += 1) n[h][(2 * e + 3 * h) % 5] = S(a[e][h], W[e][h]);
, m! K, Z3 X. V Z3 L for (e = 0; 5 > e; e += 1)4 N4 {6 T5 V' I! j(欢迎访问老王论坛:laowang.vip)
for (h = 0; 5 > h; h += 1) a[e][h] = B(n[e][h], new b(~n[(e + 1) % 5][h].a & n[(e + 2) % 5][h].a, ~n[(e + 1) % 5][h].b & n[(e + 2) % 5][h].b));' i" `, |4 L O. j(欢迎访问老王论坛:laowang.vip)
a[0][0] = B(a[0][0], X[d])' t- e R e4 p(欢迎访问老王论坛:laowang.vip)
}
( e* |: }$ i8 Z9 D- g2 P( i return a3 T/ F$ ~" f2 D4 H, a" L3 ?(欢迎访问老王论坛:laowang.vip)
}
1 ?9 p2 y4 |+ K0 d* P( W3 u var d, V, W, X; J+ ~+ O( c" ~3 K, ](欢迎访问老王论坛:laowang.vip)
d = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278,
, d7 L1 L# D1 z- T 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815,
9 N- q5 c9 K: l6 ?$ w 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298
9 Q+ y% u/ U$ J5 O" W ];
6 ^5 F6 q, i/ |( v2 G V = [new b(d[0], 3609767458), new b(d[1], 602891725), new b(d[2], 3964484399), new b(d[3], 2173295548), new b(d[4], 4081628472), new b(d[5], 3053834265), new b(d[6], 2937671579), new b(d[7], 3664609560), new b(d[8], 2734883394), new b(d[9], 1164996542), new b(d[10], 1323610764), new b(d[11], 3590304994), new b(d[12], 4068182383), new b(d[13], 991336113), new b(d[14], 633803317), new b(d[15], 3479774868), new b(d[16], 2666613458), new b(d[17], 944711139), new b(d[18], 2341262773),0 x6 F( c* ]4 R& d, }. Z% d5 Y! Q(欢迎访问老王论坛:laowang.vip)
new b(d[19], 2007800933), new b(d[20], 1495990901), new b(d[21], 1856431235), new b(d[22], 3175218132), new b(d[23], 2198950837), new b(d[24], 3999719339), new b(d[25], 766784016), new b(d[26], 2566594879), new b(d[27], 3203337956), new b(d[28], 1034457026), new b(d[29], 2466948901), new b(d[30], 3758326383), new b(d[31], 168717936), new b(d[32], 1188179964), new b(d[33], 1546045734), new b(d[34], 1522805485), new b(d[35], 2643833823), new b(d[36], 2343527390), new b(d[37], 1014477480), new b(d[38], 1206759142), new b(d[39], 344077627),
* D+ D/ g3 R3 q( s& e! W; F, J0 Y new b(d[40], 1290863460), new b(d[41], 3158454273), new b(d[42], 3505952657), new b(d[43], 106217008), new b(d[44], 3606008344), new b(d[45], 1432725776), new b(d[46], 1467031594), new b(d[47], 851169720), new b(d[48], 3100823752), new b(d[49], 1363258195), new b(d[50], 3750685593), new b(d[51], 3785050280), new b(d[52], 3318307427), new b(d[53], 3812723403), new b(d[54], 2003034995), new b(d[55], 3602036899), new b(d[56], 1575990012), new b(d[57], 1125592928), new b(d[58], 2716904306), new b(d[59], 442776044), new b(d[60], 593698344), new b(d[61],
1 o0 l1 B' C7 x! i/ Z- F 3733110249), new b(d[62], 2999351573), new b(d[63], 3815920427), new b(3391569614, 3928383900), new b(3515267271, 566280711), new b(3940187606, 3454069534), new b(4118630271, 4000239992), new b(116418474, 1914138554), new b(174292421, 2731055270), new b(289380356, 3203993006), new b(460393269, 320620315), new b(685471733, 587496836), new b(852142971, 1086792851), new b(1017036298, 365543100), new b(1126000580, 2618297676), new b(1288033470, 3409855158), new b(1501505948, 4234509866), new b(1607167915, 987167468), new b(1816402316,
0 O/ L F: V# S& \2 v 1246189591)
2 [. Y. X" w' I% {; } ];3 N# o( e0 E l& Y D(欢迎访问老王论坛:laowang.vip)
X = [new b(0, 1), new b(0, 32898), new b(2147483648, 32906), new b(2147483648, 2147516416), new b(0, 32907), new b(0, 2147483649), new b(2147483648, 2147516545), new b(2147483648, 32777), new b(0, 138), new b(0, 136), new b(0, 2147516425), new b(0, 2147483658), new b(0, 2147516555), new b(2147483648, 139), new b(2147483648, 32905), new b(2147483648, 32771), new b(2147483648, 32770), new b(2147483648, 128), new b(0, 32778), new b(2147483648, 2147483658), new b(2147483648, 2147516545), new b(2147483648, 32896), new b(0, 2147483649),
* v. T+ j* S' Y/ P8 ?, O+ C( j2 F. U new b(2147483648, 2147516424)
m. Q1 Q: \! ^) M ];7 g% T2 L4 [1 T. f$ t2 c; s(欢迎访问老王论坛:laowang.vip)
W = [
2 R0 ~ {! f: g4 n1 R [0, 36, 3, 41, 18],$ G0 g) H2 [4 z0 v- W6 ~1 u5 j9 m(欢迎访问老王论坛:laowang.vip)
[1, 44, 10, 45, 2],
& {3 }+ M0 `4 d6 ? ` [62, 6, 43, 15, 61],
' W- v7 y; z: j [28, 55, 25, 21, 56],/ |5 |8 v* s* ?: d! F(欢迎访问老王论坛:laowang.vip)
[27, 20, 39, 8, 14]- w( @* k* ^- P2 W$ c(欢迎访问老王论坛:laowang.vip)
];, r2 N% u9 p- Q(欢迎访问老王论坛:laowang.vip)
"function" === typeof define && define.amd ? define(function () {
1 T0 j% w* X( C: Z0 }3 Z return C, V; o6 z' L6 K& V2 Y# j0 w(欢迎访问老王论坛:laowang.vip)
}) : "undefined" !== typeof exports ? ("undefined" !== typeof module && module.exports && (module.exports = C), exports = C) : Y.jsSHA = C' r* [' V( H2 T8 i3 ~(欢迎访问老王论坛:laowang.vip)
})(this);
) X6 A6 B. r N4 o" }% O4 J
; t. R4 g4 c: m7 [" r, [var CreateDownloadTask, CreateDownloadTask_, browserInterface, bytesToString, cloneInto, g_key_l, g_key_s, g_kts, m115_asym_decode, m115_asym_encode, m115_decode, m115_encode, m115_getkey, m115_sym_decode, m115_sym_encode, ref, stringToBytes, xor115_enc;
( ^8 _: I6 G- b8 O. I7 V4 Oclass MyRsa {* J- J( y) a, X' j( N: l/ i( b(欢迎访问老王论坛:laowang.vip)
constructor () {
9 D @! }4 T6 p7 l/ N" t // this.n = BigInt('0x8686980c0f5a24c4b9d43020cd2c22703ff3f450756529058b1cf88f09b8602136477198a6e2683149659bd122c33592fdb5ad47944ad1ea4d36c6b172aad6338c3bb6ac6227502d010993ac967d1aef00f0c8e038de2e4d3bc2ec368af2e9f10a6f1eda4f7262f136420c07c331b871bf139f74f3010e3c4fe57df3afb71683')# j" x; e( F3 d6 E) b(欢迎访问老王论坛:laowang.vip)
// this.e = BigInt('0x10001')
+ a7 @! z- q4 F0 P this.n = bigInt('8686980c0f5a24c4b9d43020cd2c22703ff3f450756529058b1cf88f09b8602136477198a6e2683149659bd122c33592fdb5ad47944ad1ea4d36c6b172aad6338c3bb6ac6227502d010993ac967d1aef00f0c8e038de2e4d3bc2ec368af2e9f10a6f1eda4f7262f136420c07c331b871bf139f74f3010e3c4fe57df3afb71683', 16)
`& @( t6 c) W# k( t* k8 ` this.e = bigInt('10001', 16)
. e# H& _( U+ t. A | };
s3 y" c2 @$ B
1 L; P7 V5 Z0 ^/ c a2hex (byteArray) {% k. d2 d9 y+ G6 m" S(欢迎访问老王论坛:laowang.vip)
var hexString = ''
/ j; Q5 k0 z' q. A* ~8 C var nextHexByte
3 |1 s* A0 N( }! C' M; ] for (var i = 0; i < byteArray.length; i++) { U! H; W) W! t$ C& y- e8 t(欢迎访问老王论坛:laowang.vip)
nextHexByte = byteArray.toString(16) t" E, g! a! E, ]4 B; W( \6 a9 @& E v(欢迎访问老王论坛:laowang.vip)
if (nextHexByte.length < 2) {) T' I& T" f7 A% u' G! [(欢迎访问老王论坛:laowang.vip)
nextHexByte = '0' + nextHexByte4 D' F3 m2 s" X% O7 C/ \1 m4 _6 W(欢迎访问老王论坛:laowang.vip)
}
% h9 V: [3 c% K9 X$ o hexString += nextHexByte( N% F# e& }; q* j& y$ j(欢迎访问老王论坛:laowang.vip)
}
c# i2 S; r: X8 Q1 v# B/ w return hexString
. P% K5 }. v' {# g- t& |6 h }* r2 F, p3 ` d. L6 o" `3 W2 \(欢迎访问老王论坛:laowang.vip)
& w1 t: P- z7 s/ \" r( e9 H+ _(欢迎访问老王论坛:laowang.vip)
hex2a (hex) {6 G- @1 b' A$ [4 Y2 a3 @. \8 X; m, f(欢迎访问老王论坛:laowang.vip)
var str = ''
- t- ~8 _- I( Z$ l! _3 ^3 K for (var i = 0; i < hex.length; i += 2) {! y( e$ {5 ]/ g) F* ?) u(欢迎访问老王论坛:laowang.vip)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16))5 f" }+ R9 u1 G8 N! K% f(欢迎访问老王论坛:laowang.vip)
}
% X3 x3 W6 v5 [' V2 ~ return str
/ W2 u! q" b6 \ e }
5 m- T/ J0 m4 p0 A6 a2 i
5 y. ~9 f: s0 Z. h! _ pkcs1pad2 (s, n) {$ ^3 R* P( }6 w; e(欢迎访问老王论坛:laowang.vip)
if (n < s.length + 11) {
2 j7 Y/ W6 U) S" @& z' w4 u2 y7 S return null. A; T- }; F) `. \+ t, g z, g(欢迎访问老王论坛:laowang.vip)
}6 r$ v" Z g8 n( B) z: |9 j(欢迎访问老王论坛:laowang.vip)
var ba = []
, A! j3 u& R+ F* l$ X' ]% M var i = s.length - 1! ^6 |- s. E* ^ x' Z(欢迎访问老王论坛:laowang.vip)
while (i >= 0 && n > 0) {, \6 y' i$ E3 ^- D2 Z, p# A(欢迎访问老王论坛:laowang.vip)
ba[--n] = s.charCodeAt(i--)
2 M% I/ ]6 D+ c0 k/ N- y8 P }
4 J+ W& c, M' k ba[--n] = 0& ?0 ~. _( Y; J! }- h0 p(欢迎访问老王论坛:laowang.vip)
while (n > 2) { // random non-zero pad, H7 K6 L3 E4 N1 t7 V' Q! j(欢迎访问老王论坛:laowang.vip)
ba[--n] = 0xff
$ [& C5 ^- a, M( {$ I' T }
3 {7 n" X4 Q* R# A, U ba[--n] = 2
( h. T# ]( ^5 r1 K, M8 x# G8 y ba[--n] = 0
& ^# s8 M. q0 u var c = this.a2hex(ba)
4 ~4 t. u& k6 T return bigInt(c, 16)
# s; K8 ~1 v4 z" n$ t }
+ ~% H7 c: ]- d3 j) E' {3 @9 u8 U, J9 k/ K(欢迎访问老王论坛:laowang.vip)
pkcs1unpad2 (a) {- I B* `. }* }* I(欢迎访问老王论坛:laowang.vip)
var b = a.toString(16) z% q, @1 f+ V$ P, f4 R(欢迎访问老王论坛:laowang.vip)
if (b.length % 2 !== 0) {; Z9 a8 [- _6 z5 m(欢迎访问老王论坛:laowang.vip)
b = '0' + b# p6 L1 |' A9 z+ I* u/ W(欢迎访问老王论坛:laowang.vip)
}- X' V# o) w- s6 g6 t/ q(欢迎访问老王论坛:laowang.vip)
var c = this.hex2a(b). \& v' ^9 U( Q; i8 u(欢迎访问老王论坛:laowang.vip)
var i = 1* p4 e! j! L) }(欢迎访问老王论坛:laowang.vip)
while (c.charCodeAt(i) !== 0) {6 K9 Y" G9 G G' e(欢迎访问老王论坛:laowang.vip)
i++
C5 R* r( F" y- x0 p/ i, Q4 p }$ }8 H+ \$ f0 U, t; l(欢迎访问老王论坛:laowang.vip)
return c.slice(i + 1)0 g/ l* f3 c5 \(欢迎访问老王论坛:laowang.vip)
}
( k$ [( q; {* f6 H+ g% a8 _9 x t) L& _3 C* p(欢迎访问老王论坛:laowang.vip)
encrypt (text) {
" X/ U# v: J, ^ var m = this.pkcs1pad2(text, 0x80)
8 `, j& O4 X; D% O) q& S5 e var c = m.modPow(this.e, this.n)7 j$ i$ z( Y+ R6 p4 a! p" t(欢迎访问老王论坛:laowang.vip)
var h = c.toString(16)2 Z( s/ u, u+ Z! J. _$ T U(欢迎访问老王论坛:laowang.vip)
while (h.length < 0x80 * 2) {, [( ]0 d# Y) n5 L5 M5 n, G(欢迎访问老王论坛:laowang.vip)
h = '0' + h; {1 |0 [$ B8 i5 A4 R(欢迎访问老王论坛:laowang.vip)
}
; r9 M6 u9 y7 g7 D4 f& d O: V return h1 g2 H" o2 M L( M(欢迎访问老王论坛:laowang.vip)
};: ?( {, S& n6 `" P* Q(欢迎访问老王论坛:laowang.vip)
/ z9 v5 z) A8 [9 Y( g7 T decrypt (text) { j7 v, l1 C, v% D3 L3 b(欢迎访问老王论坛:laowang.vip)
var ba = []
8 T( ^& D: L' a' v9 {+ _% U var i = 08 D% [3 s5 Q. ^+ }(欢迎访问老王论坛:laowang.vip)
while (i < text.length) {3 y8 D1 `; L4 b1 f1 M$ Y. t. k(欢迎访问老王论坛:laowang.vip)
ba = text.charCodeAt(i)
`# m7 c! R* l( X6 t, z& v8 A i += 1% s s) H9 d4 w: P: v(欢迎访问老王论坛:laowang.vip)
}
( `& |7 o- t% ]4 V# k% S& K5 | var a = bigInt(this.a2hex(ba), 16)" {7 l+ m" b4 s8 X- I! y& l2 \(欢迎访问老王论坛:laowang.vip)
var c = a.modPow(this.e, this.n)
) b4 ]6 Q5 W9 n" B) J+ j9 M1 R var d = this.pkcs1unpad2(c) y+ q" P9 a5 @! f(欢迎访问老王论坛:laowang.vip)
return d* w8 p) E, H7 H% }6 K8 G(欢迎访问老王论坛:laowang.vip)
};
6 r' E2 `9 @# u}
5 }% _ v& | d% l3 T" w7 a3 p# d
- {/ w+ f$ G4 @) v4 _- N: Dvar new_rsa = new MyRsa()
9 I5 F" D* q) m; V
1 }0 f; a ^& z4 Cg_kts = [240, 229, 105, 174, 191, 220, 191, 138, 26, 69, 232, 190, 125, 166, 115, 184, 222, 143, 231, 196, 69, 218, 134, 196, 155, 100, 139, 20, 106, 180, 241, 170, 56, 1, 53, 158, 38, 105, 44, 134, 0, 107, 79, 165, 54, 52, 98, 166, 42, 150, 104, 24, 242, 74, 253, 189, 107, 151, 143, 77, 143, 137, 19, 183, 108, 142, 147, 237, 14, 13, 72, 62, 215, 47, 136, 216, 254, 254, 126, 134, 80, 149, 79, 209, 235, 131, 38, 52, 219, 102, 123, 156, 126, 157, 122, 129, 50, 234, 182, 51, 222, 58, 169, 89, 52, 102, 59, 170, 186, 129, 96, 72, 185, 213, 129, 156, 248, 108, 132, 119, 255, 84, 120, 38, 95, 190, 232, 30, 54, 159, 52, 128, 92, 69, 44, 155, 118, 213, 27, 143, 204, 195, 184, 245];' M1 f5 o N8 q$ W; h4 t* H; b(欢迎访问老王论坛:laowang.vip)
. b1 k+ J- s- W j7 o9 Mg_key_s = [0x29, 0x23, 0x21, 0x5E]; H! j1 ^, M6 M; _% W(欢迎访问老王论坛:laowang.vip)
, W. Q( }. h& ^3 q- k+ c/ y& a(欢迎访问老王论坛:laowang.vip)
g_key_l = [120, 6, 173, 76, 51, 134, 93, 24, 76, 1, 63, 70];$ m8 k( k4 u+ w ^6 a @(欢迎访问老王论坛:laowang.vip)
2 s: j! J* ]8 b- ](欢迎访问老王论坛:laowang.vip)
m115_getkey = function(length, key) {
! Q1 F* |. y9 o, [' e( }8 q var i;
* P8 Y& v$ J, a5 k0 w u if (key != null) { V' o5 r' v7 z. j1 v- y8 [(欢迎访问老王论坛:laowang.vip)
return (function() {+ J' u( t$ l# E5 R(欢迎访问老王论坛:laowang.vip)
var j, ref, results;: ~; W& P4 ? l2 d2 T7 b(欢迎访问老王论坛:laowang.vip)
results = [];
2 f7 F" W5 h1 {4 V/ }& T" R for (i = j = 0, ref = length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {0 T; r" `0 o. y* o1 ^5 `. @(欢迎访问老王论坛:laowang.vip)
results.push(((key + g_kts[length * i]) & 0xff) ^ g_kts[length * (length - 1 - i)]);
7 r: ^8 C) J c$ ^7 w6 }- |# N7 o }1 i" H% Q {, K- `" x(欢迎访问老王论坛:laowang.vip)
return results;* d) }# H# u& d# Z) B2 r(欢迎访问老王论坛:laowang.vip)
})();
9 [0 Q, p0 f# Y3 E; w. U: ?" o5 _' W }
# I- _+ h: H; J% S8 | if (length === 12) {! e0 t( h! q( Z3 _1 Y(欢迎访问老王论坛:laowang.vip)
return g_key_l.slice(0);) s; S7 w V3 a(欢迎访问老王论坛:laowang.vip)
}5 D" ]6 Y2 z4 M3 s8 R! v(欢迎访问老王论坛:laowang.vip)
return g_key_s.slice(0);) @) k7 ]8 F$ w6 L7 c4 P. ~(欢迎访问老王论坛:laowang.vip)
};
& g/ z# ?" y9 r w+ O2 H3 F
+ C$ X& y) k" B% ?7 @# S q- ?7 Uxor115_enc = function(src, srclen, key, keylen) {
$ U* u+ c# i/ l/ ~9 A8 n var i, j, k, mod4, ref, ref1, ref2, ret;/ v5 V/ I2 |; t+ S(欢迎访问老王论坛:laowang.vip)
mod4 = srclen % 4;, g; o* m$ _5 D, d) ^(欢迎访问老王论坛:laowang.vip)
ret = [];9 q! S; m+ A5 G+ h(欢迎访问老王论坛:laowang.vip)
if (mod4 !== 0) {( i x' L, J ^(欢迎访问老王论坛:laowang.vip)
for (i = j = 0, ref = mod4; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {
1 l% I' @* i# X! f4 J K3 D ret.push(src ^ key[i % keylen]);0 V7 h" L4 k9 g0 E f. y(欢迎访问老王论坛:laowang.vip)
}1 ~; W2 o4 I8 F: E% u(欢迎访问老王论坛:laowang.vip)
}
2 ^3 t8 @% ?0 s8 q for (i = k = ref1 = mod4, ref2 = srclen; (ref1 <= ref2 ? k < ref2 : k > ref2); i = ref1 <= ref2 ? ++k : --k) {" S C& n" D$ w* B K/ P2 y(欢迎访问老王论坛:laowang.vip)
ret.push(src ^ key[(i - mod4) % keylen]);
- h5 I4 z! q4 I }% S1 s. p3 c' `(欢迎访问老王论坛:laowang.vip)
return ret;( f" g! Q: S# s3 z(欢迎访问老王论坛:laowang.vip)
};1 ?! Y- _9 G0 `0 n3 d(欢迎访问老王论坛:laowang.vip)
& u% l4 f3 q, z# E5 K! ` g(欢迎访问老王论坛:laowang.vip)
m115_sym_encode = function(src, srclen, key1, key2) {5 H+ k8 L' t" {* k/ t" l! F(欢迎访问老王论坛:laowang.vip)
var k1, k2, ret;' x- ` f- A2 Z" h(欢迎访问老王论坛:laowang.vip)
k1 = m115_getkey(4, key1);
, m3 ^+ r! o! L: P5 r& @0 I: K' C0 X k2 = m115_getkey(12, key2);5 O, b! C/ ]4 v0 N(欢迎访问老王论坛:laowang.vip)
ret = xor115_enc(src, srclen, k1, 4);3 `" U. w: }' I8 s" [; S(欢迎访问老王论坛:laowang.vip)
ret.reverse();
& t( L( j) P* V8 T9 @0 m. g( m! I ret = xor115_enc(ret, srclen, k2, 12);
# M, r7 z( M* Y" m& m7 y+ B; N return ret;; F1 } g5 E! ~' N @$ i9 N6 K- | s(欢迎访问老王论坛:laowang.vip)
};3 @4 ^# ] Y6 N2 V' p- O9 m(欢迎访问老王论坛:laowang.vip)
9 v, O$ o4 p$ W& Q5 I3 am115_sym_decode = function(src, srclen, key1, key2) {
h8 ~' B% ~& E+ S6 O# U4 ?& w! F var k1, k2, ret;
/ {5 L7 D9 Q9 [- H, \5 w k1 = m115_getkey(4, key1);
G5 ^0 n( A9 P- l( T g+ @ k2 = m115_getkey(12, key2);
# o% _# O% Z/ Q- A6 s ret = xor115_enc(src, srclen, k2, 12);. d- y% Q6 j2 ~' Q5 F(欢迎访问老王论坛:laowang.vip)
ret.reverse();
4 Q/ d* @6 j4 V& o ret = xor115_enc(ret, srclen, k1, 4);
: g S6 ]9 r5 a# {' q ~) ~* q: A7 O return ret;5 F6 O1 N, u0 I$ b3 H/ }(欢迎访问老王论坛:laowang.vip)
};& s0 z( d- Y0 R5 t5 H( k3 X7 I(欢迎访问老王论坛:laowang.vip)
( t: m+ W' {* H JstringToBytes = function(s) {
& l% N" _) m9 S/ s, W! b/ q) Q var i, j, ref, ret;
}5 ]; F+ P& C ret = [];
0 J" f3 M" {2 P( \6 v' ^6 F/ Y; V+ q for (i = j = 0, ref = s.length; (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {. Z" g; }1 s5 U/ Z) }" ^8 G(欢迎访问老王论坛:laowang.vip)
ret.push(s.charCodeAt(i));8 A5 s4 V3 o9 l9 q& y% y# l(欢迎访问老王论坛:laowang.vip)
}) e2 s& w- |* b(欢迎访问老王论坛:laowang.vip)
return ret;! F% q; O* v2 F5 n(欢迎访问老王论坛:laowang.vip)
};
3 Y# a3 l3 H5 L) w+ v( Q) b5 I7 r c# J/ @, t& }! |(欢迎访问老王论坛:laowang.vip)
bytesToString = function(b) {
* K. k- F3 w# B4 Q" B$ B# U# K var i, j, len, ret; s% j- Y9 z9 l V" r6 Y9 x(欢迎访问老王论坛:laowang.vip)
ret = '';
8 @% R; l3 q- c7 f/ \1 Y) J# B: o3 C7 o for (j = 0, len = b.length; j < len; j++) {
, W( q' l# k9 r( q i = b[j];
8 e B& j9 w% f: Y4 [ ret += String.fromCharCode(i);* {& k& h ~ @9 i) e2 O- U(欢迎访问老王论坛:laowang.vip)
}* v% k7 j- V( C7 P" y" x(欢迎访问老王论坛:laowang.vip)
return ret;/ |8 i. m9 K7 A8 f1 y8 C9 a- ?; R! J(欢迎访问老王论坛:laowang.vip)
};
4 S* j& Y) Y2 ]% V9 Z: G! S" r% w3 m+ L1 _(欢迎访问老王论坛:laowang.vip)
' g7 Y1 {4 L1 [/ [! b2 L$ Zm115_asym_encode = function(src, srclen) {2 O, C1 c( A- e) w2 K(欢迎访问老王论坛:laowang.vip)
var i, j, m, ref, ret* O1 B4 o% G' t5 D5 E" f5 o(欢迎访问老王论坛:laowang.vip)
m = 128 - 11;
- Q0 E* v1 |- s0 `" Q. ?9 ]0 B; Y- Z ret = '';
) c0 X I3 v% d for (i = j = 0, ref = Math.floor((srclen + m - 1) / m); (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {- V% Z; V: }; ~1 x8 j, E- Z' w(欢迎访问老王论坛:laowang.vip)
ret += new_rsa.encrypt(bytesToString(src.slice(i * m, Math.min((i + 1) * m, srclen))));: Z( G: U9 V# ?* p# _- `(欢迎访问老王论坛:laowang.vip)
}2 C, H2 B- A* A q C1 i" ](欢迎访问老王论坛:laowang.vip)
return window.btoa(new_rsa.hex2a(ret));
- z; D* K3 c# A+ M& L. m- {' R+ a};
# g8 h H7 O) n" k( ]# `& p9 V' q6 M" u$ B7 S+ |- U u(欢迎访问老王论坛:laowang.vip)
m115_asym_decode = function(src, srclen) {1 R6 b) S$ @9 o6 ?; f# V+ I(欢迎访问老王论坛:laowang.vip)
var i, j, m, ref, ret;
7 l. }5 t% b, Q, k m = 128;) f0 \# q8 d7 p* R L* ?1 d(欢迎访问老王论坛:laowang.vip)
ret = '';
3 C/ e- ^2 Q; a: O1 {: s0 V for (i = j = 0, ref = Math.floor((srclen + m - 1) / m); (0 <= ref ? j < ref : j > ref); i = 0 <= ref ? ++j : --j) {
/ I) v8 |7 q5 V ret += new_rsa.decrypt(bytesToString(src.slice(i * m, Math.min((i + 1) * m, srclen))));
& H: H) n6 J3 m+ a* A( o3 ~; h+ ^# V }
2 @* P- B: @1 N return stringToBytes(ret);2 y7 ]# J* L( B& r4 z5 v2 ~(欢迎访问老王论坛:laowang.vip)
};
# |9 ?- W* J( l1 c9 M4 k7 q
! X9 l- {% c: Z% i: N+ Fm115_encode = function(src, tm) {
9 w$ v* E! ?& ^6 O+ V4 _4 C var key, tmp, zz;9 C" Y W1 Y* J3 M3 n2 @(欢迎访问老王论坛:laowang.vip)
key = stringToBytes(md5(`!@###@#${tm}DFDR@#@#`));
- v% q9 v/ }4 F2 B1 Y tmp = stringToBytes(src);/ |) ^# ^+ Q, O(欢迎访问老王论坛:laowang.vip)
tmp = m115_sym_encode(tmp, tmp.length, key, null);
; N/ h2 s! R6 z o& s, m tmp = key.slice(0, 16).concat(tmp);) }- c: g/ A" t1 K% E(欢迎访问老王论坛:laowang.vip)
return {
\! ^/ m: v' D5 s3 s+ @4 x( t data: m115_asym_encode(tmp, tmp.length),
/ M; p# S" s$ `4 e y [$ m: E7 B key
2 m9 N( s, g: G- U };( }1 b6 u! U+ n; U7 d' s e* O X(欢迎访问老王论坛:laowang.vip)
};
& n& T5 D0 H5 b F! F0 |, ]- F; R3 ?5 r) ?: R, s+ B* S/ e; k(欢迎访问老王论坛:laowang.vip)
m115_decode = function(src, key) {2 d) Q2 e# Z/ M* b1 p/ l(欢迎访问老王论坛:laowang.vip)
var tmp;
! I/ [9 g8 C& c% s- r' w3 [+ M tmp = stringToBytes(window.atob(src));* U' S: H% x. q: j(欢迎访问老王论坛:laowang.vip)
tmp = m115_asym_decode(tmp, tmp.length);
+ ]0 @6 l C+ I9 o+ ? } return bytesToString(m115_sym_decode(tmp.slice(16), tmp.length - 16, key, tmp.slice(0, 16)));+ X* `8 N F. f2 _9 y @% o' u(欢迎访问老王论坛:laowang.vip)
};
8 u$ |3 P9 j. f1 V/ [* ^4 w( p/ W# v- F3 |+ P: @3 Y0 a! C% k(欢迎访问老王论坛:laowang.vip)
0 T* p$ q' o; j$ |/ w2 I; L( R(欢迎访问老王论坛:laowang.vip)
/*GM_config_zh-CN.js*/
/ W6 s7 M8 ^! j( F0 S/ F% j5 I1 B% p6 b# U: [& U(欢迎访问老王论坛:laowang.vip)
// ==UserScript==) | D6 l, c3 x2 i7 {(欢迎访问老王论坛:laowang.vip)
// @name GM_config_zh-CN
5 K" `# j4 B' O6 \! B// @author Mike Medley & zxf10608$ z- O6 }+ D9 m# @(欢迎访问老王论坛:laowang.vip)
// @version 1.3.7/ y9 O U0 o+ _& b; H/ i(欢迎访问老王论坛:laowang.vip)
// @description GM_config_中文版
5 |( j2 A+ Z$ N// @grant GM_getValue6 g& }9 i6 D: K(欢迎访问老王论坛:laowang.vip)
// @grant GM_setValue ^/ Z4 R6 S5 R1 @(欢迎访问老王论坛:laowang.vip)
// @grant GM_deleteValue
' ]" s4 x1 U7 Q3 b// @exclude *5 \% [4 }6 r0 Y& r3 r' F(欢迎访问老王论坛:laowang.vip)
// @license LGPL 39 s7 a0 \4 U# v' p(欢迎访问老王论坛:laowang.vip)
// ==/UserScript==
$ g. f8 ~1 N* n9 @1 A0 W. H: r+ {; L(欢迎访问老王论坛:laowang.vip)
/*5 \- g' C6 i$ Q, Y S1 K(欢迎访问老王论坛:laowang.vip)
优化说明
2 E6 L# ^+ ]* I8 \6 Q 1、改成中文 "确定"、"取消" 按钮。' x0 z- M& s2 A! K8 |(欢迎访问老王论坛:laowang.vip)
2、select 新增了 textContents 数组。8 |# F; q: K" |2 R4 D6 U. |(欢迎访问老王论坛:laowang.vip)
3、新增了skin: 'tab'换页切换菜单样式/ v! | D& v/ o/ E3 X4 a(欢迎访问老王论坛:laowang.vip)
4、更新部分翻译# T( h. [: G9 H+ z(欢迎访问老王论坛:laowang.vip)
5、优化字体显示效果# M# e# z1 P `- Y8 H( ^. |(欢迎访问老王论坛:laowang.vip)
6、优化同一行内CSS样式4 ^& T! Q, q8 A: R) E(欢迎访问老王论坛:laowang.vip)
*/
* E0 [# |3 j" p8 |3 ? }* \
" `/ a: d0 a6 M* I( A; c' q
8 |: p& m8 T" a% A// The GM_config constructor5 P# N3 V3 R; I0 {' @# J(欢迎访问老王论坛:laowang.vip)
function GM_configStruct() {
5 L4 S0 @$ D5 o7 b' q // call init() if settings were passed to constructor
5 t/ n P$ ~- u7 d! _& p4 Y7 [ if (arguments.length) {& V; f# Y4 l. p6 I% F+ C& x(欢迎访问老王论坛:laowang.vip)
GM_configInit(this, arguments);+ U5 f4 C! n+ C3 `/ `, E! J(欢迎访问老王论坛:laowang.vip)
this.onInit();# x. ~4 Z6 P4 l+ @% x0 E2 D- j(欢迎访问老王论坛:laowang.vip)
}
3 `& L+ b9 d, Z1 T}
W$ c1 }$ E5 n7 A7 |% r) r) G/ v& d6 |/ o" k% E(欢迎访问老王论坛:laowang.vip)
// This is the initializer function
! E4 e" w3 _' u* y& bfunction GM_configInit(config, args) {6 w( H0 O$ Y* ^5 J3 J' Y# u/ G" _! w(欢迎访问老王论坛:laowang.vip)
// Initialize instance variables( e( R- N: g& j: A" P0 T(欢迎访问老王论坛:laowang.vip)
if (typeof config.fields == "undefined") {& O. U3 g( F3 r: _7 a! d) f(欢迎访问老王论坛:laowang.vip)
config.fields = {};
$ _; T0 O1 D: V @# ~5 f config.onInit = config.onInit || function () {};1 j* J: ]! J2 V: p- O8 C0 A9 q4 v(欢迎访问老王论坛:laowang.vip)
config.onOpen = config.onOpen || function () {};' Z% V4 v, y( M, U+ E(欢迎访问老王论坛:laowang.vip)
config.onSave = config.onSave || function () {};/ n& \7 X7 t9 F1 o(欢迎访问老王论坛:laowang.vip)
config.onClose = config.onClose || function () {};
: q' e7 \* L' g$ z9 e config.onReset = config.onReset || function () {};3 n9 y1 w5 ^3 ~* _+ c(欢迎访问老王论坛:laowang.vip)
config.isOpen = false;' w. U# c, h' y(欢迎访问老王论坛:laowang.vip)
config.title = '用户脚本设置';7 V9 h9 W, w% a0 m/ H" a(欢迎访问老王论坛:laowang.vip)
config.css = {
" X! P9 A! N5 ^1 A basic: [
$ u( \ I2 B% }2 Z "#GM_config * { font-family: arial,tahoma,myriad pro,sans-serif; }",2 O/ h6 i% `5 J2 S; z6 u7 {' F: a(欢迎访问老王论坛:laowang.vip)
"#GM_config { background: #FFF; }",6 m! [, \" V9 u# B! F% E$ T; {9 r1 e(欢迎访问老王论坛:laowang.vip)
"#GM_config input[type='radio'] { margin-right: 8px; }",
. F6 D# ]) G5 K0 z, w+ r$ {8 ]1 [ "#GM_config .indent40 { margin-left: 40%; }",
7 Q; j8 Y- ]; j "#GM_config .field_label { font-size: 14px; font-weight: bold; margin-right: 6px; }",4 _) F# \2 W1 ?4 W+ M$ I' o, l(欢迎访问老王论坛:laowang.vip)
"#GM_config .radio_label { font-size: 14px; }",& j9 d" N) p+ V' `. B2 a# p% c(欢迎访问老王论坛:laowang.vip)
"#GM_config .block { display: block; }",
: S" r, j% ]) s "#GM_config .saveclose_buttons { margin: 16px 10px 10px; padding: 2px 12px; }",
. O9 R/ e. K$ {5 x8 Y8 k8 K8 x* Z$ l "#GM_config .reset, #GM_config .reset a," +& x& l% P8 _: M(欢迎访问老王论坛:laowang.vip)
" #GM_config_buttons_holder { color: #000; text-align: right; }",& e, f" v, d* W* b* f4 S! W(欢迎访问老王论坛:laowang.vip)
"#GM_config .config_header { font-size: 20pt; margin: 0; }",
* M6 z% f0 R/ `* j "#GM_config .config_desc, #GM_config .section_desc, #GM_config .reset { font-size: 9pt; }",
3 L: _' ~ m/ k3 ]# o, K "#GM_config .center { text-align: center; }",
$ Q: E6 k: q% R) V, h% f "#GM_config .section_header_holder { margin-top: 8px; }",
* {& F. l; C8 _8 \) D "#GM_config .config_var { margin: 0 0 4px; }",
0 w, k" p. P7 v4 I: {/ s% A "#GM_config .section_header { background: #414141; border: 1px solid #000; color: #FFF;" +: L2 j5 J5 N, t! C(欢迎访问老王论坛:laowang.vip)
" font-size: 12pt; margin: 0; }",
; w( P X5 a, u( o "#GM_config .section_desc { background: #EFEFEF; border: 1px solid #CCC; color: #575757;" +& Y6 f) t5 a& _8 N0 S& u. m7 q) r$ {(欢迎访问老王论坛:laowang.vip)
" font-size: 10pt; margin: 0 0 6px; }",
7 ~! N4 [7 d1 E8 ~ // newer
5 f& y- a% X' V; v "#GM_config input[type='number'] { width: 60px; }",
5 J5 y7 u5 k/ F1 z "#GM_config .nav-tabs { margin: 10 0}"," @6 u, V( }( z: X5 P% O, i0 L(欢迎访问老王论坛:laowang.vip)
"#GM_config .nav-tabs > div { display: inline; padding: 3px 10px; }",: F' o- ~7 H: X(欢迎访问老王论坛:laowang.vip)
"#pv-prefs .section_header_holder { padding-left: 10px; }",; o$ u: i6 c. I I g8 \(欢迎访问老王论坛:laowang.vip)
].join('\n') + '\n',, G- V8 Q5 M T+ u+ ?$ x' Q0 {(欢迎访问老王论坛:laowang.vip)
skin_tab: [! @" M) x$ Y1 _4 }6 G(欢迎访问老王论坛:laowang.vip)
"#GM_config { background: #EEE; }",
8 q& w k: b) B1 w- `% V "#GM_config textarea { width: 98%; height: 45px; margin-top: 5px; }",
: g+ @' {: ]4 T$ U2 ^ "#GM_config .field_label { display: inline-block; font-weight: normal; }"," j4 W5 @. \% G4 |2 b. v(欢迎访问老王论坛:laowang.vip)
// 在同一行内的设置
0 T2 \- n5 w/ C S. n "#GM_config .inline input[type='checkbox'] {margin: 3px 3px 3px 0px;}",
4 W& F+ m2 z9 w7 P "#GM_config .inline .config_var { margin-left: 15px; }",5 m0 P0 w3 j# e: u4 _(欢迎访问老王论坛:laowang.vip)
// 内容样式
0 ~% t: N3 }4 c, b1 | "#GM_config .config_var { font-size: 14px; padding: 5px; margin: 0; }",6 u4 y9 o1 N* R, {(欢迎访问老王论坛:laowang.vip)
"#GM_config .config_header a { text-decoration: none; color: #000; }",
& v% c+ z; n0 j "#GM_config .nav-tabs { margin: 20 0}",
9 I w. M$ G5 s2 `: l8 \ "#GM_config .nav-tabs > div { font-size: 15px; color: #999; cursor: pointer; padding: 10px 20px; }",9 e/ X* x3 z& Y(欢迎访问老王论坛:laowang.vip)
"#GM_config .nav-tabs > .active { cursor: default; color: #FFF; }",0 X! {- i" ~9 }3 W ?(欢迎访问老王论坛:laowang.vip)
"#GM_config .nav-tabs > div:hover { color: #FFF; }",
( j; o# ~" [4 z; p0 V ].join('\n') + '\n',/ z* N0 t# z2 i3 G(欢迎访问老王论坛:laowang.vip)
skin_1: [ // 仿 Mouseover Popup Image Viewer 样式
: |- Q' p: s; Y B0 ] "#GM_config { background: #EEE; }",( j9 t& s5 `& w(欢迎访问老王论坛:laowang.vip)
"#GM_config textarea { width: 98%; height: 45px; margin-top: 5px; }",+ D" ~. K( v0 O2 H( C(欢迎访问老王论坛:laowang.vip)
"#GM_config .config_var { font-size: 12px; }",
x9 T& f+ U* V& Y8 B$ |6 j "#GM_config .inline .config_var { margin-left: 15px; }",' d3 v. f' R* b! I% F(欢迎访问老王论坛:laowang.vip)
"#GM_config .field_label { display: inline-block; font-weight: normal; }",+ t d/ c/ F+ [(欢迎访问老王论坛:laowang.vip)
"#GM_config { padding: 20px 30px; margin: 0; }",$ s% F) c6 {% O/ B+ l7 F(欢迎访问老王论坛:laowang.vip)
"#GM_config .config_header { margin-bottom: 10px; }",
7 A- I9 f, G& a" J "#GM_config div.config_var { padding: 7px 0; }",* ]* R' c, u& p(欢迎访问老王论坛:laowang.vip)
].join('\n') + '\n',
C4 g5 \0 i1 t& j basicPrefix: "GM_config",8 M8 V8 F# [8 y8 D6 K) \; \ s(欢迎访问老王论坛:laowang.vip)
stylish: ""# I3 L- I' f. E5 r(欢迎访问老王论坛:laowang.vip)
};
4 g& I/ a: }3 Z/ o9 H* x, {4 | }
% W) W v. W' p, G- K& p2 L* ]0 Y5 q0 e3 v- v9 ~' ]' n! q" l9 ? ~(欢迎访问老王论坛:laowang.vip)
if (args.length == 1 &&1 g. `. x( ?3 s(欢迎访问老王论坛:laowang.vip)
typeof args[0].id == "string" &&
( t6 ~6 G4 e6 q8 ]! }9 G typeof args[0].appendChild != "function") var settings = args[0];
& N. y1 L% a- _+ s/ U" G' o _+ Q else {
# q: H4 i! b9 A+ Z; g- W4 @ // Provide backwards-compatibility with argument style intialization
, v9 E! Z d: s; Z var settings = {};
f, |/ Y3 o( c, a3 g
* e. ~# O( z0 {) s" j+ w // loop through GM_config.init() arguments' K2 |) t/ N2 y( ~1 H(欢迎访问老王论坛:laowang.vip)
for (var i = 0, l = args.length, arg; i < l; ++i) {
+ h: @+ E8 z: Y7 p9 C/ N arg = args;6 d! \3 s& Q; b% z& ^(欢迎访问老王论坛:laowang.vip)
8 L/ ~% x& `# v) n: B0 z* }2 w- S // An element to use as the config window
- a; Q% E9 A. o2 L) T; T9 G if (typeof arg.appendChild == "function") {
; K2 }* b! D+ K2 q. J1 i settings.frame = arg;2 e7 I* M4 K! x. c6 @5 i1 ](欢迎访问老王论坛:laowang.vip)
continue;+ U* E7 I3 {1 b; ?$ z(欢迎访问老王论坛:laowang.vip)
}2 }5 v X- l( Y) a' Z6 r% d o" k(欢迎访问老王论坛:laowang.vip)
?/ V! A' S# R7 S( R! O0 A(欢迎访问老王论坛:laowang.vip)
switch (typeof arg) {
: @3 y& \2 V; A; O6 p9 ~ A* l case 'object':
- U' N6 E3 z' L) j7 U/ i1 |1 V for (var j in arg) { // could be a callback functions or settings object
} ]8 {6 I' u/ Z* E3 I if (typeof arg[j] != "function") { // we are in the settings object
K4 j8 I0 ?( H if (typeof arg[j] == 'string') {$ R. E2 o9 C. J1 R" R; y(欢迎访问老王论坛:laowang.vip)
settings.frameStyle = arg;
5 i, _ E* \. k' w! p } else {
6 h$ G$ M9 v: F. { settings.fields = arg; // store settings object% g, K8 v l$ Q; g# F(欢迎访问老王论坛:laowang.vip)
}
- n: N+ k3 u- x+ J3 N break; // leave the loop! y- d. J. l& p! l9 j(欢迎访问老王论坛:laowang.vip)
} // otherwise it must be a callback function$ W+ A1 H) r8 t& w6 Y# B. b(欢迎访问老王论坛:laowang.vip)
if (!settings.events) settings.events = {};/ G, W1 {( P z- {/ K4 Y' m# S(欢迎访问老王论坛:laowang.vip)
settings.events[j] = arg[j];: @. h( s6 z4 c! x% {) B$ q(欢迎访问老王论坛:laowang.vip)
}
l, O2 @# W; Z2 m4 w break;
. Z/ F8 K! G" \" p case 'function': // passing a bare function is set to open callback/ V3 z2 R, O; |( T; p(欢迎访问老王论坛:laowang.vip)
settings.events = {* ?$ B- V9 g' S% h3 c% m9 T* f0 \(欢迎访问老王论坛:laowang.vip)
open: arg' i& j( p% ?8 H- u' c+ `: y7 q(欢迎访问老王论坛:laowang.vip)
};
2 T4 h( r! X4 _ break;
1 v: C& p( a8 P7 d7 A case 'string': // could be custom CSS or the title string
6 Q$ z( A1 t7 s; Y5 L3 L // if (/[\w\.]+\s*\{\s*[\w-]+\s*:\s*\w+[\s|\S]*\}/.test(arg))0 g* l, P6 C! _7 g" B(欢迎访问老王论坛:laowang.vip)
if (/[\w\.]+\s*\{\s*[\w-]+\s*:[\s|\S]*\}/.test(arg))
7 [; T4 o6 i( w4 o3 W' O' ] settings.css = arg;8 h# l* E* ?4 e7 T; R2 v/ I(欢迎访问老王论坛:laowang.vip)
else if (arg)
" s4 V8 U. u& [/ Y0 O# v$ n settings.title = arg;6 v# ?# @0 X4 e5 G7 i# D! p(欢迎访问老王论坛:laowang.vip)
break;
3 _, W( o; T( i3 G- i( x: j }$ \3 p' W5 q3 h3 n3 @, x0 P/ J/ w(欢迎访问老王论坛:laowang.vip)
}
9 J5 b6 K6 x E }2 O6 ^6 w7 T9 a, O4 Z% F. x(欢迎访问老王论坛:laowang.vip)
. l& ]2 _8 H. j8 c1 f! q I7 f& c* ~ /* Initialize everything using the new settings object */
+ f) ?0 U7 E+ U; r# d+ k- H // Set the id
/ M" J, x/ U7 o4 {: I. [ if (settings.id) config.id = settings.id;
4 Z! H, g C* O) j6 M( T5 {( d else if (typeof config.id == "undefined") config.id = 'GM_config';
- v0 v, T0 Q- x# y) D4 r3 J- Y x4 x6 n
6 T* D! Y' c7 e) E3 s* ~ // Set the title
! B% x& \, E; B S8 Y if (settings.title) config.title = settings.title;
) d4 a1 \) U; K- {+ A6 ]
& L2 E9 F' f; @7 ^4 o" g9 M, g // Set the custom css
/ C: q @6 W, K5 w* W7 \ if (settings.css) config.css.stylish = settings.css;- ?! b+ K4 N+ }8 J9 b(欢迎访问老王论坛:laowang.vip)
7 c7 _& h! k. k if (settings.skin) {
; B* V0 L) c6 w C. o5 ^6 i var skin = config.css['skin_' + settings.skin];
/ V" M) ?3 y: L# O5 I if (skin) {4 G% |9 U B1 W* L(欢迎访问老王论坛:laowang.vip)
config.css.basic += skin;* S, [0 a6 q( o" z o, j(欢迎访问老王论坛:laowang.vip)
}4 B/ h B% U- X8 E$ G! m(欢迎访问老王论坛:laowang.vip)
}, I7 Y: B' Q! I, m8 I4 c9 t(欢迎访问老王论坛:laowang.vip)
# T" R+ Y* C& W% ` // Set the frame
# k" `. A; A5 L" e" z* W* r if (settings.frame) config.frame = settings.frame;& |2 o" m5 q* i% T" w) Y5 h! X(欢迎访问老王论坛:laowang.vip)
if (settings.frameStyle) config.frameStyle = settings.frameStyle;/ p6 z& e. L# i7 L5 O0 o: {(欢迎访问老王论坛:laowang.vip)
1 j4 E5 `6 {3 F( q& I$ B; G(欢迎访问老王论坛:laowang.vip)
config.isTabs = settings.isTabs;5 J" N: w) }. c4 O(欢迎访问老王论坛:laowang.vip)
. p2 F" y; }, A7 R5 }* [(欢迎访问老王论坛:laowang.vip)
// Set the event callbacks8 m/ F& a9 M# |) P b+ c) i(欢迎访问老王论坛:laowang.vip)
if (settings.events) {& G9 {+ q0 _' x9 l6 e7 b p(欢迎访问老王论坛:laowang.vip)
var events = settings.events;
$ X& k* R- T, l& G& i) M. G1 D for (var e in events)
& `, S$ A0 \/ n" ~$ k config["on" + e.charAt(0).toUpperCase() + e.slice(1)] = events[e];
8 F$ ~5 s5 A0 \1 m# _# H }
) ^9 z7 k$ r' d' q8 u+ v( a8 D1 ^
$ k4 }) O* O z2 z2 }- s // Create the fields: ^3 v1 k7 _; O+ I/ S: v(欢迎访问老王论坛:laowang.vip)
if (settings.fields) {4 c3 [3 U2 F3 U# u1 r2 h; l(欢迎访问老王论坛:laowang.vip)
var stored = config.read(), // read the stored settings. K( X1 r3 P8 y0 k: O(欢迎访问老王论坛:laowang.vip)
fields = settings.fields,
4 F. B2 W- i2 X- D5 u- H( F+ o customTypes = settings.types || {};
# s0 m! z% x1 H% D$ f" l0 J& G+ u# W- u1 U/ T% d& v(欢迎访问老王论坛:laowang.vip)
for (var id in fields) {
, J$ o3 \2 ~9 `( |9 p7 u g var field = fields[id];
6 M( m' N' M4 d0 I
4 K; g& S6 M% B+ H6 w) y% d1 C // for each field definition create a field object8 X7 {! ? @* J q; |" W; W(欢迎访问老王论坛:laowang.vip)
if (field)6 q2 Q2 R! b: m3 y; [(欢迎访问老王论坛:laowang.vip)
config.fields[id] = new GM_configField(field, stored[id], id,# Z& Q6 S! L. |(欢迎访问老王论坛:laowang.vip)
customTypes[field.type]);# [7 M: k6 u9 D! N' P" `(欢迎访问老王论坛:laowang.vip)
else if (config.fields[id]) delete config.fields[id];, N4 [" `1 M9 y! H(欢迎访问老王论坛:laowang.vip)
}
/ o" @& f2 |9 N- D }; s, g: R$ e. Z(欢迎访问老王论坛:laowang.vip)
3 P2 E+ q9 N& I. {2 x! y(欢迎访问老王论坛:laowang.vip)
// If the id has changed we must modify the default style
% |, H% P$ c2 F# L9 g# r" Q: E if (config.id != config.css.basicPrefix) {
" D1 R5 n5 s9 E config.css.basic = config.css.basic.replace(, O% z: y( s- V2 T; w# k) @# q(欢迎访问老王论坛:laowang.vip)
new RegExp('#' + config.css.basicPrefix, 'gm'), '#' + config.id);
, P5 N8 Q- A. a5 D0 Q' \5 e config.css.basicPrefix = config.id;
% o4 H2 I }! K H5 M# p% W( Z }
" p, r5 z- t; k1 P}, O. Z4 e. m5 _4 c(欢迎访问老王论坛:laowang.vip)
# L% B' S: s" ^1 z9 x" \(欢迎访问老王论坛:laowang.vip)
GM_configStruct.prototype = {
( \! ~8 ^& C5 [4 a // Support old method of initalizing
; G2 x; x+ v5 k0 Q( m1 m& ` init: function () {! R# e5 n; b6 z! {" v" T0 ?: o4 ~(欢迎访问老王论坛:laowang.vip)
GM_configInit(this, arguments);5 b* X& T- e1 T2 G. P4 q(欢迎访问老王论坛:laowang.vip)
this.onInit();
8 ^. B* S3 f; y8 i% V, x3 ~2 Q },* l! X0 k; j( }! n u; x(欢迎访问老王论坛:laowang.vip)
; H1 f' l; d3 x(欢迎访问老王论坛:laowang.vip)
// call GM_config.open() from your script to open the menu% x/ Z3 E0 G! x" e(欢迎访问老王论坛:laowang.vip)
open: function () {' l3 x' {! O1 g& \/ x" c9 F; Z' U(欢迎访问老王论坛:laowang.vip)
// Die if the menu is already open on this page
+ S: A2 h8 m6 U1 P# ]6 S2 n // You can have multiple instances but you can't open the same instance twice4 l9 g& I! r9 D4 o' I3 _ I5 F(欢迎访问老王论坛:laowang.vip)
var match = document.getElementById(this.id);
( ^# } y1 S: k7 Z- p1 u ~7 Y9 F if (match && (match.tagName == "IFRAME" || match.childNodes.length > 0)) return;
2 D- T; f1 D, h5 f* }* n& A: ]& b(欢迎访问老王论坛:laowang.vip)
// Sometimes "this" gets overwritten so create an alias6 C- g$ H4 a H [- S(欢迎访问老王论坛:laowang.vip)
var config = this;0 M9 ?$ x( y9 B% d3 s(欢迎访问老王论坛:laowang.vip)
' R D. n; \9 a; |" q; C- A2 T7 q(欢迎访问老王论坛:laowang.vip)
// Function to build the mighty config window :)
9 K* M! n5 t) m6 q" Q7 Q9 Z function buildConfigWin(body, head) {0 u; t1 T5 K: f+ q9 T8 G J. r m0 D(欢迎访问老王论坛:laowang.vip)
var create = config.create,0 p) V' x, R2 A9 z$ z; O(欢迎访问老王论坛:laowang.vip)
fields = config.fields,5 c- f' x. o8 y' f/ J9 A(欢迎访问老王论坛:laowang.vip)
configId = config.id,5 V/ _( ^( W' l/ S$ j/ s(欢迎访问老王论坛:laowang.vip)
bodyWrapper = create('div', {
+ ]- `- c5 ~) A8 M! l+ P; ` id: configId + '_wrapper'2 s) B0 T+ |8 ]* l1 e% Q8 l(欢迎访问老王论坛:laowang.vip)
});/ L3 x- Z: W8 G2 M6 R% W1 l(欢迎访问老王论坛:laowang.vip)
( h8 w4 ]3 D6 P( m, V(欢迎访问老王论坛:laowang.vip)
// Append the style which is our default style plus the user style
( b7 g, o: x4 s8 i ?: G6 j: q& V head.appendChild(' v4 f8 ^) k6 J: H- X# x* ^/ g(欢迎访问老王论坛:laowang.vip)
create('style', {+ t. _7 @- B. o# |. X% K( z(欢迎访问老王论坛:laowang.vip)
type: 'text/css',* l- S6 t8 H" y(欢迎访问老王论坛:laowang.vip)
textContent: config.css.basic + config.css.stylish
M; P1 t; |2 ~; e, X }));
/ ~7 J2 R* [6 A, G V7 ?8 V, s# U: h(欢迎访问老王论坛:laowang.vip)
// Add header and title: ]7 J5 R$ ?- p8 U# b(欢迎访问老王论坛:laowang.vip)
bodyWrapper.appendChild(create('div', {/ |" {) I+ e9 p(欢迎访问老王论坛:laowang.vip)
id: configId + '_header',
: W, ?7 `4 u& }6 }' W className: 'config_header block center'' q; Y. [" s' P/ P, h. p(欢迎访问老王论坛:laowang.vip)
}, config.title));% s, y2 y. m# J1 H$ k1 \/ h(欢迎访问老王论坛:laowang.vip)
) ?3 h2 p' B8 I4 J // Append elements
9 D* |5 d; _) T9 R var section = bodyWrapper,3 k; C3 B7 g) K3 ^(欢迎访问老王论坛:laowang.vip)
secNum = 0; // Section count' D9 s6 U+ S. H$ j8 G" H(欢迎访问老王论坛:laowang.vip)
var lastParentNode = null;, X% {2 l" g2 L% Y(欢迎访问老王论坛:laowang.vip)
/ C/ M. W( C Q; K' [& r% j) ^0 M(欢迎访问老王论坛:laowang.vip)
// loop through fields* h6 Z9 n2 S: S; q& ~(欢迎访问老王论坛:laowang.vip)
for (var id in fields) {" X& _/ | k; K. M; E& S M, p# T4 \(欢迎访问老王论坛:laowang.vip)
var field = fields[id],5 m& s, [/ u0 A: b4 W8 U(欢迎访问老王论坛:laowang.vip)
settings = field.settings;
' k/ E0 J( F' J/ r% d
+ N% ^1 r A: l! x9 C if (settings.section) { // the start of a new section; Q- S' c5 v% |& ](欢迎访问老王论坛:laowang.vip)
section = bodyWrapper.appendChild(create('div', {
. H: i" C3 q" A r className: 'section_header_holder',, N( h: e( ]: R6 o3 L1 m(欢迎访问老王论坛:laowang.vip)
id: configId + '_section_' + secNum5 x3 W, L, }; `9 F(欢迎访问老王论坛:laowang.vip)
}));. c/ p+ s7 q5 [" v(欢迎访问老王论坛:laowang.vip)
1 u. D$ H5 Q8 C. Q6 e$ A: D(欢迎访问老王论坛:laowang.vip)
if (Object.prototype.toString.call(settings.section) !== '[object Array]')
|3 F. x6 Q$ b8 ]# R/ g settings.section = [settings.section];# g X' N; G) ^8 {5 z# d(欢迎访问老王论坛:laowang.vip)
( j) v3 U# M+ v if (settings.section[0])9 R) ~3 Z6 _; t9 n) K2 V% F% n(欢迎访问老王论坛:laowang.vip)
section.appendChild(create('div', {7 [% t. T* x4 w2 _4 ? @(欢迎访问老王论坛:laowang.vip)
className: 'section_header center',
& T$ c8 _' v% A2 b7 L" L id: configId + '_section_header_' + secNum, z A! E4 }+ f9 W! U7 |2 `(欢迎访问老王论坛:laowang.vip)
}, settings.section[0]));- w- u ~- {/ L$ ?3 M(欢迎访问老王论坛:laowang.vip)
5 w. I. v" W# L: k9 Z(欢迎访问老王论坛:laowang.vip)
if (settings.section[1])
& |$ |( ~6 L/ K- O. i! Y9 ^ section.appendChild(create('p', {8 q8 x: W. ]) q1 U V4 L; e! ](欢迎访问老王论坛:laowang.vip)
className: 'section_desc center',( h" M% R. E. Y# [) w(欢迎访问老王论坛:laowang.vip)
id: configId + '_section_desc_' + secNum
7 Q9 b$ L% T; h& ^ }, settings.section[1]));
. G* @1 c! l/ |5 F! p ++secNum;
3 W! a y+ e/ w }
- W" s, G3 P8 Z4 P1 X* K
; {. ~% J! g' ]8 i% |1 q if (settings.line == 'start' && lastParentNode) { // 切换到下一行7 c; U0 t( U8 x& e- ]/ K* h(欢迎访问老王论坛:laowang.vip)
lastParentNode = null;. ?# c6 Q9 [8 Y) X5 |; e5 o(欢迎访问老王论坛:laowang.vip)
}; l: [! @) ~/ ?1 T6 B(欢迎访问老王论坛:laowang.vip)
# v5 _" X O C7 r8 W' y( o5 e // Create field elements and append to current section) w. U# Q2 e, M/ v) a(欢迎访问老王论坛:laowang.vip)
(lastParentNode || section).appendChild((field.wrapper = field.toNode(configId, lastParentNode)));' Y6 ~+ s u1 E(欢迎访问老王论坛:laowang.vip)
$ S% z) y* ^7 M: E if (settings.line == 'start') {( s2 K* c7 w; z) U9 p(欢迎访问老王论坛:laowang.vip)
lastParentNode = field.wrapper;2 f( r) u- V8 `' u' U% A$ J(欢迎访问老王论坛:laowang.vip)
lastParentNode.classList.add('inline'): `0 H1 J% e7 _. z b$ J2 ~2 b1 @4 i(欢迎访问老王论坛:laowang.vip)
} else if (settings.line == 'end') {5 }; g+ w6 L; w5 Y! v- U! j+ \(欢迎访问老王论坛:laowang.vip)
lastParentNode = null;
. y6 {& Q8 c, O- I" k3 ? }/ c4 {: N+ e8 e(欢迎访问老王论坛:laowang.vip)
}
) ?( Q4 C$ }; {3 S+ @5 s. q8 w6 N% i(欢迎访问老王论坛:laowang.vip)
// Add save and close buttons
3 F& K" |' v- x3 H+ ~- a1 X( x bodyWrapper.appendChild(create('div', { G" [$ i. Q$ n5 v6 e! P7 K4 L(欢迎访问老王论坛:laowang.vip)
id: configId + '_buttons_holder'7 k' S- l( o- Q2 o1 m(欢迎访问老王论坛:laowang.vip)
},
) z, Z. r1 p- P3 G$ [& F0 R& X. g- D" b9 d0 B, M(欢迎访问老王论坛:laowang.vip)
create('button', {
0 y/ w& N4 _' y) N id: configId + '_saveBtn',
2 Q* Z/ T/ i3 W' W* Z1 N8 D textContent: '确定',
( t2 h( R2 Y' c9 j$ c; T4 n" ^3 Q' H7 G title: '部分选项需要刷新页面才能生效',, |! f# U; Z1 w* T(欢迎访问老王论坛:laowang.vip)
className: 'saveclose_buttons',
) i( @& f* v8 h( ^3 G onclick: function () {
3 B+ o2 Y! O4 t+ { Y4 H config.save();
+ k" u$ S, O! G/ w2 s( k2 x0 T( D config.close();
0 g5 f0 X: z. F }, V" x F4 ^0 p4 [' ~% n, u(欢迎访问老王论坛:laowang.vip)
}),
( d' d) l) G6 y' ~7 ]2 q Q p' N* e(欢迎访问老王论坛:laowang.vip)
create('button', {" y d0 b4 [( ?% f' t(欢迎访问老王论坛:laowang.vip)
id: configId + '_closeBtn',* |9 P9 y! ]- x' I* P+ v4 A2 J(欢迎访问老王论坛:laowang.vip)
textContent: '取消',
3 V# t) ]& y4 x: I0 v title: '取消本次设置,所有选项还原',
, k; S" `5 H4 D! X/ w className: 'saveclose_buttons',( r0 c9 U9 A! k# B5 J5 q% `! h(欢迎访问老王论坛:laowang.vip)
onclick: function () {
0 M8 W: n3 J" w8 b& S config.close()
+ S; f- ^/ {) l$ ` }
7 d' j) g' @2 u8 r6 M }),3 u P$ ]0 t8 O; c# k# o(欢迎访问老王论坛:laowang.vip)
: ~: T: p! u D- {! i5 Q create('div', {6 m. b! ]7 D/ U(欢迎访问老王论坛:laowang.vip)
className: 'reset_holder block'
' b& m8 F9 M9 H( H9 y& f6 s },
( S0 O; c& }: {4 C" M; j' C1 `3 K% x3 a. ?6 Z1 `(欢迎访问老王论坛:laowang.vip)
// Reset link% L/ N* P1 v2 Q+ k(欢迎访问老王论坛:laowang.vip)
create('a', {
' O. _, i O; `3 P1 G id: configId + '_resetLink',; P) X+ R) S( z6 y(欢迎访问老王论坛:laowang.vip)
textContent: '恢复默认设置',# ^& }/ I/ ~* b- @& y" t(欢迎访问老王论坛:laowang.vip)
href: '#',
/ h% C+ w( D' p9 z* \' g title: '恢复所有设置的内容为默认值',
5 d3 i$ Z7 z' n3 P$ |& d5 Q; _ className: 'reset',( ?; ]0 R+ w5 @ k+ Y5 S(欢迎访问老王论坛:laowang.vip)
onclick: function (e) {/ w" f1 o$ D y) O(欢迎访问老王论坛:laowang.vip)
e.preventDefault();& ~7 x; t ?2 R( a(欢迎访问老王论坛:laowang.vip)
config.reset()! ?1 U2 h. u0 l* r7 ~# ~(欢迎访问老王论坛:laowang.vip)
}- v& G$ u, k/ r+ J(欢迎访问老王论坛:laowang.vip)
})8 n) L8 s* t* d E(欢迎访问老王论坛:laowang.vip)
)));
* T( D& g! T# N9 u1 m% L7 v* H9 `, l
9 F) v) Z2 F8 j) k$ w( | body.appendChild(bodyWrapper); // Paint everything to window at once! N- }- {, q$ b/ C( Z(欢迎访问老王论坛:laowang.vip)
config.center(); // Show and center iframe
! ]+ K( O: C7 Z window.addEventListener('resize', config.center, false); // Center frame on resize
6 _( {: W. P8 L& a7 I" j* f6 {
( E$ ^1 ]/ k% Q6 J3 E1 E+ T8 m6 R // Call the open() callback function
, M: t d% n; a, b, c" f4 ? config.onOpen(config.frame.contentDocument || config.frame.ownerDocument,
+ V5 A& j! s+ Q4 |& J config.frame.contentWindow || window,
* O: o% W- Q: P3 C: T config.frame);
* M" j! C2 s3 d$ ]+ P1 Q4 U* p3 ~1 R* J(欢迎访问老王论坛:laowang.vip)
if (config.isTabs) {
8 P$ X1 q. z$ ]/ k' Y c config.toTabs();
- h% g2 Y# r, K0 R1 U9 ?0 U/ C( [ }
. l2 B* e, d1 _5 p
9 T2 J/ ~( Z+ B1 r- |4 U9 d- D // Close frame on window close8 I& R1 u* r/ ^(欢迎访问老王论坛:laowang.vip)
window.addEventListener('beforeunload', function () {
- C. t5 d8 [0 J5 ] config.close();
4 t, f5 j4 y6 d, @2 D) X }, false);. }4 Q* Y& s) c' p3 k; e(欢迎访问老王论坛:laowang.vip)
' _/ A+ t% \7 Y9 Z* b(欢迎访问老王论坛:laowang.vip)
// Now that everything is loaded, make it visible
) q/ C) k, x+ I' |8 A config.frame.style.display = "block";
6 X$ r* _8 T4 x O2 U; N9 \ P/ g config.isOpen = true;
$ y( h% _% \/ n' b* g$ D, r }
; \- i% b7 q' A; }# P: s/ U, k, I8 X& n0 u6 b) }( f(欢迎访问老王论坛:laowang.vip)
// Change this in the onOpen callback using this.frame.setAttribute('style', '')
$ l% z7 j7 Y1 p8 }. u* C4 P var defaultStyle = 'bottom: auto; border: 1px solid #000; display: none; height: 75%;' +. c$ ]; p+ v+ A- ]- k. p(欢迎访问老王论坛:laowang.vip)
' left: 0; margin: 0; max-height: 95%; max-width: 95%; opacity: 0;' +
' m4 i) U& `) b) ]) l6 R h6 f, z2 b ' overflow: auto; padding: 0; position: fixed; right: auto; top: 0;' +1 f6 G( _ p& j; \(欢迎访问老王论坛:laowang.vip)
' width: 75%; z-index: 999999999;';
+ _: H& d# C! H5 y$ b# |
- v. Z9 c$ a( T% S% W1 G- V // Either use the element passed to init() or create an iframe1 ^0 @6 P5 Y1 b# _2 R' {(欢迎访问老王论坛:laowang.vip)
if (this.frame) {% _% f2 B, |0 m- X! ]0 J: |(欢迎访问老王论坛:laowang.vip)
this.frame.id = this.id; // Allows for prefixing styles with the config id" F% n1 M4 v# ^9 E5 R. M3 u(欢迎访问老王论坛:laowang.vip)
this.frame.setAttribute('style', defaultStyle);
6 J/ }' j6 E5 E- E" n3 l, s6 W buildConfigWin(this.frame, this.frame.ownerDocument.getElementsByTagName('head')[0]);
0 O4 I0 E; p$ y5 D# w+ n% G- N, g } else {) g$ u+ q- L" O9 _9 U+ x8 f(欢迎访问老王论坛:laowang.vip)
// Create frame l% f9 G6 Q k- B* z(欢迎访问老王论坛:laowang.vip)
document.body.appendChild((this.frame = this.create('iframe', {2 R a q# h$ F9 H4 S(欢迎访问老王论坛:laowang.vip)
id: this.id,
- ~; V6 l. t$ P* D; b3 e. u ~ style: defaultStyle% V6 ]- {" [0 O. E- X; X(欢迎访问老王论坛:laowang.vip)
})));
5 a6 ~3 x1 r. ?$ J- u8 v. y
' Y- i/ O0 W4 p if (this.frameStyle) {
. v/ A6 l" \: z# u Object.keys(this.frameStyle).forEach(function (key) {' K3 y, l% |6 J6 N7 K7 q7 z(欢迎访问老王论坛:laowang.vip)
config.frame.style[key] = config.frameStyle[key];
; c# B9 q* m/ o- \ })+ C5 t6 z1 ~& i3 C(欢迎访问老王论坛:laowang.vip)
}
% l+ ^) h9 S5 Q( N1 @4 j- P
' |, W/ C4 D# k! k! T0 Z/ S1 q( } // In WebKit src can't be set until it is added to the page! `4 J0 [/ J0 q$ }(欢迎访问老王论坛:laowang.vip)
this.frame.src = 'about:blank';9 \( L$ K- M6 D5 h# `(欢迎访问老王论坛:laowang.vip)
// we wait for the iframe to load before we can modify it4 a Y3 p6 Q0 z9 L(欢迎访问老王论坛:laowang.vip)
this.frame.addEventListener('load', function (e) {( H- U, x9 ]7 ?6 _(欢迎访问老王论坛:laowang.vip)
var frame = config.frame;
Y6 M% [+ i' f" G0 A var body = frame.contentDocument.getElementsByTagName('body')[0];
; Y- P6 U* k4 d# P; H' H body.id = config.id; // Allows for prefixing styles with the config id
# x, J, W) R. N; E buildConfigWin(body, frame.contentDocument.getElementsByTagName('head')[0]);
2 i. A6 B6 L' }4 D, w4 ?; _ }, false);
* e1 |+ T; F3 m6 ^ X! ]* t { }
: x1 j5 l$ f% c- Y. D9 O },7 k9 L2 p' P. G" U- S(欢迎访问老王论坛:laowang.vip)
' {" a7 D+ H3 t' _$ [/ L(欢迎访问老王论坛:laowang.vip)
save: function () {
: Z* z! p( g. c) k# p2 u1 E var forgotten = this.write();
1 ~2 t4 {$ m& p7 t! ~' K+ b& z4 e this.onSave(forgotten); // Call the save() callback function7 L7 U! ]8 r! \& v+ x* e* u(欢迎访问老王论坛:laowang.vip)
},
; s! s6 x! g( B* B1 k9 C7 J( R1 `7 {* g: |- P& v/ W(欢迎访问老王论坛:laowang.vip)
close: function () {3 k! O! O5 a. C7 L+ ^4 U(欢迎访问老王论坛:laowang.vip)
if (!this.frame) return;
1 H- F- z) o: G5 s. W0 a // If frame is an iframe then remove it) p; Z1 |4 I6 A( F" M5 X(欢迎访问老王论坛:laowang.vip)
if (this.frame.contentDocument) {
% r* P( P! x( ?) S this.remove(this.frame);
3 _9 Q8 C4 b( m7 R t& D this.frame = null;
* g# `6 r# w9 Z& Z8 Y7 M$ X6 u } else { // else wipe its content
4 C+ L1 w0 x' ]9 T- z this.frame.innerHTML = "";/ ?& A! W) c! Z- \(欢迎访问老王论坛:laowang.vip)
this.frame.style.display = "none";; z' I4 Q, H x1 K(欢迎访问老王论坛:laowang.vip)
}& ?5 Y ]$ y3 z8 ^. }0 L(欢迎访问老王论坛:laowang.vip)
0 r8 D5 V; e4 S, ^(欢迎访问老王论坛:laowang.vip)
// Null out all the fields so we don't leak memory
7 e8 Q0 h9 u" j) y var fields = this.fields;
$ X7 e8 m- T3 S4 S, E& ~1 a for (var id in fields) {' f S3 X5 l: k; L(欢迎访问老王论坛:laowang.vip)
var field = fields[id];
4 I' {. Y; }* v& U$ n field.wrapper = null;. }/ S& X7 D, B# p: i& |! F7 Y(欢迎访问老王论坛:laowang.vip)
field.node = null;. Q$ Z; j6 b( r( `(欢迎访问老王论坛:laowang.vip)
}" M C7 b1 K, X8 J# o. v+ S" g(欢迎访问老王论坛:laowang.vip)
1 v) E# H; s8 `) J) e; v(欢迎访问老王论坛:laowang.vip)
this.onClose(); // Call the close() callback function
: Z7 ]* X B0 @! k1 ~$ g8 K8 o this.isOpen = false;5 W# B$ h. @4 y- p2 v, D7 n(欢迎访问老王论坛:laowang.vip)
},
( Q" y2 e1 Z; _( B+ V0 G" {; _4 e: i& s- o(欢迎访问老王论坛:laowang.vip)
set: function (name, val) {
9 N) q2 o/ T: w6 h2 n$ W5 \ this.fields[name].value = val;
( w; T3 q% v3 H$ ]& z8 n: `! j8 j4 x5 v. X(欢迎访问老王论坛:laowang.vip)
if (this.fields[name].node) {0 }( l! {8 h6 ]- S- Z8 w6 H/ _. z% N(欢迎访问老王论坛:laowang.vip)
this.fields[name].reload();
$ i/ ]+ Z9 e" g3 H/ F! `5 k/ b }
: D+ v f1 m$ w. g. S/ R! a },
% a( M% G6 E5 E1 b& C+ x: C: S9 _* M+ R, Y( K(欢迎访问老王论坛:laowang.vip)
get: function (name, getLive) {. v' a! r* q: N( d2 X/ _. x& T(欢迎访问老王论坛:laowang.vip)
var field = this.fields[name],
. R) W. C3 v- s. W% N: P fieldVal = null;
) Z& l! e$ y% C" S4 G
" W1 N1 \5 s2 I o* j if (getLive && field.node) {
9 L7 n2 P; k. ~* R fieldVal = field.toValue();$ B2 R& i. \9 z' |; p(欢迎访问老王论坛:laowang.vip)
} p$ O& i8 \9 k(欢迎访问老王论坛:laowang.vip)
/ c, w! Q0 Y r- j/ J, k: s(欢迎访问老王论坛:laowang.vip)
return fieldVal != null ? fieldVal : field.value;
- j0 ]! ~) x1 G, h+ C! B+ i9 t },
4 ~' x, B* y: J) w$ i# V6 b* \4 ]3 o. G2 b) W7 u(欢迎访问老王论坛:laowang.vip)
write: function (store, obj) {: B7 H1 _3 c* T* ]5 Y(欢迎访问老王论坛:laowang.vip)
if (!obj) {. r5 b, e0 K% C2 g% k# N/ m" ]0 A(欢迎访问老王论坛:laowang.vip)
var values = {},/ n0 Y) Q) N0 O+ A3 w8 Q6 J(欢迎访问老王论坛:laowang.vip)
forgotten = {},7 J% b' y. i, G8 ?, f# W3 z% O9 U' h(欢迎访问老王论坛:laowang.vip)
fields = this.fields;: p# \" v, R) Q' \& v8 O4 ~! q(欢迎访问老王论坛:laowang.vip)
* h4 B; F0 f2 z, t(欢迎访问老王论坛:laowang.vip)
for (var id in fields) {2 A9 |9 O& y: _2 c$ W5 K(欢迎访问老王论坛:laowang.vip)
var field = fields[id];/ ~9 n) h: h) y0 w2 a(欢迎访问老王论坛:laowang.vip)
var value = field.toValue();) a# z/ F8 h0 W* o(欢迎访问老王论坛:laowang.vip)
/ K7 F6 A5 ~# {* I( f4 U if (field.save) {2 [% Y- Q- \+ k4 [9 }(欢迎访问老王论坛:laowang.vip)
if (value != null) {
* F, g+ L1 X9 p8 v1 P values[id] = value;
# ~, p m$ J# \8 m4 q2 a& { field.value = value;
! ~, r# h. ^# I } else7 Q( g# c! J9 G0 g6 ^2 B(欢迎访问老王论坛:laowang.vip)
values[id] = field.value;
1 }, k1 k3 E, F/ E1 J2 v } else
% `) ]& d) S% Y# @2 y6 @1 N8 N forgotten[id] = value;
* M0 \* H- i7 [+ q }
3 X- {5 ~3 Y+ N) @! f; R0 C0 h }
8 n% {0 G5 S: o4 W6 g7 M try {0 d# \* D8 f$ q8 I(欢迎访问老王论坛:laowang.vip)
this.setValue(store || this.id, this.stringify(obj || values));5 S; v! M7 u! w3 @' M9 [. ?(欢迎访问老王论坛:laowang.vip)
} catch (e) {
6 s+ q' h2 s6 I this.log("GM_config failed to save settings!");
- p8 Q- }% E9 J' \: V% h }) f" f J: Y5 y! C6 J) j* p( f(欢迎访问老王论坛:laowang.vip)
& ]: B% y! G# [ return forgotten; R- t ~& \" u! W7 Q; a& D" a# u8 g(欢迎访问老王论坛:laowang.vip)
},6 J' G8 p9 v8 l t5 ?& s(欢迎访问老王论坛:laowang.vip)
* P3 }: E4 ?% i: u& r8 t! n+ G read: function (store) {
5 q, j. l4 f5 F7 {5 O; Q try {" \; ?" B. c( M! ]' c6 O(欢迎访问老王论坛:laowang.vip)
var rval = this.parser(this.getValue(store || this.id, '{}')); W5 Q# J! i' o r(欢迎访问老王论坛:laowang.vip)
} catch (e) {
# u0 E7 T. j- C2 X2 }6 L: F this.log("GM_config failed to read saved settings!");+ e+ K& R M, v/ [(欢迎访问老王论坛:laowang.vip)
var rval = {};
! C; N4 u0 B& H3 r }
; W( x) J9 e1 F c8 _ return rval;! g" @# ^) {* m! l& J b1 [(欢迎访问老王论坛:laowang.vip)
},% G' |' b5 }! V1 m5 p8 u y W(欢迎访问老王论坛:laowang.vip)
B5 R b) f; g reset: function () {
9 h+ y" V( n6 Z var fields = this.fields;
: X' R) q( g* ]7 x) T0 L; Y! b/ R G1 m. d! U(欢迎访问老王论坛:laowang.vip)
// Reset all the fields$ L" q# l, y* c, q5 o(欢迎访问老王论坛:laowang.vip)
for (var id in fields) fields[id].reset();# H3 P; Q. h' m: p3 t(欢迎访问老王论坛:laowang.vip)
+ X2 `$ ~; {( W7 ]8 x(欢迎访问老王论坛:laowang.vip)
this.onReset(); // Call the reset() callback function/ w1 g# c/ o2 q! l* N(欢迎访问老王论坛:laowang.vip)
},/ A: w+ {) H$ s, s2 t(欢迎访问老王论坛:laowang.vip)
* @# p( s5 l+ X& Y% ] create: function () {
( q/ W6 x# l- h6 L: v9 o switch (arguments.length) {
& {& _ z' O+ e case 1:+ F1 l8 O+ P. N* c5 _8 z+ y(欢迎访问老王论坛:laowang.vip)
var A = document.createTextNode(arguments[0]);
0 V& ^& @- T& k1 ~ break;
4 A# F; q1 T" |# b# `; M default:3 s( [4 m+ z& W9 q, B, S(欢迎访问老王论坛:laowang.vip)
var A = document.createElement(arguments[0]),
* w8 r% J4 e. O& N B = arguments[1];5 B4 @! Q' A8 @4 m(欢迎访问老王论坛:laowang.vip)
for (var b in B) {
& O7 p/ }! u2 C. m8 r A9 O( ^ if (b.indexOf("on") == 0)4 R0 C T- W1 p9 Y* e(欢迎访问老王论坛:laowang.vip)
A.addEventListener(b.substring(2), B, false);
% [# }& B' A5 c else if (",style,accesskey,id,name,src,href,which,for".indexOf("," +
) N- ~, P) s5 E/ M b.toLowerCase()) != -1)
" T7 z* v- q8 i; b) U A.setAttribute(b, B);
7 s' |& J: e- M* R( v# P3 W else if (typeof B != 'undefined')
# a+ M# s H: o& q$ n9 p+ V+ u A = B;
2 u" U9 U, z% Y9 }+ U" `# N }
0 K' o5 D7 \% z if (typeof arguments[2] == "string")& N7 R2 ?5 Q; Y(欢迎访问老王论坛:laowang.vip)
A.innerHTML = arguments[2];
$ E S* K' p0 h) i M% E! E% u else
6 c8 W$ p3 A) Y) ~! X( N for (var i = 2, len = arguments.length; i < len; ++i)7 f2 q* U/ A& l% |( O5 Q7 f(欢迎访问老王论坛:laowang.vip)
A.appendChild(arguments);
- q. W& \# ` w9 z8 F }
4 p) p$ W( g4 D% C" R return A;/ e( [- o9 i- H, S! ]& F+ R3 r J(欢迎访问老王论坛:laowang.vip)
},7 ^5 i1 m3 v5 t* K(欢迎访问老王论坛:laowang.vip)
0 O/ b3 v) F5 R" w, Q2 _! | center: function () {
1 j. P, L1 ^4 ^' H" U! f/ \) A var node = this.frame;
' k3 I3 D; L) ~0 D if (!node) return;
/ u# q/ |) w' B$ N/ x0 a var style = node.style,: | f* \9 ]& n$ s8 v(欢迎访问老王论坛:laowang.vip)
beforeOpacity = style.opacity;: |9 y1 M# n- s(欢迎访问老王论坛:laowang.vip)
if (style.display == 'none') style.opacity = '0';0 p- P9 ?* H3 ^# M! G$ j; n) P(欢迎访问老王论坛:laowang.vip)
style.display = '';
; y" Q3 Q) q' M, |$ h style.top = Math.floor((window.innerHeight / 2) - (node.offsetHeight / 2)) + 'px';# H; [7 ^. v6 M) c(欢迎访问老王论坛:laowang.vip)
style.left = Math.floor((window.innerWidth / 2) - (node.offsetWidth / 2)) + 'px';5 V: r5 e$ X* K" w. y3 _9 A% d/ U(欢迎访问老王论坛:laowang.vip)
style.opacity = '1';
( L8 ^1 [3 i. e! B ]! r: u+ R },
9 m: P6 ^( T4 `0 Y4 t+ v, j R: {9 q/ P! `* u0 ^& \2 _% @, Q9 B9 z4 \# X(欢迎访问老王论坛:laowang.vip)
remove: function (el) {
, X4 ~ u' J }& T if (el && el.parentNode) el.parentNode.removeChild(el);
2 b; L- ?) i9 | H },1 X* [/ z7 y9 t7 s0 U; a- c( J f(欢迎访问老王论坛:laowang.vip)
' j) J& w* D9 y7 A! _(欢迎访问老王论坛:laowang.vip)
toTabs: function () { // 转为 tab 的形式2 `. k, L7 d: C+ `" U& n4 X(欢迎访问老王论坛:laowang.vip)
var body = this.frame.tagName == 'IFRAME' ? this.frame.contentWindow.document : this.frame,: G" B7 i- |- T0 Y(欢迎访问老王论坛:laowang.vip)
configId = this.id;8 [; ?! s/ Y+ F. h(欢迎访问老王论坛:laowang.vip)
var $ = function (id) {
% R9 j A* L, N s return body.getElementById(configId + '_' + id);
# Z: [2 O1 Y/ o };
$ ~' z0 ^$ f9 A: e( X$ C: j) S6 n% U3 k! t/ w(欢迎访问老王论坛:laowang.vip)
var headers = body.querySelectorAll('.section_header');# S" B* u. \- Z% W; Y0 H" g, S(欢迎访问老王论坛:laowang.vip)
if (!headers.length) return;
+ w y' R% b* d3 K
q& J/ A& g K0 ] E$ q5 w var anch = this.create('div', {( Z; }* _' z' W: C(欢迎访问老王论坛:laowang.vip)
// id: configId + '_tab_holder', m5 d' [& [( a& d& Z(欢迎访问老王论坛:laowang.vip)
className: 'nav-tabs',; h* y- J/ q2 M( M; l1 |& j(欢迎访问老王论坛:laowang.vip)
});$ Y$ d* H! ^8 `5 f& Y% i$ `1 C; W(欢迎访问老王论坛:laowang.vip)
, ]% |" Z% R4 m/ _(欢迎访问老王论坛:laowang.vip)
for (var i = 0, header; i < headers.length; i++) {, D2 p* M( I2 n& _& O) s; C(欢迎访问老王论坛:laowang.vip)
header = headers;
. }7 {6 S( g* W# b- D if (i == 0) {
0 c( m' e! c2 D header.classList.add('active');1 b! i2 J2 K! U% M6 _; ~2 V" Y(欢迎访问老王论坛:laowang.vip)
}$ Z4 s j, j, X+ W. e5 K(欢迎访问老王论坛:laowang.vip)
anch.appendChild(header);/ C- G- v5 k5 K; j(欢迎访问老王论坛:laowang.vip)
}
+ y# u6 ~; s# @' t8 ?, m, m# D4 `) m/ v7 n(欢迎访问老王论坛:laowang.vip)
anch.addEventListener('click', this.toggleTab.bind(this), false);% Z4 V) }/ o9 n(欢迎访问老王论坛:laowang.vip)
7 C. f# @, m$ Q. L5 Y: l(欢迎访问老王论坛:laowang.vip)
$('section_0').parentNode.insertBefore(anch, $('section_0'));$ {4 z; E: x! P) s(欢迎访问老王论坛:laowang.vip)
3 m4 q3 e# \, h1 s var curTab = localStorage.getItem('picviewerCE.config.curTab') || 0;
$ {- m4 m" k0 r2 |8 q this.toggleTab(parseInt(curTab, 10));
7 ^! F( n2 G+ @; D- `- z' n& C" K },! I- z9 R! c7 L+ z(欢迎访问老王论坛:laowang.vip)
toggleTab: function (e) {
" j6 ~9 S2 B4 h var body = this.frame.tagName == 'IFRAME' ? this.frame.contentWindow.document : this.frame,/ y! z3 y4 A' S4 ]/ P(欢迎访问老王论坛:laowang.vip)
configId = this.id;* z; P# ^ S8 N) G1 g(欢迎访问老王论坛:laowang.vip)
% v5 R3 W# v3 ?4 A' a2 y3 J7 U(欢迎访问老王论坛:laowang.vip)
var curTab = typeof e == 'number' ? e : /\_(\d+)/.exec(e.target.id)[1];
" {5 E; I4 Y% z0 W' K: a) H# z% ~2 s* g( Z* v(欢迎访问老王论坛:laowang.vip)
[].forEach.call(body.querySelectorAll('.section_header'), function (header, i) {
5 \) ^% a/ A- z5 ?5 W if (i == curTab) {$ t# ]; W/ h! ~! w(欢迎访问老王论坛:laowang.vip)
header.classList.add('active');+ z* i9 S+ q/ a9 C$ @8 w(欢迎访问老王论坛:laowang.vip)
} else {* @8 @: x: w |7 T0 |# A/ E( W(欢迎访问老王论坛:laowang.vip)
header.classList.remove('active');: g: D: z' V$ B! G: w(欢迎访问老王论坛:laowang.vip)
}
% [' H: h) [! @1 r2 y });4 |4 a5 X) ?0 o3 Y% ]) w! W(欢迎访问老王论坛:laowang.vip)
- f: v$ E9 f2 L3 Q1 @: I6 S [].forEach.call(body.querySelectorAll('.section_header_holder'), function (holder, i) {- R5 b8 F0 Z# n$ q1 K(欢迎访问老王论坛:laowang.vip)
holder.style.display = (i == curTab) ? 'block' : 'none';" B) i1 U$ ]. `1 @: u2 d! j(欢迎访问老王论坛:laowang.vip)
});
: O# }- _3 y# n8 y0 x1 V& S% Q$ `, M" O0 y* e2 k/ O(欢迎访问老王论坛:laowang.vip)
localStorage.setItem('picviewerCE.config.curTab', curTab)
6 x' l# G$ g: k" |6 F }* S. F, q" C: A$ N0 X0 h(欢迎访问老王论坛:laowang.vip)
};
& v+ j. g8 [+ c2 ^8 o" J- g
0 n+ B) d9 Z5 {, D4 ]+ }. w// Define a bunch of API stuff
( r- m3 Y* Q" R3 D u! X5 J, i6 ]0 j(function () {8 [. b9 N, _4 k5 w(欢迎访问老王论坛:laowang.vip)
var isGM = typeof GM_getValue != 'undefined' &&
% q& b/ b, `' C) H3 { typeof GM_getValue('a', 'b') != 'undefined',/ b! [. G# u8 X(欢迎访问老王论坛:laowang.vip)
setValue, getValue, stringify, parser;" Z `, i, g8 l7 O S(欢迎访问老王论坛:laowang.vip)
: S- [3 j+ R8 s // Define value storing and reading API1 _/ Y1 T1 B" ](欢迎访问老王论坛:laowang.vip)
if (!isGM) {5 G6 d- D3 }8 y* K" m/ A* m(欢迎访问老王论坛:laowang.vip)
setValue = function (name, value) {
; j8 f1 L- Y$ Z( C2 ~3 O. A return localStorage.setItem(name, value);/ `- _$ S( N: u2 v q4 ~0 E(欢迎访问老王论坛:laowang.vip)
};
* ?. f! h* e8 a3 u% o getValue = function (name, def) {
, C- x- d. a' E# B+ }4 d; b: h. q var s = localStorage.getItem(name);
6 H- a" d9 Y) U" ] return s == null ? def : s
. `' W9 U; ?# i };+ U/ G* a' k. W(欢迎访问老王论坛:laowang.vip)
, o! ~- Y N) e9 ^ // We only support JSON parser outside GM: N3 L7 ]) Q+ j& X(欢迎访问老王论坛:laowang.vip)
stringify = JSON.stringify;
% w" K5 H0 h$ o2 ^5 f& M. f- z4 | parser = JSON.parse;
& L0 w; q" [/ J# P* j( d& o } else {) c6 j; ]) s, B+ _8 H(欢迎访问老王论坛:laowang.vip)
setValue = GM_setValue;
9 O# ~+ n2 _8 h- i! X2 e7 C. @ getValue = GM_getValue;# j3 X6 H1 G$ G(欢迎访问老王论坛:laowang.vip)
stringify = typeof JSON == "undefined" ?
" F# r* C. }+ @6 r# Z. n function (obj) {
1 o5 f, O& |9 c: _* a. { return obj.toSource();
( W8 g! @1 o* _2 s6 {1 `7 ? } : JSON.stringify;$ l+ s4 B' c% I(欢迎访问老王论坛:laowang.vip)
parser = typeof JSON == "undefined" ?; A" V! a% N! \6 k7 e(欢迎访问老王论坛:laowang.vip)
function (jsonData) {
! M! e6 `% Z/ g3 F/ I9 e return (new Function('return ' + jsonData + ';'))();3 z0 Y1 d. e O4 W/ O(欢迎访问老王论坛:laowang.vip)
} : JSON.parse;7 \9 Q B) T( u# `- h7 s(欢迎访问老王论坛:laowang.vip)
}2 T7 ]$ y$ ]8 e- l7 ](欢迎访问老王论坛:laowang.vip)
* E' o2 C0 w8 r' U(欢迎访问老王论坛:laowang.vip)
GM_configStruct.prototype.isGM = isGM;
! Q0 o1 `( ]- S, j GM_configStruct.prototype.setValue = setValue;
) X; ?. X! y( a2 J( ]9 {) z GM_configStruct.prototype.getValue = getValue;, ]. ^4 R3 E0 ](欢迎访问老王论坛:laowang.vip)
GM_configStruct.prototype.stringify = stringify;0 u2 l H3 d0 X6 }* g M+ E(欢迎访问老王论坛:laowang.vip)
GM_configStruct.prototype.parser = parser;& ^& c7 m5 U5 x, N" `4 L, i(欢迎访问老王论坛:laowang.vip)
GM_configStruct.prototype.log = window.console ?$ _( c2 U" C2 j- H9 |) ?(欢迎访问老王论坛:laowang.vip)
console.log : (isGM && typeof GM_log != 'undefined' ?4 O7 T8 e$ k- f& d(欢迎访问老王论坛:laowang.vip)
GM_log : (window.opera ?
2 N3 O$ e" V2 S4 B0 G. g opera.postError : function () {
8 n4 t' h4 k( W' {* K /* no logging */
$ ^+ ~/ q0 X. i+ L1 u }. w1 e7 O4 J) j(欢迎访问老王论坛:laowang.vip)
));
: ?3 x# o Y3 Z7 L})();. \, }3 j4 ^% |(欢迎访问老王论坛:laowang.vip)
$ e% T f- V1 Rfunction GM_configDefaultValue(type, options) {
8 J9 `+ n' l4 ^( D var value;' \( R9 \6 t; ?4 |' `) S(欢迎访问老王论坛:laowang.vip)
$ {! W3 p: V; }5 w& I" b* M(欢迎访问老王论坛:laowang.vip)
if (type && type.indexOf('unsigned ') == 0)
+ W" i2 f/ t; y5 L type = type.substring(9);- }5 h$ x0 B+ @* l v+ B, m8 S(欢迎访问老王论坛:laowang.vip)
% e! t% u0 }/ o* [" R switch (type) {
! ], [5 y" ~* o8 l, a8 e case 'radio':
. i) P* c$ d! B4 a, z1 H. h( F; i case 'select':! }; L7 A6 i+ {# X1 ?1 c(欢迎访问老王论坛:laowang.vip)
value = options[0]; J5 [/ {) \' I, z: z(欢迎访问老王论坛:laowang.vip)
break;$ m) q" q" M3 K, l% c& q C O' `(欢迎访问老王论坛:laowang.vip)
case 'checkbox':
/ Y3 u: }" E% x! L, _$ u value = false;
3 ?4 H5 D9 w4 B- [6 A break;
! _$ [/ V0 S9 p8 s case 'int':) N" G, x9 y' l1 Z- M2 y7 P5 R(欢迎访问老王论坛:laowang.vip)
case 'integer':
# }/ k S9 `% e4 \6 j7 E/ U case 'float':
# C# u# f+ Q- ^ _; A3 @ case 'number':
1 o- C6 i9 C: o& @& e value = 0;& v+ M) u9 W7 {$ y7 w r(欢迎访问老王论坛:laowang.vip)
break;
5 a) e+ {6 `/ h2 x5 Z1 C: V3 l default:- ]; e j# a! q0 h(欢迎访问老王论坛:laowang.vip)
value = '';
8 x5 h8 c+ i0 o& R% g8 D1 Q: d }9 K% r$ ]8 o! U(欢迎访问老王论坛:laowang.vip)
3 |) A; L0 M0 C; I; A g(欢迎访问老王论坛:laowang.vip)
return value;
% ~! L- ~0 r3 `" g}0 ^+ y$ `, u+ N9 N* H9 P" }' ~6 \/ e+ D(欢迎访问老王论坛:laowang.vip)
/ z4 M+ u' s. A! t, i$ Kfunction GM_configField(settings, stored, id, customType) {. t. v4 E1 D k) {(欢迎访问老王论坛:laowang.vip)
// Store the field's settings f% y/ T% S+ A- V+ S(欢迎访问老王论坛:laowang.vip)
this.settings = settings;7 M4 \ |( A* s(欢迎访问老王论坛:laowang.vip)
this.id = id;! W" s5 C0 e' x' ?9 ^( g(欢迎访问老王论坛:laowang.vip)
this.node = null;: R% e! z7 Z, N(欢迎访问老王论坛:laowang.vip)
this.wrapper = null;7 ^, m; B9 g4 m; Q(欢迎访问老王论坛:laowang.vip)
this.save = typeof settings.save == "undefined" ? true : settings.save;& l% _& V9 ~6 ]- x7 G4 s: y5 |(欢迎访问老王论坛:laowang.vip)
1 ^/ T- K) M( w2 X8 X3 ] // Buttons are static and don't have a stored value
7 {# q, v, ]+ [) S7 L1 r. v3 X1 u if (settings.type == "button") this.save = false;1 @+ b& c* z. ^7 l: C5 u(欢迎访问老王论坛:laowang.vip)
if (settings.type == "span") this.save = false;4 N/ l, p! C7 \+ p" u1 v' A(欢迎访问老王论坛:laowang.vip)
3 l" C, c! ?$ h! s2 [. U // if a default value wasn't passed through init() then
6 z) X+ s( d. U. w9 y3 d8 j // if the type is custom use its default value9 K- x" o* K0 h(欢迎访问老王论坛:laowang.vip)
// else use default value for type
( I& o C% [6 h // else use the default value passed through init()
m5 `- ?0 R, D7 t( G9 n this['default'] = typeof settings['default'] == "undefined" ?
8 ~; k/ W- ?. v3 h0 S7 N customType ?8 t) N& I+ r% B/ ~: @4 W, P(欢迎访问老王论坛:laowang.vip)
customType['default'] :( I) e! y$ H: ^. E5 j( r( ^+ _: ?(欢迎访问老王论坛:laowang.vip)
GM_configDefaultValue(settings.type, settings.options) :
9 |* M9 l2 ~" o& F# w+ ~; W: I settings['default'];
4 q R. }5 n& X7 h, \% l9 Q$ O
; a. c6 a1 D0 `* f- z // Store the field's value
* l; {# z$ F8 Y" a this.value = typeof stored == "undefined" ? this['default'] : stored;
9 U1 Y+ h) M" {6 d9 ^1 `
' q. z5 p2 a# n) \6 p0 i // Setup methods for a custom type
# \2 \9 m8 c. a- N6 v) c! G' T0 f if (customType) {
. y% s4 T2 z F( H+ w1 c2 a! b this.toNode = customType.toNode;2 d- M( S8 k% C! Z' ~(欢迎访问老王论坛:laowang.vip)
this.toValue = customType.toValue;
& T, b. }: d$ m this.reset = customType.reset;
! W& M% k* ^5 v8 D' N( U8 K5 { }
. J0 Q) ~2 ]7 [2 d+ N6 ]; |6 r }}/ A6 D1 a( p. ]- H. k(欢迎访问老王论坛:laowang.vip)
2 n, h+ l/ o/ Y, L+ C/ X) OGM_configField.prototype = {
2 z) P, \9 p* h3 x0 F create: GM_configStruct.prototype.create,
. j. N! f' G8 c9 _1 F0 v
6 K8 m1 ~1 U! P+ Q toNode: function (configId, lastParentNode) {
# d4 m3 D# r6 j- M+ Q w2 p var field = this.settings,
% R8 q/ }2 B/ G ~9 a6 _; W& [ value = this.value,
0 l: D2 |7 T5 \" A# A6 _9 L options = field.options,
- l! V( Z. H$ J" ?. a6 I: B2 Z type = field.type,
4 m+ A4 G, n, D6 _; c( ~7 r6 @/ ` id = this.id,
5 C1 w# |; N: l* o5 O/ q. c/ R labelPos = field.labelPos,( z0 S8 D! ` v; n3 k2 ?5 t7 H(欢迎访问老王论坛:laowang.vip)
create = this.create;0 g( _, a/ @% P) R x(欢迎访问老王论坛:laowang.vip)
% p$ }5 k3 g k$ Y% P3 } function addLabel(pos, labelEl, parentNode, beforeEl) {
% e+ b% D5 A/ V% D) h" x2 a) X if (!beforeEl) {( n$ e4 T$ u$ D3 [9 _" r1 E% k(欢迎访问老王论坛:laowang.vip)
beforeEl = lastParentNode ? parentNode.lastChild : parentNode.firstChild; // oneLine 的修正
+ d9 X. B+ e7 _( d$ F+ ` }
, V$ `# o; }0 q" p
" ?. [* W; Y9 ~ switch (pos) {: \6 ^$ b! n) M4 e$ ^' d" ~' k3 x8 m(欢迎访问老王论坛:laowang.vip)
case 'right':
! @1 P3 i! v0 t" b+ [ case 'below':* V$ S7 O, f8 I) W1 x(欢迎访问老王论坛:laowang.vip)
if (pos == 'below')
! `' m. m w) w" F: N( X" q7 A! j parentNode.appendChild(create('br', {}));# Z. u( p. t5 n1 Q! B8 k(欢迎访问老王论坛:laowang.vip)
parentNode.appendChild(labelEl);
$ O* F9 B0 d: a break;
( b. X) a8 K n8 D default:
, I# U$ |7 N# A* o7 q9 U0 P9 u6 J if (pos == 'above')
- j+ N0 E$ S4 p, u3 `; [+ E parentNode.insertBefore(create('br', {}), beforeEl);; N+ D$ d! _0 j. G" h" o(欢迎访问老王论坛:laowang.vip)
parentNode.insertBefore(labelEl, beforeEl);
: s# w6 y. F/ S* [ }. i% i- \% Y% r(欢迎访问老王论坛:laowang.vip)
}
5 v3 [5 Q0 x7 n* K9 t
4 f2 Y$ t) {+ W$ R var retNode = create('div', {
3 {( L+ h6 O& y. U) V% G className: 'config_var',7 \; O$ r* U" e5 C( y# P% C. Z* N6 X(欢迎访问老王论坛:laowang.vip)
id: configId + '_' + id + '_var',
3 m9 @. W! D4 O1 I! s2 j5 q" L title: field.title || ''' z9 R6 b) w. {: D3 k6 c(欢迎访问老王论坛:laowang.vip)
}),7 `% D' W( o [* @7 O(欢迎访问老王论坛:laowang.vip)
firstProp;
/ Z0 R" ^# J8 `: f2 z4 d8 ?9 ?- s& |: M$ n& E) Q(欢迎访问老王论坛:laowang.vip)
// Retrieve the first prop
3 ~, c+ A1 r% _" i for (var i in field) {+ d3 ~7 d$ }8 w+ v; H9 g(欢迎访问老王论坛:laowang.vip)
firstProp = i;7 ?3 b' g3 A8 J9 F; ^(欢迎访问老王论坛:laowang.vip)
break;7 \; [4 e) f5 J(欢迎访问老王论坛:laowang.vip)
}+ t0 P6 }! O/ g8 [ N1 d(欢迎访问老王论坛:laowang.vip)
* f- `1 N, h' z(欢迎访问老王论坛:laowang.vip)
var label = field.label && type != "button" ?7 A2 G2 x7 A& h _7 I(欢迎访问老王论坛:laowang.vip)
create('label', {
, o! R% a( {0 L9 Z1 R$ F( B id: configId + '_' + id + '_field_label',3 l, f" y& h. W; Y7 L0 c* |(欢迎访问老王论坛:laowang.vip)
for: configId + '_field_' + id,+ n. d4 m) Y$ r3 }7 y* ^; S! g8 i1 f" |(欢迎访问老王论坛:laowang.vip)
className: 'field_label'( b5 T7 V. e' y0 y ~(欢迎访问老王论坛:laowang.vip)
}, field.label) : null;) S' p5 i2 F( `1 T, u) {(欢迎访问老王论坛:laowang.vip)
% Q2 e6 K/ @1 X. e(欢迎访问老王论坛:laowang.vip)
switch (type) {
, j- g' P M8 g1 Q case 'span':3 {" |" S3 Y0 e9 a(欢迎访问老王论坛:laowang.vip)
label = null;3 n% \. v( i; l(欢迎访问老王论坛:laowang.vip)
, M6 ?' n! x$ ^, Q" }(欢迎访问老王论坛:laowang.vip)
this.node = create('span', {, u# H4 q' J5 G9 q! {(欢迎访问老王论坛:laowang.vip)
innerHTML: field.label,
8 j7 ~1 c$ H% T7 f% ^9 y6 L className: 'field_label',
' z) ]8 W1 P1 h g# Q4 J3 n title: field.title,
8 k% Q2 r0 s/ d style: field.style4 U/ [. ?$ H$ P$ n# I$ f+ d% V7 g# J(欢迎访问老王论坛:laowang.vip)
}); T- _( I& G; h7 E(欢迎访问老王论坛:laowang.vip)
retNode = this.node;. d4 J) R" @- U4 ~0 S(欢迎访问老王论坛:laowang.vip)
break; Q7 S& z6 m: j# l(欢迎访问老王论坛:laowang.vip)
case 'textarea':
! @: y1 P$ B8 y- c6 d2 g! Z( n5 t6 j retNode.appendChild((this.node = create('textarea', {
& v- v( I, d! m! @7 h: J innerHTML: value,1 N/ g! \/ W& B(欢迎访问老王论坛:laowang.vip)
id: configId + '_field_' + id,! Z/ v9 v* l) a( _# I, K(欢迎访问老王论坛:laowang.vip)
className: 'block' + (field.className ? (" " + field.className) : ''),7 ?# p& i6 _" }' Q(欢迎访问老王论坛:laowang.vip)
cols: (field.cols ? field.cols : 20),, G; ?( [. s& S) J0 k+ j3 Z(欢迎访问老王论坛:laowang.vip)
rows: (field.rows ? field.rows : 2),
4 a. m' [3 _6 b$ Y, A5 ?9 y+ B placeholder: field.placeholder" _3 K- k$ o+ _" n(欢迎访问老王论坛:laowang.vip)
})));+ p$ y. u( ?/ z3 Y( b(欢迎访问老王论坛:laowang.vip)
break;& q1 }9 R% b7 v$ s(欢迎访问老王论坛:laowang.vip)
case 'radio':
9 V, F) s# ^/ l) G! K1 N$ I' C. O var wrap = create('div', {
" {- J# v7 R. D* O2 z7 G) L id: configId + '_field_' + id,
Z: o/ z6 M5 o) i- f$ W+ i className: field.className3 A1 ^0 z/ b( O2 t+ @. L2 J(欢迎访问老王论坛:laowang.vip)
});" E& ]7 J6 x& ^6 w(欢迎访问老王论坛:laowang.vip)
this.node = wrap;8 T4 _" g) N+ |6 Q4 v(欢迎访问老王论坛:laowang.vip)
) A! f7 c, {3 A(欢迎访问老王论坛:laowang.vip)
for (var i = 0, len = options.length; i < len; ++i) {) O( ^% o3 [ C(欢迎访问老王论坛:laowang.vip)
var radLabel = create('label', {2 w: |) Q5 s$ f3 j(欢迎访问老王论坛:laowang.vip)
className: 'radio_label'
& u- B' Y6 u: f8 B# F i& _& Z }, options);: @* B% K9 @0 M(欢迎访问老王论坛:laowang.vip)
5 }6 G% w' Y$ }(欢迎访问老王论坛:laowang.vip)
var rad = wrap.appendChild(create('input', {+ h2 s# E: X! U' `. _(欢迎访问老王论坛:laowang.vip)
value: options,0 i4 h5 O1 E3 N W v(欢迎访问老王论坛:laowang.vip)
type: 'radio',- v# S0 [# }* [. o* I- s, q- }(欢迎访问老王论坛:laowang.vip)
name: id,8 K9 c/ C& }& d6 x(欢迎访问老王论坛:laowang.vip)
checked: options == value
) {( m( C& \, @! P4 a }));
# k# ]6 ]2 d1 }( a( ]* J, t, z v$ F(欢迎访问老王论坛:laowang.vip)
var radLabelPos = labelPos &&
5 F0 `$ t: C, d; v# y/ d0 o7 s! t (labelPos == 'left' || labelPos == 'right') ?, P7 ?# ?. o1 P5 t- |# o(欢迎访问老王论坛:laowang.vip)
labelPos : firstProp == 'options' ? 'left' : 'right';5 y2 F& V! u* S6 Q3 [/ e5 r# g(欢迎访问老王论坛:laowang.vip)
' C2 ?1 E& I9 i5 e6 `6 I- R1 o7 Y(欢迎访问老王论坛:laowang.vip)
addLabel(radLabelPos, radLabel, wrap, rad);
" L7 ~. l. ^3 C0 X7 d }
; k- y7 L5 C' q, f& L2 x' a/ z4 \# d4 t, [7 y(欢迎访问老王论坛:laowang.vip)
retNode.appendChild(wrap); o! l2 ]' e2 ^) I(欢迎访问老王论坛:laowang.vip)
break;$ p8 f" H( j V' h(欢迎访问老王论坛:laowang.vip)
case 'select':3 v* m% U+ B1 y5 c- j" T(欢迎访问老王论坛:laowang.vip)
var wrap = create('select', {
$ T) F& h% K" `, T7 P* a8 o1 p1 j id: configId + '_field_' + id
' D4 f `! T& e! {# } });& d/ U* P I2 R' a0 I# E(欢迎访问老王论坛:laowang.vip)
this.node = wrap;
# r# q- `% M+ ?* |( q3 |
6 [6 m7 G5 w1 Z* A for (var i = 0, len = options.length; i < len; ++i) {
3 Q& s/ p6 o9 @- e var option = options;3 X! ~% N7 C) m(欢迎访问老王论坛:laowang.vip)
wrap.appendChild(create('option', {% N' ?1 Q3 G! ]: G/ n4 C4 D(欢迎访问老王论坛:laowang.vip)
value: option,
3 V( T+ {5 a+ R/ D4 y+ _) P" T0 G: R selected: option == value
2 L3 d# W" x7 r1 _8 Z/ }( p; u' ]( ] }, option));
' A. |% m+ H- p4 f/ A0 ~ }
, H# [8 y/ f1 ?9 n- c7 f) k/ A( L3 y* c1 ~! X4 D(欢迎访问老王论坛:laowang.vip)
retNode.appendChild(wrap);
8 o+ I1 r4 S4 J2 P break;2 r# a7 i! z: B/ m, _" c(欢迎访问老王论坛:laowang.vip)
default: // fields using input elements
7 Z ^6 }8 S, U var props = {
" j6 p' O5 b( I( c' X. ]9 @ id: configId + '_field_' + id,
, n, w- ~+ l3 c' R: {: j7 |# K type: type,
/ B- c! P( D/ n' Q/ u value: type == 'button' ? field.label : value- w( r1 n, N. K' d5 Z3 g(欢迎访问老王论坛:laowang.vip)
};. q' y! U( Z0 f* k+ C(欢迎访问老王论坛:laowang.vip)
: w$ _* S) H* _- V switch (type) {
( A+ R! y/ I1 |) B case 'checkbox':
6 P9 O; B9 p, k* P props.checked = value;
6 t7 v4 X9 f/ G" }5 o4 ~ break;
j2 Y$ d" h% @! H( N1 y case 'button':; e8 @ m8 h% r" g3 f, I, w! E(欢迎访问老王论坛:laowang.vip)
props.size = field.size ? field.size : 25;0 s: p) Y, k) r! g( J(欢迎访问老王论坛:laowang.vip)
if (field.script) field.click = field.script;' K3 b, C/ M5 k6 S; `(欢迎访问老王论坛:laowang.vip)
if (field.click) props.onclick = field.click;$ c5 C" q" I* ~5 J' P; w6 P(欢迎访问老王论坛:laowang.vip)
break;
! d* y, n. I5 v V, ^ case 'hidden':0 U: h M* }$ Y9 r: t(欢迎访问老王论坛:laowang.vip)
break;" j0 F d; Y! w# U* x(欢迎访问老王论坛:laowang.vip)
default:
" B- a$ d& C H* d // type = text, int, or float) N* w9 s9 k8 T, G8 t(欢迎访问老王论坛:laowang.vip)
props.type = 'text';9 O- Z1 A# o5 m1 X8 W7 l(欢迎访问老王论坛:laowang.vip)
props.size = field.size ? field.size : 25;3 _- L, f* U+ {; f, q! ](欢迎访问老王论坛:laowang.vip)
}( y) f: E% n+ P3 A% c(欢迎访问老王论坛:laowang.vip)
, g5 k! h* a' f2 | retNode.appendChild((this.node = create('input', props)));% v' O6 i8 h0 Q, m$ x(欢迎访问老王论坛:laowang.vip)
}6 g3 J9 D$ {4 Q% ~0 ?' _(欢迎访问老王论坛:laowang.vip)
5 o( Z8 I3 b8 S" s(欢迎访问老王论坛:laowang.vip)
if (label) {1 @- u' c5 c2 s& C$ }(欢迎访问老王论坛:laowang.vip)
// If the label is passed first, insert it before the field7 j. D- T3 Y1 h# F5 Q( J5 }# Y(欢迎访问老王论坛:laowang.vip)
// else insert it after$ ?) J8 N- c$ ?( r; d1 p(欢迎访问老王论坛:laowang.vip)
if (!labelPos)% X/ p5 t5 j* W+ @1 b% |(欢迎访问老王论坛:laowang.vip)
labelPos = firstProp == "label" || type == "radio" ?4 O( E9 ]( W+ O. s9 o! C(欢迎访问老王论坛:laowang.vip)
"left" : "right";
`( Q& Y9 E& L9 r# x1 \. V+ b! H; O1 Q/ U) `4 h, E% f5 J# V(欢迎访问老王论坛:laowang.vip)
addLabel(labelPos, label, retNode);
7 |$ p+ F# Y' o' M4 v" Y3 r0 G }8 P {4 }! s( t8 A/ x6 Y( G" ?2 a(欢迎访问老王论坛:laowang.vip)
2 [, I" h) Y: t1 ^' c(欢迎访问老王论坛:laowang.vip)
return retNode;, Y) h- i) N& c(欢迎访问老王论坛:laowang.vip)
},
* O+ K- B: }! b& Q- t5 o4 A: f7 T6 o/ i& Y2 K, P6 Q; p7 D7 P(欢迎访问老王论坛:laowang.vip)
toValue: function () {( t3 _. V* O; O8 \. @3 h9 ~8 o(欢迎访问老王论坛:laowang.vip)
var node = this.node,
- N& E' B2 ?/ |) |% B field = this.settings,
8 z; l- i- x/ R& K9 W/ n. T# [ type = field.type,
' K! n/ x; M- q! }, Y& R% i1 X$ ] unsigned = false,7 a) V* [( u( O4 Y* |/ u(欢迎访问老王论坛:laowang.vip)
rval = null;0 t) O+ E; q% _(欢迎访问老王论坛:laowang.vip)
& {: X5 q( x# {# X/ L* x) d if (!node) return rval;3 [1 ~2 E6 ]( V# N' H' q* Q(欢迎访问老王论坛:laowang.vip)
& a5 U( ^; _5 } i if (type.indexOf('unsigned ') == 0) {" m) `& v& ~1 g& I7 i6 F. S; b(欢迎访问老王论坛:laowang.vip)
type = type.substring(9);
6 c" Y9 ?3 E* u unsigned = true;0 u* P8 v, i( A' @7 s d1 I% O2 _(欢迎访问老王论坛:laowang.vip)
}
# L+ Y! S, j5 D2 ~) w
- v( P; g2 e! g3 _ switch (type) {
: J/ h* o, I: T5 X case 'checkbox':# V' r5 W1 t' P; s(欢迎访问老王论坛:laowang.vip)
rval = node.checked;2 m% X# E* k; X4 ?& T! K$ N(欢迎访问老王论坛:laowang.vip)
break;' {3 l8 }5 ?4 o& q1 ]) S(欢迎访问老王论坛:laowang.vip)
case 'select':
# W, Z& `! W" h$ I; Z rval = node[node.selectedIndex].value;
& {4 N2 D# l# I6 r break;
7 u! a5 V& C6 T# G/ G case 'radio':
' C( M/ x+ Q# ]9 J var radios = node.getElementsByTagName('input');7 l# }2 p A0 \& q5 {( O(欢迎访问老王论坛:laowang.vip)
for (var i = 0, len = radios.length; i < len; ++i)& Q5 ^7 f/ N; H: v- ?& o9 h(欢迎访问老王论坛:laowang.vip)
if (radios.checked)
: E5 V0 A* M2 y. x9 Y6 l# O rval = radios.value;3 C& |. q6 b% }0 Q3 P(欢迎访问老王论坛:laowang.vip)
break;# v; r$ M$ [* D! e* I( x(欢迎访问老王论坛:laowang.vip)
case 'button':
4 S. |* @; X1 y- }! b break;
, d |: j1 n4 R3 Y, |* V. N case 'int':, R: S8 {* n; l(欢迎访问老王论坛:laowang.vip)
case 'integer':
4 C1 z8 y1 ~( s; Y8 @; u case 'float':# H2 L& k! R- X(欢迎访问老王论坛:laowang.vip)
case 'number':* \" R$ S5 i% ^! c3 O- {(欢迎访问老王论坛:laowang.vip)
var num = Number(node.value);: D* |6 ?, o, I+ H! p(欢迎访问老王论坛:laowang.vip)
var warn = '输入字符 "' + field.label + '" 要求必须为' +
/ i) S8 R! Z( e# ~: s (unsigned ? ' 正 ' : 'n ') + '整数值';, P+ d) V7 i9 j' _4 l' e(欢迎访问老王论坛:laowang.vip)
- L9 A; b& y) K7 h* W if (isNaN(num) || (type.substr(0, 3) == 'int' &&
5 {3 v$ o( u3 ?) k1 a' c5 F Math.ceil(num) != Math.floor(num)) ||
. Q# U" X7 j$ X% r% | (unsigned && num < 0)) {
6 P* R: T8 k& X3 F alert(warn + '.');
4 p# N% h1 c: g, o- l% M return null;
' ?+ V) o7 A7 O6 x' B% M }
# X* d4 U4 B) _( e- w! v9 R, C+ K) l/ a4 a" e( M' a9 v(欢迎访问老王论坛:laowang.vip)
if (!this._checkNumberRange(num, warn))
A% z: q+ t# V3 K- q2 B' J return null;: w! ~$ }; t+ }1 a# Z2 v6 ~(欢迎访问老王论坛:laowang.vip)
rval = num;
& {& V; p- U& ] break;
* k& R+ f V) Q' q8 w+ E$ P& m# v default:% J, z# c& g' y: h# ?7 _7 I(欢迎访问老王论坛:laowang.vip)
rval = node.value;
3 E: R9 e2 G! m T* | break;& {7 j7 t4 R+ g7 |(欢迎访问老王论坛:laowang.vip)
}
0 Z' c) s! h' G, ~8 q, h
8 F& Y4 T" Q$ q4 E8 o, G return rval; // value read successfully$ U! ~: z+ V# B$ d# z(欢迎访问老王论坛:laowang.vip)
},/ Q5 V" p6 Z$ } a' _, K- C! B(欢迎访问老王论坛:laowang.vip)
, E K) P) l9 }2 G+ n reset: function () {# A/ n1 K: V- @0 E) h(欢迎访问老王论坛:laowang.vip)
var node = this.node,* F0 U \" G- m$ {( Y% u, D! O(欢迎访问老王论坛:laowang.vip)
field = this.settings,+ Z3 r( k+ \# _# g$ d7 X! E* Q(欢迎访问老王论坛:laowang.vip)
type = field.type;
! L+ y/ e) W1 }7 Z; D4 x% u
# D4 l* S' e7 Z2 L if (!node) return;( q" I8 D# `/ L& A8 ?(欢迎访问老王论坛:laowang.vip)
, w+ |1 A; K, U# ` switch (type) {, E. d% l' B( w8 n) n, Q(欢迎访问老王论坛:laowang.vip)
case 'checkbox':# r3 U8 P% W( Y! [+ t* y(欢迎访问老王论坛:laowang.vip)
node.checked = this['default'];
7 h, K; _" {4 U4 V& q- v" W break;. Z" b8 n5 V" ^+ i+ y$ \(欢迎访问老王论坛:laowang.vip)
case 'select':
& g( z: }+ g" @. O% u for (var i = 0, len = node.options.length; i < len; ++i)6 n- I9 a! s- y& @* k$ p$ _$ ](欢迎访问老王论坛:laowang.vip)
if (node.options.value == this['default'])
% n3 [, h: ?& l/ | node.selectedIndex = i;, K! G) T8 e3 d(欢迎访问老王论坛:laowang.vip)
break;
! C3 `$ I- ]8 ?7 i6 U case 'radio':
v; H8 ^6 [6 ~1 ~' S var radios = node.getElementsByTagName('input');
+ m4 k' B- A0 y3 R6 O for (var i = 0, len = radios.length; i < len; ++i)9 r! j; K1 [* r) d1 B) K(欢迎访问老王论坛:laowang.vip)
if (radios.value == this['default']) Q( s6 r: N# T) `4 A( |: {' S(欢迎访问老王论坛:laowang.vip)
radios.checked = true;
$ Y9 o; W5 Y: m; {2 i2 H+ ?/ Y break;2 K& e r7 Z" R(欢迎访问老王论坛:laowang.vip)
case 'button':' V/ E( H% c- f7 L$ z* S(欢迎访问老王论坛:laowang.vip)
break;' B$ ]6 j; m% }: ]0 @0 G(欢迎访问老王论坛:laowang.vip)
default:
4 ~+ R" d" v# T7 I+ t! T node.value = this['default'];
0 X7 K% R3 T& R6 o break;
" n- Z& F2 M1 W }/ W0 A. {! a( `1 T, g J(欢迎访问老王论坛:laowang.vip)
},0 k8 c$ w, T9 r) X0 Z(欢迎访问老王论坛:laowang.vip)
2 G5 W2 N& Y; f(欢迎访问老王论坛:laowang.vip)
remove: function (el) {
) _6 Z# i0 }1 Q V GM_configStruct.prototype.remove(el || this.wrapper);
4 L( A4 D7 C- p" h this.wrapper = null;( `" |# S k: Y4 p6 H8 z# i(欢迎访问老王论坛:laowang.vip)
this.node = null;) N: |: R/ {9 w& X4 \; _" b) h(欢迎访问老王论坛:laowang.vip)
},
: d9 e0 b1 j F4 D4 x; b3 j: K M4 N5 m E5 I' j6 ]' a4 E(欢迎访问老王论坛:laowang.vip)
reload: function () {4 N8 R! P3 ?/ V4 p. O, C(欢迎访问老王论坛:laowang.vip)
var wrapper = this.wrapper;/ c" @( L5 ~5 j8 J" r(欢迎访问老王论坛:laowang.vip)
if (wrapper) {
* D/ b b! T( K: {( i: ~ var fieldParent = wrapper.parentNode;) p" s' d- ?- V(欢迎访问老王论坛:laowang.vip)
fieldParent.insertBefore((this.wrapper = this.toNode()), wrapper);! [+ I4 m9 w' Z7 D _(欢迎访问老王论坛:laowang.vip)
this.remove(wrapper);
$ S7 @4 a! {, Q9 u5 T* W }
. ]/ U3 X4 X @) d },
7 E0 y- C! P, E# r. Y& x$ h6 h6 o7 R; X. f* b(欢迎访问老王论坛:laowang.vip)
_checkNumberRange: function (num, warn) {
. }3 C$ P r% b var field = this.settings;3 m: j! z$ G) q7 t) s+ r' p(欢迎访问老王论坛:laowang.vip)
if (typeof field.min == "number" && num < field.min) {
2 F1 H# K/ z6 [9 Z alert(warn + ' greater than or equal to ' + field.min + '.');
. N2 p! r% O* n8 f# ~. l6 d, Q! u return null;
) ^6 |: n. J. l% R }
* m' l/ I, |/ j% S
! z% h" P/ o: ^4 I( t1 `3 P J9 \ if (typeof field.max == "number" && num > field.max) {. E$ F8 y7 a% w/ q; w% z( P(欢迎访问老王论坛:laowang.vip)
alert(warn + ' less than or equal to ' + field.max + '.');
# t4 j8 L5 E; c. A0 @$ e# w! C return null;" `6 N$ }9 w+ {) x/ F6 ](欢迎访问老王论坛:laowang.vip)
}
/ l5 L+ C& P5 n* D6 h0 b# Y' D return true;+ I8 q. V3 D+ @3 |! @' N3 [ N(欢迎访问老王论坛:laowang.vip)
}
m; S1 ^0 f: o+ }};; \% H' T; @% F3 u2 r(欢迎访问老王论坛:laowang.vip)
8 x% X: D( t# B( _: X// Create default instance of GM_config
# k* Y4 ?+ K1 @& o0 q1 Mvar GM_config = new GM_configStruct();
! C. ~# N8 M! r
% Y( d% J% f/ \# f/*waitForKeyElements*/
/ |& O3 e( L- l7 l2 }9 p, ~/*--- waitForKeyElements(): A utility function, for Greasemonkey scripts,! L# R' i- B1 i* h- u$ ~(欢迎访问老王论坛:laowang.vip)
that detects and handles AJAXed content.' [% ` ^3 l' r# U(欢迎访问老王论坛:laowang.vip)
$ X z) C- ?! G$ N5 \ Usage example:) o/ v" K. a; y1 V }9 R4 O(欢迎访问老王论坛:laowang.vip)
waitForKeyElements ("div.comments", commentCallbackFunction);
. X$ ]' l5 \6 B$ d( s. T; A2 U% X! W7 C(欢迎访问老王论坛:laowang.vip)
//--- Page-specific function to do what we want when the node is found.4 m" U5 ?3 o/ Z+ X+ }(欢迎访问老王论坛:laowang.vip)
function commentCallbackFunction (jNode) {
0 Q6 ?6 `8 s# }1 C( f! ^ jNode.text ("This comment changed by waitForKeyElements().");) g7 r# I! [+ m Z& W3 }(欢迎访问老王论坛:laowang.vip)
}
3 Y6 f2 z* w1 X! X0 @0 |! z" \" `0 r8 n0 Y6 N% R0 a(欢迎访问老王论坛:laowang.vip)
IMPORTANT: This function requires your script to have loaded jQuery.5 B. }; {3 u2 r+ m5 l(欢迎访问老王论坛:laowang.vip)
*/' c7 d$ g" Z' @+ R1 k3 }(欢迎访问老王论坛:laowang.vip)
9 H. U' H4 i) ~% N) V, L) Q) x3 R( r(欢迎访问老王论坛:laowang.vip)
function waitForKeyElements(
; S, H1 s' t6 i1 H% V6 q! t selectorTxt,
p9 b/ {; m1 O: u /* Required: The jQuery selector string that! w/ V1 _" Q" }; ](欢迎访问老王论坛:laowang.vip)
specifies the desired element(s).
; _& \4 u+ b4 ~, |2 Z5 h: [) @* \: W0 [ */& ]+ I* \% L$ q3 Z$ d1 ?: q(欢迎访问老王论坛:laowang.vip)
actionFunction,& @6 f0 L3 Z S6 _( V(欢迎访问老王论坛:laowang.vip)
/* Required: The code to run when elements are
/ N3 U$ N' ?$ W4 c! k- E. A found. It is passed a jNode to the matched
' u+ o) y8 H \) r& ? o- i. R element.2 H; t- s6 ~$ N7 W8 m9 P(欢迎访问老王论坛:laowang.vip)
*/1 \8 X8 H, J+ y6 l+ e3 \(欢迎访问老王论坛:laowang.vip)
bWaitOnce,8 q2 G3 O g5 k3 T(欢迎访问老王论坛:laowang.vip)
/* Optional: If false, will continue to scan for7 f* D+ I# s7 @/ f# V(欢迎访问老王论坛:laowang.vip)
new elements even after the first match is
7 ?3 k0 [/ h/ y+ _# w found.- Q: r$ o0 H2 U, @(欢迎访问老王论坛:laowang.vip)
*/ r: F* H6 G$ o" o% P* a(欢迎访问老王论坛:laowang.vip)
iframeSelector* F6 L3 C: q" [# q/ w6 v(欢迎访问老王论坛:laowang.vip)
/* Optional: If set, identifies the iframe to
1 |/ g+ B! C; S# o search.
9 l1 r) _1 u5 e! I. Y! O2 H */
* i8 J! A$ a/ A) {+ E7 w; r/ `2 _+ c* k(欢迎访问老王论坛:laowang.vip)
var targetNodes, btargetsFound;
# Q* }. k8 }4 ?; D0 V
9 C. H9 y4 d) p5 F if (typeof iframeSelector == "undefined")+ w/ s4 d3 L4 s(欢迎访问老王论坛:laowang.vip)
targetNodes = $(selectorTxt);7 N3 P3 g) A$ O(欢迎访问老王论坛:laowang.vip)
else, f" ^- l9 u R6 L; r4 E& d(欢迎访问老王论坛:laowang.vip)
targetNodes = $(iframeSelector).contents()
& }9 i$ f1 L) G e .find(selectorTxt);
5 R& Z/ p# l- Q8 R) |; i# i( x6 c' ]# F" c4 s; T(欢迎访问老王论坛:laowang.vip)
if (targetNodes && targetNodes.length > 0) {5 R s% x) ~- A(欢迎访问老王论坛:laowang.vip)
btargetsFound = true;$ f& D. r* M/ F7 ~(欢迎访问老王论坛:laowang.vip)
/*--- Found target node(s). Go through each and act if they/ a) q' N7 z; W' Y(欢迎访问老王论坛:laowang.vip)
are new." h& L/ ], a: T0 E% s5 w(欢迎访问老王论坛:laowang.vip)
*/9 _8 ]& ^, N& {" @& f(欢迎访问老王论坛:laowang.vip)
targetNodes.each(function () {
7 {% I$ q0 {# J& E( q, S4 J var jThis = $(this);
+ ^- _) c9 n# J, g9 E1 K var alreadyFound = jThis.data('alreadyFound') || false;) C N- R/ v n8 w6 n" G(欢迎访问老王论坛:laowang.vip)
8 R6 G6 n& ], b) p1 d5 _6 |(欢迎访问老王论坛:laowang.vip)
if (!alreadyFound) {/ J/ p1 H; Z: h Q. s" Y6 t" U(欢迎访问老王论坛:laowang.vip)
//--- Call the payload function.
+ s8 i! C6 M6 ^9 R- q" j! k var cancelFound = actionFunction(jThis);
8 q9 Q0 s- y' r1 N) `! Y) h v3 v if (cancelFound)
6 m7 V/ g: W0 f2 v btargetsFound = false;
& r R1 B" W$ k' O! E# N# m else" U8 \7 S# Z# y9 _2 i. d(欢迎访问老王论坛:laowang.vip)
jThis.data('alreadyFound', true);7 _6 u6 t& e$ b0 v( C2 T(欢迎访问老王论坛:laowang.vip)
}* ?) n7 K+ [( V. |8 F: |, i(欢迎访问老王论坛:laowang.vip)
});! Z z& A$ N3 z7 c) `(欢迎访问老王论坛:laowang.vip)
} else {
& ~9 y$ ~4 A& I+ @ btargetsFound = false;
# }( C$ C9 w# |4 h# }3 B }
% C! x! v5 N: A* f. t) ^
0 I; u( |( A1 M; g5 F3 S& k* ` //--- Get the timer-control variable for this selector.5 B) ^. Q0 h% Y(欢迎访问老王论坛:laowang.vip)
var controlObj = waitForKeyElements.controlObj || {};9 n6 D7 E! x& G, _- R(欢迎访问老王论坛:laowang.vip)
var controlKey = selectorTxt.replace(/[^\w]/g, "_");0 z# B# F' R' p+ ?3 g+ L0 H6 P(欢迎访问老王论坛:laowang.vip)
var timeControl = controlObj[controlKey];
+ Y1 Y# v9 K7 \9 Q. `# ^. |& d4 A0 l( u! B# P0 p(欢迎访问老王论坛:laowang.vip)
//--- Now set or clear the timer as appropriate.
0 U* B# L; V- V. @5 E if (btargetsFound && bWaitOnce && timeControl) {
7 G$ y4 ~ e1 z w" X- c //--- The only condition where we need to clear the timer.
" e& Y2 O2 u7 G$ ^ clearInterval(timeControl);4 m7 S# f4 V) d+ D7 F(欢迎访问老王论坛:laowang.vip)
delete controlObj[controlKey];) w! A( o6 V ~(欢迎访问老王论坛:laowang.vip)
} else {& H' a+ k( t# M: V(欢迎访问老王论坛:laowang.vip)
//--- Set a timer, if needed.
- b: o8 C& h- g2 ~8 L% W if (!timeControl) {
' m: U! e* {( N( o; r& [* a timeControl = setInterval(function () {
' f! @' j% w6 H4 m waitForKeyElements(selectorTxt,0 Z3 M8 v1 b- }9 R8 s+ J& t(欢迎访问老王论坛:laowang.vip)
actionFunction,! i5 @ ^5 [- J) q(欢迎访问老王论坛:laowang.vip)
bWaitOnce,8 T D8 C" {! V+ @$ L) B5 d9 T8 u(欢迎访问老王论坛:laowang.vip)
iframeSelector7 e; ^+ {. a( _1 L+ p1 |/ Q- d) e1 |(欢迎访问老王论坛:laowang.vip)
);
2 X" _" `' m1 N. p% z },6 F9 Z4 p- E) i( R9 {, z4 F$ b(欢迎访问老王论坛:laowang.vip)
3001 w x$ E1 J* h(欢迎访问老王论坛:laowang.vip)
);; y5 \" J5 O0 n, m+ X2 X(欢迎访问老王论坛:laowang.vip)
controlObj[controlKey] = timeControl;
" W. e& K. O' e. b9 M" Y }% o$ | V$ m4 I* z(欢迎访问老王论坛:laowang.vip)
}
. E" A1 ]2 {, p4 w; Y! ]& [ waitForKeyElements.controlObj = controlObj;9 Z, [' ~! k/ X9 K% d(欢迎访问老王论坛:laowang.vip)
}
. h& w' O# }% ]8 L5 R Z& n7 G( K8 {2 ~' b; X(欢迎访问老王论坛:laowang.vip)
4 Y8 n, p% ?2 A$ R* @) I. t
% r6 k5 s: m+ I5 O8 W1 ?(function () { G* e3 [ j8 F* V(欢迎访问老王论坛:laowang.vip)
'use strict';9 h$ e( i. w5 o* j(欢迎访问老王论坛:laowang.vip)
0 s" J5 \; F5 D) p! G //版本信息
, g$ [* B- l; m$ M& k, [- i const TIPS = {
, L8 i- B9 K0 c7 l& Y CurrentVersion: "143.2022.0402.1",6 |3 |' N& \2 h' r* K(欢迎访问老王论坛:laowang.vip)
LastUpdateDate: "2022.04.02",
# ~% t: Z! C6 \6 J+ K' N VersionTips: "115转存助手ui优化版 v3.5",; v7 P9 k9 C. F6 M) v(欢迎访问老王论坛:laowang.vip)
UpdateUrl: "https://gist.github.com/Nerver4Ever/953447c9ecd330ffc0861d4cbb839369",& F$ k1 p- f7 }2 O6 u6 ^# K7 N$ g(欢迎访问老王论坛:laowang.vip)
Sha1FileInputDetails: "",0 _! l" m1 C! I4 ?+ H! ?(欢迎访问老王论坛:laowang.vip)
};9 f/ c; ?( Y3 A; T4 ]* a(欢迎访问老王论坛:laowang.vip)
* b2 p$ u* o9 ^: {8 B: w% U, D(欢迎访问老王论坛:laowang.vip)
const WORKSETTINGS = {
6 Q3 c% B. T" w% ^1 U5 V WorkingItemsNumber: 4, //同时执行任务数3 ?7 G8 o9 X9 w1 [2 ]7 e(欢迎访问老王论坛:laowang.vip)
SleepLittleTime: 500, //短暂休眠,毫秒,暂时在转存中使用
4 G3 f8 S2 Q0 Q u- o SleepMoreTime: 1000, //长时休眠,毫秒,暂时在提取中使用
: h: @1 `; ^8 \. }' m. Q% z SleepMuchMoreTime: 8000, //超长休眠,暂时未使用
9 u% N7 e% d' s ANumber: 27, //随机数,暂时未使用
( I( F4 a6 u$ d1 o7 n2 x: a };
$ f& d7 ]7 \6 g1 b1 r! k: {
$ ^5 F' w8 w- ?) K0 L GM_addStyle(`
9 o3 x9 |+ j% M4 u @keyframes hue {$ R8 m f: ]& F1 E7 @* ](欢迎访问老王论坛:laowang.vip)
from {' Q' t: o8 `3 S- s+ J5 W(欢迎访问老王论坛:laowang.vip)
filter: hue-rotate(0);. B" c$ Z" Y3 H2 ?/ j8 @& [& B8 @(欢迎访问老王论坛:laowang.vip)
}* J: G( W$ U2 Y9 @; y# \* ~(欢迎访问老王论坛:laowang.vip)
8 a# H# i$ V1 c(欢迎访问老王论坛:laowang.vip)
to {
. D) m( z! J- K4 Q, K0 j+ z filter: hue-rotate(360deg);
0 E- `9 s8 b, I% a$ }2 ? }1 I# }- |9 V# j3 v(欢迎访问老王论坛:laowang.vip)
}" u3 H1 w: ~7 [( S+ f K(欢迎访问老王论坛:laowang.vip)
4 B8 F5 g: D8 `. x+ c6 t3 J9 `(欢迎访问老王论坛:laowang.vip)
.rainbow-text {0 ~7 ? o9 c6 r6 u4 H+ U8 i' x(欢迎访问老王论坛:laowang.vip)
display: inline-block;3 m( ^2 T- [6 Z( ~( U" c: S9 ?(欢迎访问老王论坛:laowang.vip)
color: red;+ X1 h* R7 j7 `(欢迎访问老王论坛:laowang.vip)
animation: hue 6s linear infinite;
. {- d- p3 B. @. T( K9 U background-image: linear-gradient(to right bottom, rgb(255,0,0), rgb(255,255,0),rgb(255,0,255));. F( l6 H: D8 h, E(欢迎访问老王论坛:laowang.vip)
-webkit-background-clip: text;# z' V( v% i. E4 u( F(欢迎访问老王论坛:laowang.vip)
}
- ^; |, m$ p9 `0 b0 _. E
% Y0 P' K7 o7 y5 e7 N& N# I .my115Info{8 L7 f* T4 ~" l7 c y(欢迎访问老王论坛:laowang.vip)
color:red
# b0 U: g( s7 L4 p }
) c& @, ?8 r, j .btnInGrid{
4 T/ B \- G( t4 n7 D height:20px;& R6 h2 `+ |6 c(欢迎访问老王论坛:laowang.vip)
width:20px;
" D" Y% `$ E2 z8 o6 L" P1 ^, r margin-left:-22px;+ X; E' r5 i3 ]3 l% T, R$ z4 E8 w1 e(欢迎访问老王论坛:laowang.vip)
margin-top:36px;4 O* W. R6 z- v% U(欢迎访问老王论坛:laowang.vip)
border:0px;) Z- q7 g# C* a1 O(欢迎访问老王论坛:laowang.vip)
border-color:transparent;) W: J4 Q$ o% o. X2 F- r(欢迎访问老王论坛:laowang.vip)
background-color:transparent;- L8 b" S9 E, O+ _+ o5 A& n(欢迎访问老王论坛:laowang.vip)
}( T6 s' c/ v, n/ S$ v! j(欢迎访问老王论坛:laowang.vip)
: L8 ?8 M* j# }, l2 n .btnInGrid i{
$ x* ?" q2 G1 G: b: y g+ I margin:3px -3px
& r8 b/ [! c( F }' N) ]5 M" f+ C( |(欢迎访问老王论坛:laowang.vip)
' j. f+ z9 O' J' l/ U4 A(欢迎访问老王论坛:laowang.vip)
li:hover .btnInGrid{
8 t6 v, g$ J! c% H; T# w4 o background-color:#2777F8 !important
) |4 k! M g( p+ I/ p3 @ }6 E: J' U4 V+ ~) H) ~9 v6 S(欢迎访问老王论坛:laowang.vip)
! F( `+ Z) \% C3 C(欢迎访问老王论坛:laowang.vip)
/ G$ G0 X' H6 Y* a/ z& J" e$ g! _+ X! {% v9 A+ r# _(欢迎访问老王论坛:laowang.vip)
/* Style The Dropdown Button */3 ~$ {4 U/ g0 \4 `. \+ q(欢迎访问老王论坛:laowang.vip)
.my115Dropbtn {
' p/ ?. {3 Z8 B+ a7 u( P background-color: #2777F8;
+ Z! P& R4 g% I. h8 Q8 D1 {& I J color: white;/ I% A k* q1 P+ D1 u, b; |' C1 l# ~(欢迎访问老王论坛:laowang.vip)
font-size: 16px;9 R' D+ x+ n, h, s# G3 L; x(欢迎访问老王论坛:laowang.vip)
border: none;
B3 o- h/ i8 T* z: C$ [ cursor: pointer;9 K* x# N5 a9 ^; ^* g5 L2 t- Z) l1 f(欢迎访问老王论坛:laowang.vip)
}# K9 a+ t% j6 `(欢迎访问老王论坛:laowang.vip)
# X a9 q* Q( K(欢迎访问老王论坛:laowang.vip)
/* The container <div> - needed to position the dropdown content */+ J8 T7 t. A# S4 q. R3 s(欢迎访问老王论坛:laowang.vip)
.my115Dropdown {
$ j) Z5 v2 ?2 U! T, C" ? position: relative;0 Q! i( G [8 \(欢迎访问老王论坛:laowang.vip)
display: inline-block;4 U/ c% m7 Z7 ]5 d4 P(欢迎访问老王论坛:laowang.vip)
}
. }" q+ b @2 Y6 E% J5 ]& M9 l6 S
# v$ o; B$ _1 z6 m' Y2 }$ U3 a9 S* S; W /* Dropdown Content (Hidden by Default) */
) v# z! W( x/ C! [7 A% C' F8 N .my115Dropdown-content {
7 ~! y, S4 `& ?: g6 U# P) |1 s display: none;3 c8 M1 @5 }+ r2 _, [(欢迎访问老王论坛:laowang.vip)
position: absolute;8 w- U: Y2 d5 M/ j& B9 }(欢迎访问老王论坛:laowang.vip)
background-color: #f9f9f9;- B( M$ X; L. j+ k u+ L& t% w. s(欢迎访问老王论坛:laowang.vip)
min-width: 230px;
: J6 i' Q$ k9 \% f" @0 R box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);, n3 ?! l3 ?0 x9 \: ^7 O, i(欢迎访问老王论坛:laowang.vip)
z-index: 1;. q" l/ _0 Q) y9 t(欢迎访问老王论坛:laowang.vip)
margin-top: 32px;
6 D( V/ R5 P# C) ^8 d# ? }
0 @/ o0 Y; H) D. y* B R4 I. i. V4 L; d! z- M(欢迎访问老王论坛:laowang.vip)
/* Links inside the dropdown */
2 A/ R4 ~3 _) l/ A .my115Dropdown-content a {5 K9 r# a, a/ y- L; h(欢迎访问老王论坛:laowang.vip)
color: black;
0 Y% S" E4 E# a' J padding: 12px 16px;9 i4 a1 ~6 }0 l) g8 Q7 x0 D(欢迎访问老王论坛:laowang.vip)
text-decoration: none;
) Z7 N8 ?; D& |5 E" r, Q+ b3 d display: block;
" {% `0 C1 G% C! M, | cursor: pointer;
( }1 V7 r. ~: j margin:4px;
" j- `' y E' g% P9 ]" T" t }0 S) U: v$ t2 S g( y(欢迎访问老王论坛:laowang.vip)
: H" |2 s1 k% ~' \ \8 v& T! d4 M' d /* Change color of dropdown links on hover */
% s; R7 E6 }$ C/ p( a# Y0 d .my115Dropdown-content a:hover{* N$ m( I1 x/ X( M. l(欢迎访问老王论坛:laowang.vip)
background-color: #2777F8;
# s+ c; i3 }- x5 S8 n color:white;
( s; B, }2 q, `: |+ S6 o" n }
& h0 L9 c5 J1 w5 `
: i/ g ]* O1 X /* Show the dropdown menu on hover */4 z6 y) Y k) i8 [0 N f(欢迎访问老王论坛:laowang.vip)
.my115Dropdown:hover .my115Dropdown-content {) m+ X R: \( p; }. f8 C; k' o(欢迎访问老王论坛:laowang.vip)
display: block;
! Y9 N" n* V8 h. `. w }; m& _2 ~, b: \/ f3 o0 |1 p" N(欢迎访问老王论坛:laowang.vip)
% M4 G2 o! m, d- | /* Change the background color of the dropdown button when the dropdown content is shown */
Y" x; n+ E) F .my115Dropdown:hover .my115Dropbtn {
+ n5 x5 X$ O% H background-color: #3e8e41;8 K; ^# [6 I# [! r% A- ~(欢迎访问老王论坛:laowang.vip)
}, |, H1 {8 _- p! o* c1 D(欢迎访问老王论坛:laowang.vip)
6 y6 H C) r: r7 J% [ `);* f) k y; R) @ t& z(欢迎访问老王论坛:laowang.vip)
! K, _7 Q. k9 h function getEnviromentInfo() {
4 ]9 v" o% v ^1 x$ C z) e8 y, N" n return `
$ v/ m( e3 }2 c0 m: W [gm]:${GM_info.scriptHandler}. E+ w L/ v* }, Y3 E(欢迎访问老王论坛:laowang.vip)
[gmVersion]:${GM_info.version}: Z& V: E; R7 D2 B% r(欢迎访问老王论坛:laowang.vip)
[ua]:${navigator.userAgent}6 j5 p9 i7 _) d6 n(欢迎访问老王论坛:laowang.vip)
[version]:${TIPS.CurrentVersion}
7 ~ }8 b: _$ Z1 T& T `;3 }/ V% a. m4 g3 K(欢迎访问老王论坛:laowang.vip)
}+ \' j0 S. O' ](欢迎访问老王论坛:laowang.vip)
# H% p w# [! j! H; K$ y function config() {# l7 t9 W4 D6 E9 L(欢迎访问老王论坛:laowang.vip)
console.log("脚本与环境信息:(如果报bug,请附带上如下信息)")
/ i& G# N6 k1 _* L4 a' {6 j' u let env = getEnviromentInfo();. I9 J S& s7 b4 Y(欢迎访问老王论坛:laowang.vip)
console.log(env);3 k% j* I) d; q(欢迎访问老王论坛:laowang.vip)
9 l/ M5 d9 X2 `( ]5 g- J+ E9 l, |3 a* t8 V(欢迎访问老王论坛:laowang.vip)
0 A+ E7 x5 V$ z* }- B% ?0 J(欢迎访问老王论坛:laowang.vip)
var windowCss = '#Cfg4ne .nav-tabs {margin: 20 2} #Cfg4ne .config_var textarea{width: 310px; height: 50px;} #Cfg4ne .inline {padding-bottom:0px;} #Cfg4ne .config_header a:hover {color:#1e90ff;} #Cfg4ne .config_var {margin-left: 6%;margin-right: 6%;} #Cfg4ne input[type="checkbox"] {margin: 3px 3px 3px 0px;} #Cfg4ne input[type="text"] {width: 60px;} #Cfg4ne {background-color: lightgray;} #Cfg4ne .reset_holder {float: left; position: relative; bottom: -1em;} #Cfg4ne .saveclose_buttons {margin: .7em;} #Cfg4ne .section_desc {font-size: 10pt;}';8 I: Z; j* H. V5 S V(欢迎访问老王论坛:laowang.vip)
- C4 ~$ [" `) F' }, E% |9 }(欢迎访问老王论坛:laowang.vip)
GM_registerMenuCommand('设置', opencfg);
$ y3 t5 g, j% j* j) i: ?6 z. A( _+ ?. j, y# t(欢迎访问老王论坛:laowang.vip)
function opencfg() {$ C4 V, j( D% b6 ]5 u(欢迎访问老王论坛:laowang.vip)
GM_config.open();- _0 k h5 y. _& ?7 B" [: v2 }(欢迎访问老王论坛:laowang.vip)
};8 G8 d' v' p7 q* Y( c! P(欢迎访问老王论坛:laowang.vip)
8 G4 d4 b. o- `" h; q. ^(欢迎访问老王论坛:laowang.vip)
GM_config.init({
. u& }) ^/ [0 k- [) J id: 'Cfg4ne',
5 E) v/ B9 b+ V, K title: GM_config.create('a', {
, J' Z2 l! L6 F! H href: TIPS.UpdateUrl,, L) e2 b- e! {( S+ h ?4 N(欢迎访问老王论坛:laowang.vip)
target: '_blank',, T$ x& f/ d; z$ P3 s3 B(欢迎访问老王论坛:laowang.vip)
className: 'setTitle',; }5 {5 t' Z0 I& V: m(欢迎访问老王论坛:laowang.vip)
textContent: `${TIPS.VersionTips}设置`,
1 P$ h) ?0 [: |! }; |' ~ title: `作者:Never4Ever 版本:${TIPS.CurrentVersion}点击访问主页`# E% {7 a6 X) G, R0 ?3 C$ H(欢迎访问老王论坛:laowang.vip)
}),
& n/ z7 ?4 T. [, s+ Q$ Q0 m isTabs: true,
% m2 z" q- x, ?2 d4 O8 h skin: 'tab',& _- d: n9 U+ X( ?(欢迎访问老王论坛:laowang.vip)
css: windowCss,
0 o3 J( _% X5 V5 O' j, l* g frameStyle: {
8 U: S: v0 u2 e3 @ height: '490px',! w r0 u- V0 C$ w( ~( x(欢迎访问老王论坛:laowang.vip)
width: '750px',. p# {8 J1 z' u3 F" S/ ^0 Z(欢迎访问老王论坛:laowang.vip)
zIndex: '2147483648',
- W7 V/ D6 i) ^2 [! p6 `4 T* R },
- d+ B4 s8 Z5 T1 ] fields: {
* K0 ^: l$ B" U: n/ T# p+ K# H createRootFolderDefaultValue: {$ z. \0 G- {" V2 E; \(欢迎访问老王论坛:laowang.vip)
section: ['', '转存助手一些功能设置,发包参数暂未开放,敬请期待!'],
5 D, v- Y" X9 n8 Z9 o+ o label: '“sha1转存时,强制在保存处新建根目录”这项默认选中',
8 M1 n. K$ W/ c" B( j2 I labelPos: 'right',& \" D p# Y' f(欢迎访问老王论坛:laowang.vip)
type: 'checkbox',
& Q. @. o. s5 U: Y! p; v5 c default: true,' R# v5 O' [, \( Z0 i/ d8 g% a(欢迎访问老王论坛:laowang.vip)
},& `+ R# ], C; j7 F6 t# r8 _(欢迎访问老王论坛:laowang.vip)
+ C# s: q% }: w3 H% U) p createChildFolderVisible: {
9 A7 \; \: r" q label: '显示“sha1转存时,不创建任何子目录”选项;不显示则强制创建子目录',* f+ ], u+ R- k, U(欢迎访问老王论坛:laowang.vip)
labelPos: 'right',
* H$ b9 A/ G/ q( M3 j3 g type: 'checkbox',
* \8 Q( d6 g# q default: false,* k- w: u, r7 r# g! ~5 E(欢迎访问老王论坛:laowang.vip)
},
6 Q/ t* O+ i% Q0 }' z" y e createItemSha1: {( d0 [$ P) l$ P5 C* R; ?/ t+ s(欢迎访问老王论坛:laowang.vip)
label: '列表模式下:悬浮条显示”获取sha1链接“',
" e% `, J. E$ V: n labelPos: 'right',
4 V' q2 W8 a$ G& ? ~ type: 'checkbox',
9 T, V- R8 f0 j" K6 i default: true,+ Q" J3 I+ P7 G1 r(欢迎访问老王论坛:laowang.vip)
}, k4 C: Q& \. U) \9 K0 f(欢迎访问老王论坛:laowang.vip)
createItemSha1InThumb: {9 z% P7 d; s, S# x c(欢迎访问老王论坛:laowang.vip)
label: '缩略图模式下:显示”获取sha1链接“',
% q; t4 R1 |; y* J& r$ Z labelPos: 'right',
. n3 J" n) `( g+ k/ W9 { type: 'checkbox',! v. C& y: I, Q" n; ^(欢迎访问老王论坛:laowang.vip)
default: true,
9 N K3 x! A- { },+ f" M5 z# D/ ~+ s3 z(欢迎访问老王论坛:laowang.vip)
advancedRename: {0 W9 q" }$ ^+ f* U4 @(欢迎访问老王论坛:laowang.vip)
label: '在目录的悬浮工具条处显示“去除分隔符”选项',% A o* {9 P3 z(欢迎访问老王论坛:laowang.vip)
labelPos: 'right',4 u$ d1 L, _. w6 _. y(欢迎访问老王论坛:laowang.vip)
type: 'checkbox',
+ O, A5 M4 t0 ~6 y1 s# @* y' k/ A* ^ default: false,
7 n, m2 c6 M% W" i- w& E2 j" Y },% ?9 N! y* y l+ W2 O9 w8 _; z, B(欢迎访问老王论坛:laowang.vip)
autoUseSeparator: {% Y; z! |, ?. _- Q9 B! I! z( p' |(欢迎访问老王论坛:laowang.vip)
label: '自动给文件名添加分隔符进行上传,以防文件名违规',6 ~1 e' {- U- O- m9 y(欢迎访问老王论坛:laowang.vip)
labelPos: 'right',
" R# _0 A% R9 G type: 'checkbox',8 H9 y. Z: X" ]3 d# l! m& _(欢迎访问老王论坛:laowang.vip)
default: true,
; D& S4 l: z c2 h9 Z },
& O" |4 Q j5 Y2 z" ~) P autoUseSeparatorToRename: {
2 B+ R$ g8 z# }0 Q( S6 J label: '上传结束,自动给文件名去除分隔符,还原原文件名',' t" |, R. m% _8 \+ m(欢迎访问老王论坛:laowang.vip)
labelPos: 'right',+ M4 V! }: ~# X% J(欢迎访问老王论坛:laowang.vip)
type: 'checkbox',! b# p; C- i/ P1 A(欢迎访问老王论坛:laowang.vip)
default: true,
6 G1 d0 d9 [" Y+ t8 d) s },
. Z5 V; C, C" o3 w% ^7 b separator: {8 [: u/ b- x% L: H4 {$ R& x3 E(欢迎访问老王论坛:laowang.vip)
label: '分隔符方案(推荐生僻字;如果分隔符失效,请自行修改):',
/ f( z. u2 v% v9 y type: 'text',
! x4 w7 c+ a; l default: '變'
8 G# }/ r6 t2 w. d3 v0 h },7 V2 ^& w3 R w6 u+ i- r( D(欢迎访问老王论坛:laowang.vip)
uploadNumber: {
3 Z' Y5 k* f6 o$ A //section: ['时间参数设置', '注意:参数设置过快,会引起115服务器无响应,为稳定运行参数未启用!'],
; [! m% v9 |' k# v' y* }7 S8 B //label: '转存同时工作任务数:',. w0 y" M3 @* s9 {7 M0 Y(欢迎访问老王论坛:laowang.vip)
labelPos: 'left',( i! ~4 r6 b/ h6 m, g- S(欢迎访问老王论坛:laowang.vip)
type: 'hidden',
' w+ t0 _& k7 I) M. y( n+ r- _ default: '4',
( k4 v- c" A" Z9 K },& b& Y4 c2 a+ x(欢迎访问老王论坛:laowang.vip)
uploadSleepTime: {
9 ]% K4 V D5 P, \' \: Y' k //label: '转存间隔时间(毫秒):',; }- k! W" P' [; x8 {: B8 ?+ a(欢迎访问老王论坛:laowang.vip)
labelPos: 'left',
# V& h+ d( m& W6 c type: 'hidden',0 O1 B6 g* G+ s4 k(欢迎访问老王论坛:laowang.vip)
default: '500',
% n! Y5 x- e2 V. F. i; M },
5 y8 G" G: `5 k3 W downloadNumber: { N( \. S7 z2 ` T! p$ u( z7 {(欢迎访问老王论坛:laowang.vip)
//label: '提取同时工作任务数:',/ g1 D6 G0 c9 A7 x(欢迎访问老王论坛:laowang.vip)
labelPos: 'left',
- Z t+ K( e u3 Q3 x$ m5 [8 j* v type: 'hidden',% {* l& S8 p1 d- h& f, B, ](欢迎访问老王论坛:laowang.vip)
default: '4',
+ S1 e. h* I" |* T. x },/ E/ d1 u8 N1 W2 A/ G b(欢迎访问老王论坛:laowang.vip)
downloadSleepTime: {) J* B7 G: Z: v- T6 C( s(欢迎访问老王论坛:laowang.vip)
//label: '提取间隔时间(毫秒):',
+ w [0 [0 y, ~" v, G. \' G# E$ L4 T labelPos: 'left',& k V2 r5 ?- K3 g4 C9 r(欢迎访问老王论坛:laowang.vip)
type: 'hidden',/ S& M. Z& K8 n, Y# \0 S(欢迎访问老王论坛:laowang.vip)
default: '1300',8 b5 t- J' | `2 w' @(欢迎访问老王论坛:laowang.vip)
},
& q' |7 o" F$ L+ p createFolderSleepTime: {7 O5 O3 l0 l& {3 w( g(欢迎访问老王论坛:laowang.vip)
//label: '目录创建间隔时间(毫秒):',
9 K+ W2 K3 L. u labelPos: 'left',% o% h" v8 J% q) ], a, [3 e- C(欢迎访问老王论坛:laowang.vip)
type: 'hidden',
) p* |+ X$ q9 F7 g1 V( K default: '300',
/ x, U; t# O m4 @/ U/ B9 F9 p# ?1 J G },
) Z1 P) P' u# l checkUpdate: {. M) T& ]# a9 H% M(欢迎访问老王论坛:laowang.vip)
//section: ['帮助&更新&反馈', '常见错误以及对本脚本进行更新检查与bug反馈'],% M! {5 B3 A7 p* V* z( v(欢迎访问老王论坛:laowang.vip)
label: '前往github主页',$ T: p4 Q0 D' c, h. L(欢迎访问老王论坛:laowang.vip)
labelPos: 'right',
- {/ `% s M% F type: 'button',
8 M4 [+ n* V( k( v! P click: function () {% Z, B% |5 ~1 Z& ^& w- C(欢迎访问老王论坛:laowang.vip)
window.open(TIPS.UpdateUrl, "_blank");: q3 |% b) n7 w+ U2 n. C" f(欢迎访问老王论坛:laowang.vip)
}& w- }* g$ U/ W4 E6 R P9 s2 P(欢迎访问老王论坛:laowang.vip)
},) s8 z: L3 [9 r! R3 B, d(欢迎访问老王论坛:laowang.vip)
; H0 [, v( Y9 p$ \1 U! H0 M* z% \$ B- s: Y1 m7 F1 `% ~& X(欢迎访问老王论坛:laowang.vip)
},
& m, b3 V7 c- M2 A
: m0 m5 w2 g, i. p( c. K3 r events: {
1 i9 |& v: n! r$ G, c3 z save: function () {- f0 Z6 e; g' G$ t* ?(欢迎访问老王论坛:laowang.vip)
GM_config.close();+ b+ o. T5 z8 K% z& S: e3 o(欢迎访问老王论坛:laowang.vip)
location.reload();
( Q2 y% J6 q1 o7 s } t0 d; e: Q7 D: d(欢迎访问老王论坛:laowang.vip)
},, t* d& o5 _( P5 e' o8 Z- s(欢迎访问老王论坛:laowang.vip)
});9 V, }3 m' d x" D$ N- s(欢迎访问老王论坛:laowang.vip)
) n# Y& r+ `$ u0 {+ _(欢迎访问老王论坛:laowang.vip)
GM_registerMenuCommand('脚本与环境信息', jsInfo);
. ?" z- y& k2 w* D7 A5 M' B: N- v( G* |7 `9 `3 {, K+ O(欢迎访问老王论坛:laowang.vip)
function jsInfo() {
! \' d6 m0 C0 O! O! H) C postSha1Messgae(createMessage(MessageType.JSINFO, env))' W n* C) u/ B2 I6 o2 }- o! m( _+ _2 O(欢迎访问老王论坛:laowang.vip)
}
, E' S0 n# A- [3 q9 C8 X };
; b+ I+ C5 U/ q4 w) Q) N5 @1 ? config();5 ~, n. o+ j' {% T' Y4 E: c(欢迎访问老王论坛:laowang.vip)
4 v5 f( r. M4 |2 X6 X9 m* r+ t var currentConfig = {
1 i/ f5 j2 c9 f2 q& r: Q G createRootFolderDefaultValue: 'createRootFolderDefaultValue',
6 B0 h" P/ Q, O1 J* F @& K createChildFolderVisible: 'createChildFolderVisible',' @2 J# t$ ^$ A1 G: {' ](欢迎访问老王论坛:laowang.vip)
advancedRename: 'advancedRename',
3 u6 l- R# ]! v. t9 ^! r# y" Y autoUseSeparator: 'autoUseSeparator',& ~) L2 A+ f6 j6 T; H+ _2 _(欢迎访问老王论坛:laowang.vip)
autoUseSeparatorToRename: 'autoUseSeparatorToRename',
& H l/ i& c5 p( v& b4 l separator: 'separator',& y( U( ]5 H$ f7 Y+ `3 p(欢迎访问老王论坛:laowang.vip)
uploadNumber: 'uploadNumber',
! J5 i: }* D- k% L/ u& ` uploadSleepTime: 'uploadSleepTime',
+ Z/ F; c- ] V6 k+ O downloadNumber: 'downloadNumber',
7 F. [1 i. `* L6 _& j% j/ }4 T G6 x downloadSleepTime: 'downloadSleepTime',
% j4 l+ H4 D8 v createFolderSleepTime: 'createFolderSleepTime',
$ D0 J8 p. P/ Z& _( c# u/ e createItemSha1: 'createItemSha1',$ l( t/ {9 b& T" N/ I9 |8 Y(欢迎访问老王论坛:laowang.vip)
createItemSha1InThumb: 'createItemSha1InThumb'
# ~8 t% r9 E4 @$ @% V3 n0 w$ ^5 z. e* u2 g, A7 s; C(欢迎访问老王论坛:laowang.vip)
}
) b, Z2 z) Y1 L8 J/ N! J8 P; m) T$ R1 d' K(欢迎访问老王论坛:laowang.vip)
3 U& \: m! u8 L8 b(欢迎访问老王论坛:laowang.vip)
var offlineTaskButton = `/ @9 B1 p" ~" w; K4 w# z0 C E(欢迎访问老王论坛:laowang.vip)
<div class="my115Dropdown" id="my115Dropdown">' M' ^9 z. f( ~3 p% u(欢迎访问老王论坛:laowang.vip)
<div class="my115Dropbtn">% s; b- i1 `) z. k(欢迎访问老王论坛:laowang.vip)
<a href="javascript:;" class="button btn-line btn-upload" menu="offline_task"><i class="icon-operate ifo-linktask"></i><span>链接与sha1转存任务</span><em style="display:none;" class="num-dot"></em></a># w i+ R* M5 i) y% v(欢迎访问老王论坛:laowang.vip)
</div>1 [) A6 j& u- d; @6 R0 J(欢迎访问老王论坛:laowang.vip)
<div class="my115Dropdown-content" style="display:none;">$ S& _; k) N5 R! P( f( \(欢迎访问老王论坛:laowang.vip)
<a id="my115ContinuedDownload"> 继续【提取】或者【转存】</a>; h9 G. |' e, [( u1 a1 c(欢迎访问老王论坛:laowang.vip)
</div>
1 i: J) [. m. Q7 m. t </div>
3 V. j; e- |% X- R S `;2 q& }3 Y- O* o9 n- e- U(欢迎访问老王论坛:laowang.vip)
' P& N S$ _$ K& j( l6 d5 T(欢迎访问老王论坛:laowang.vip)
if (!$("#my115Dropdown").length > 0) {
0 |& C( U! @4 f L( ~; J
3 x4 q. d9 }; b# l2 @ $(".left-tvf").eq(0).append(offlineTaskButton);
6 z& z/ ?8 J# \/ C9 E $("#my115ContinuedDownload").click(e => {" X6 a* j5 y+ K4 T! O(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.BEGIN4CONTINUETASK, "")); ]$ a' c. N7 j2 {(欢迎访问老王论坛:laowang.vip)
});* h7 j- d3 Y* s; Z% n9 n(欢迎访问老王论坛:laowang.vip)
}* N( K* d& @3 E g/ O: V! ]' ](欢迎访问老王论坛:laowang.vip)
7 Q _4 O# _4 g: i(欢迎访问老王论坛:laowang.vip)
9 n, b) E- _) T(欢迎访问老王论坛:laowang.vip)
window.cookie = document.cookie- G* `/ x/ B/ O6 D" @: ~5 e1 O, y(欢迎访问老王论坛:laowang.vip)
; \9 \; T! _. _% ]7 B(欢迎访问老王论坛:laowang.vip)
- r( L( }% i8 s. }6 W! _ //todo:添加的功能入口- i% u* j7 m! g/ R(欢迎访问老王论坛:laowang.vip)
//列表模式下,项目悬工具条% i% c8 J( m1 s1 a(欢迎访问老王论坛:laowang.vip)
waitForKeyElements("div.file-opr", AddShareSHA1Btn);; C4 j" q8 O# j+ n q; x(欢迎访问老王论坛:laowang.vip)
//添加任务的弹窗, R0 a2 g' j6 [ q) A G(欢迎访问老王论坛:laowang.vip)
waitForKeyElements("div.dialog-bottom", AddDownloadSha1Btn);0 I R: K' m- p$ ~0 ]5 `: R, K(欢迎访问老王论坛:laowang.vip)
//搜索下的状态
1 n. X4 m; X8 K6 J* [( `0 {* \6 l, A+ a waitForKeyElements("div.lstc-search", AddShareButtonForSearchItem);
) B: c# ], f2 ^. a- o //缩略图模式下4 o+ p$ f9 g% [4 {# X+ T1 e1 y(欢迎访问老王论坛:laowang.vip)
waitForKeyElements(`#js_cantain_box .list-thumb li[rel="item"]`, AddCeateSha1ButtonInGrid)
/ E8 W( S; B: L& s //文件路径旁边的”选中获取项sha1“
! O# }: C+ W9 J1 X& E waitForKeyElements('div#js_top_header_file_path_box', CreateSha1ButtonForSelectedItems);3 K. B6 ^2 N! o B(欢迎访问老王论坛:laowang.vip)
//隐藏截图中的uid0 k7 n1 R# Q8 g/ P(欢迎访问老王论坛:laowang.vip)
waitForKeyElements('div[class^="fp-"]', HandleUidDiv);
5 N5 J; k( F" r; T: X6 A4 o; |' `2 @5 E( c/ q" `+ u- Q9 N(欢迎访问老王论坛:laowang.vip)
function HandleUidDiv(node) {; C7 f- b* x( q! L7 @( Y(欢迎访问老王论坛:laowang.vip)
node.hide();
7 {: I3 c0 X" j/ a; h console.log("set uiddiv");
# \8 _: S! W7 k$ a( ]% ?7 Q. } }# \2 s7 u0 Y4 `) x. _4 C! K4 c(欢迎访问老王论坛:laowang.vip)
8 O! m$ A. T, u" v2 M(欢迎访问老王论坛:laowang.vip)
//#region 20201230新的提取api相关
0 _+ N8 o0 d# F8 i0 e2 _1 Q" d& e
0 x7 D8 e: ~ N w2 o$ e9 J
* I) R) ^: f! k, y% U
4 x" F/ f1 ]) w D+ Z f, b& s! n- j: e8 u6 u3 j! M; ?5 Q(欢迎访问老王论坛:laowang.vip)
( q, R1 V* y- C% M$ L# V(欢迎访问老王论坛:laowang.vip)
function PostData(dict) {$ w9 N/ _1 y% F+ j3 i; r(欢迎访问老王论坛:laowang.vip)
var k, tmp, v;$ R0 U# g# }: I/ z2 ^, N0 i(欢迎访问老王论坛:laowang.vip)
tmp = [];
% q& H R9 ^6 C9 Z- A for (k in dict) {" ^3 P& W. z; G e3 [(欢迎访问老王论坛:laowang.vip)
v = dict[k];
! G# F) k1 E/ o U/ C, b n tmp.push(k + "=" + v);
) |4 X& @8 m1 D5 ~7 H$ a }5 Z8 {5 y: [2 y8 w& f* p; N3 t(欢迎访问老王论坛:laowang.vip)
return tmp.join('&');6 Z5 o! c* z- }0 V) H% I* s/ g6 Q(欢迎访问老王论坛:laowang.vip)
};
" F0 C5 q% ]7 @8 p+ l& Y+ a, S5 a6 F1 A(欢迎访问老王论坛:laowang.vip)
function UrlData(dict) {$ ~% [* p5 T! C(欢迎访问老王论坛:laowang.vip)
var k, tmp, v;
a) Q; {6 W, h. b- @% S tmp = [];
0 W: ~$ X1 f# g& X8 h for (k in dict) {
8 C" m K2 T( Z2 o( {! X v = dict[k];
; ~- G: U+ p' c# J$ E( J0 b- ? tmp.push((encodeURIComponent(k)) + "=" + (encodeURIComponent(v)));
6 U+ B$ t6 y9 R" O" W }% |+ F! p+ j4 y i+ P3 @3 z(欢迎访问老王论坛:laowang.vip)
return tmp.join('&'); c/ Z3 {! v( \0 {(欢迎访问老王论坛:laowang.vip)
};/ V) {3 v% W' A" U1 M5 W" k0 s(欢迎访问老王论坛:laowang.vip)
1 D7 C; A0 U% h7 f I(欢迎访问老王论坛:laowang.vip)
function GetSig(userid, fileid, target, userkey) {+ z9 _# s" L, O- |(欢迎访问老王论坛:laowang.vip)
var sha1, tmp;
) K+ R `4 l/ { sha1 = new jsSHA('SHA-1', 'TEXT');5 n9 A1 Z* D8 O! I(欢迎访问老王论坛:laowang.vip)
sha1.update("" + userid + fileid + fileid + target + "0");
8 ?9 @1 w9 {" ~* H: d tmp = sha1.getHash('HEX');9 k8 X9 v' l( T) x- G; O8 b(欢迎访问老王论坛:laowang.vip)
sha1 = new jsSHA('SHA-1', 'TEXT');
$ P( p- j8 i8 p$ G0 `8 ` @ sha1.update("" + userkey + tmp + "000000");
5 R; B) F3 X) z& v3 F" ^ return sha1.getHash('HEX', {1 I6 ^# M; I( i/ p a(欢迎访问老王论坛:laowang.vip)
outputUpper: true) @9 h$ n' r: { l! F(欢迎访问老王论坛:laowang.vip)
});
. W+ i5 @6 N. W/ u0 H4 z- t/ w }" H2 f# R. m2 c: F# l# s(欢迎访问老王论坛:laowang.vip)
7 h; ~1 T: a* ]8 J3 |! d(欢迎访问老王论坛:laowang.vip)
/ h4 _4 t) i# l" a5 K- m# _/ ^( w. N
$ L1 t$ ~* ]% g4 ~ function download(filename, content, contentType) {
6 z& h; ^% K4 h: r. v8 [! Z if (!contentType) contentType = 'application/octet-stream';2 X' f2 U T4 j. n6 W$ ^9 z(欢迎访问老王论坛:laowang.vip)
var a = document.createElement('a');5 k! {; V' ~3 \1 T(欢迎访问老王论坛:laowang.vip)
var blob = new Blob([content], {' }. f% Z. D& Q* F9 p(欢迎访问老王论坛:laowang.vip)
'type': contentType5 e7 y5 }$ w6 P8 t+ c* u: A(欢迎访问老王论坛:laowang.vip)
});
. P$ C. }" B2 k# [2 V) h1 L a.href = window.URL.createObjectURL(blob);/ M/ d8 L4 v: T# E+ V; n9 V: r(欢迎访问老王论坛:laowang.vip)
a.download = filename;
! `" ^0 l5 l, \( V F9 F: y$ C5 h% q a.click();
$ s7 ?$ l9 m# E. T }
. m2 e. W- d) P1 y9 d' \ M" N' \' j8 d- }5 O+ `(欢迎访问老王论坛:laowang.vip)
function RenewCookie() {% H5 i5 M% B5 a6 h7 r5 A(欢迎访问老王论坛:laowang.vip)
var arryCookie = window.cookie.split(';');
* x$ @* c% Z9 ?+ X arryCookie.forEach(function (kv) {
/ Z) X9 u) I( u/ |. j document.cookie = kv + ";expires=Thu, 01 Jan 2100 00:00:00 UTC;;domain=.115.com"
: u: y4 `8 w# c' X7 \9 x })
0 Q7 X8 C! S6 |6 q }
" W/ {* ? U# \# l6 m$ ^: S
) n3 h6 P: O. j! J2 e C6 o function DeleteCookie(resp) {
3 P; J6 e: t0 T: r1 |0 K try {" i) B" D( c) ~9 l1 I4 I( y0 c7 U(欢迎访问老王论坛:laowang.vip)
var reg = /set-cookie: .+;/g;
- \3 b* I$ q, D3 [1 A0 M var setcookie = reg.exec(resp)[0].split(';');& z" p( V& @. q `(欢迎访问老王论坛:laowang.vip)
var filecookie = setcookie[0].slice(11) + "; expires=Thu, 01 Jan 1970 00:00:00 UTC;" + setcookie[3] + ";domain=.115.com";
# h; `( L. A1 v9 e: Q document.cookie = filecookie;% |" J; E) s' O7 I+ r% ^(欢迎访问老王论坛:laowang.vip)
RenewCookie()
0 i/ v0 j' R1 e% j, J return filecookie;
" g+ o7 @6 O4 L& N: Q! k0 R } catch (err) {
: T3 ]4 W+ W$ |) E6 h' I return null;( }( |; |/ @/ Q0 ~(欢迎访问老王论坛:laowang.vip)
}' d5 @2 J# o" m* Z(欢迎访问老王论坛:laowang.vip)
}
/ I# k3 W/ z- F/ K$ a. q
$ `& O6 m7 ?0 C
$ R% F& v; Q" e; {( F9 V C0 I. N0 }; [( s8 T1 g- u: V(欢迎访问老王论坛:laowang.vip)
9 J/ m2 ?8 \# K1 ](欢迎访问老王论坛:laowang.vip)
//#endregion$ y. ^ P) m( i( n(欢迎访问老王论坛:laowang.vip)
: {* ^! J1 }0 ^6 v4 e/ D6 E, S function hereDoc(f) {
. q+ `7 b; E2 [- r/ W% | return f.toString().replace(/^[^\/]+\/\*!?\s?/, '').replace(/\*\/[^\/]+$/, '');7 B Y# @; ]; W& f# O$ I& B(欢迎访问老王论坛:laowang.vip)
}( z' Z V c. m7 k3 N; H(欢迎访问老王论坛:laowang.vip)
8 q3 Q7 r' l- @2 @9 Z- N6 w const TaskType = {
6 Y2 c7 Z1 b) N7 U7 u* S DOWNLOAD: 'Download', //提取
7 j3 W, @3 u2 v4 ~ UPLOAD: 'Upload', //转存
4 L" i3 X1 V7 y' M };- _! z |" y3 Q5 X1 I- i: A(欢迎访问老王论坛:laowang.vip)
( t3 N1 E' T0 L' N const MessageType = {
. t" _& X$ i9 L6 z( i3 _0 {3 M0 v BEGIN: 0,; Q9 k! C+ l) o(欢迎访问老王论坛:laowang.vip)
PROCESSING: 1,
1 {2 b6 F, Z8 F END: 2,
G; a1 `6 J: ]4 G& s% I ERROR: 3,; |* f( d6 S7 c- J" q q' l. T(欢迎访问老王论坛:laowang.vip)
CLOSE: 4," E( ^ x/ v/ T$ I(欢迎访问老王论坛:laowang.vip)
CANCEL: 5,( o. X. N0 N. ]1 I$ i5 ?(欢迎访问老王论坛:laowang.vip)
BEGIN4UPLOAD: 6,8 Q" e [% X4 V8 O1 S! V# M(欢迎访问老王论坛:laowang.vip)
END4UPLOAD: 7,1 p, d9 k) H& P0 A2 U, f(欢迎访问老王论坛:laowang.vip)
NOTIFYINFO: 8,9 p3 A! y5 n/ d+ f5 o(欢迎访问老王论坛:laowang.vip)
BEGIN4CONTINUETASK: 9,7 H5 c2 @4 n1 N4 G- \+ u( L(欢迎访问老王论坛:laowang.vip)
SHOWCANCEl: 10,
7 K' p! h; T( O6 h4 S2 Y HIDECANCEL: 11,( d T. l' G# z(欢迎访问老王论坛:laowang.vip)
FILEDOWNLOAD: 12,
) @: W6 N$ q1 \9 o. P MSGERROR: 13,* U8 |5 D( H, z0 H/ i: H; u9 W( G3 h2 m(欢迎访问老王论坛:laowang.vip)
JSINFO: 14,; O( Q" O8 L$ m) O(欢迎访问老王论坛:laowang.vip)
};
" y% l+ } w1 ?4 g7 N
, l, ^7 V1 U( e3 V function createMessage(messageType, msg, id) {
2 E5 ` n3 {- w3 J return {
! w X. Q9 U) W( h& s$ A messageType: messageType,
% o6 X9 u+ M. N" K+ G- @ msg: msg, W; ~6 T* F2 X5 j: s! {4 h(欢迎访问老王论坛:laowang.vip)
targetID: id
* z# h8 h' I8 e- O* v0 | }
$ p0 A w% J# Z& k* J0 P, v }( L% P! [7 ?9 H# L. W. ]3 v(欢迎访问老王论坛:laowang.vip)
0 J) O4 f3 S% T/ k3 F) |( l(欢迎访问老王论坛:laowang.vip)
String.prototype.format = function () {6 a% E T. X; t( o' @( @(欢迎访问老王论坛:laowang.vip)
if (arguments.length == 0) {
; h6 s# `6 a8 O1 ^! |5 M( i& _ return this;
) y' h& ], S* ]- \( E) L# @' @ g }; R; v7 J& [# v" n" C(欢迎访问老王论坛:laowang.vip)
for (var s = this, i = 0; i < arguments.length; i++) { q$ L1 ~$ A7 V: y/ W4 K3 f6 y(欢迎访问老王论坛:laowang.vip)
s = s.replace(new RegExp("\\{" + i + "\\}", "g"), arguments);
4 \" `' }1 B8 K \5 B; o9 L }' ] ~2 c; M) E8 R& }# H1 W(欢迎访问老王论坛:laowang.vip)
return s;) H# J% X7 z) R" D% }) D) Z6 s(欢迎访问老王论坛:laowang.vip)
};
! ^ _- d2 Z* H) M: x, o. \( t X/ C6 s0 ^; n T) g(欢迎访问老王论坛:laowang.vip)
var getTamplateLines = function () {3 U" F1 B6 Y0 w3 o(欢迎访问老王论坛:laowang.vip)
/*2 G6 |% o# l H. V! Y* r(欢迎访问老王论坛:laowang.vip)
<div >$ x/ P. @" f8 f" ]% H: M! a: a) P. d(欢迎访问老王论坛:laowang.vip)
<div class="itemContent" style="color: red;text-align: left;margin: 10px 0;">& J( C) Q r; p5 y" e3 Z# @( e(欢迎访问老王论坛:laowang.vip)
</div>
, U6 u/ `* j. l( ^ d <hr />
' x$ J- j) ]5 [ x, k <div style="height:140px;overflow-x: hidden;overflow-y: auto;">
6 D1 J" w, x7 | <ul class="errorList" style="font-size: small;text-align: left;font-style: italic; "></ul>
8 J7 ^7 {' `5 S, M </div>8 o2 f1 d C8 F(欢迎访问老王论坛:laowang.vip)
</div>7 U. Q5 V! G9 q" `! I5 h- O+ I(欢迎访问老王论坛:laowang.vip)
*/
9 {6 g2 a! M) t8 i. X! }# I; B3 } };1 ~8 m8 `2 }. _7 ^6 q% I(欢迎访问老王论坛:laowang.vip)
0 D' r' t- K+ ^# o7 _9 x# Z5 X(欢迎访问老王论坛:laowang.vip)
, N9 g. o$ k/ {' Z/ {1 R(欢迎访问老王论坛:laowang.vip)
//post from iframe
+ s. N5 u$ z- X% n. e function postSha1Messgae(message) {
. L# v% a: w: X' _# w% H7 Y var postData = {) l! D1 r7 T/ E3 V(欢迎访问老王论坛:laowang.vip)
eventID: "115sha1",
" W. m3 E" M0 d$ ^) x* d" c data: message$ H# K I5 v( F7 T, J) s6 D0 _+ R(欢迎访问老王论坛:laowang.vip)
};# ~' c" T4 m' h9 d(欢迎访问老王论坛:laowang.vip)
6 v% w1 d6 c7 @/ }+ W$ ^ var text = JSON.stringify(postData);
( C: _. [+ N2 J5 v7 F* W0 j window.parent.postMessage(text, "https://115.com/");' P+ U6 |, y, \- r(欢迎访问老王论坛:laowang.vip)
% E, X! L( a$ m j0 m! y- \ }5 T0 Y( v2 [8 a0 c0 ?7 y(欢迎访问老王论坛:laowang.vip)
0 }" i: v* }7 m function setTaskCancel() {
3 A B& ]6 E. G; l' J6 \ GM_setValue("setTaskCancel", true)# ~$ X( r8 f; _(欢迎访问老王论坛:laowang.vip)
}& v/ B8 q0 o" \. l3 b(欢迎访问老王论坛:laowang.vip)
. w: A: ^" L9 a6 p- P- ]2 B9 j(欢迎访问老王论坛:laowang.vip)
function resetTaskCancelFlag() {
* u- D2 U c+ u" u$ ^6 j q" d GM_setValue("setTaskCancel", false)
6 N0 }& R+ u, m3 _+ t+ M4 | }: ^) O% j, W4 a9 \7 V u5 F6 J(欢迎访问老王论坛:laowang.vip)
2 S* v" [" `) u7 k% d2 d function getTaskCancelFlag() {& c8 k$ [" Z; v2 A8 A(欢迎访问老王论坛:laowang.vip)
return GM_getValue("setTaskCancel");+ q) `' r# R" S- I8 t(欢迎访问老王论坛:laowang.vip)
}
6 q+ I, [1 T7 f, R. A9 Y$ W S
0 M% C( Y0 I8 t, C$ x. b7 h const footerString = `<p class="rainbow-text"><span style="color:#2777F8">[${TIPS.CurrentVersion}]</span>: 操作时,<span class="my115Info">确保本页面置顶</span>,防止脚本休眠!!
% d4 q6 {% I" D6 M- N <br><span class="my115Info">无</span>115会员,<span class="my115Info">提取速度</span>受限,<span class="my115Info">转存文件大小</span>不超过5GB!!</p>`;; @: v8 l6 `! t(欢迎访问老王论坛:laowang.vip)
//解决提取时的alert不能全屏的问题1 F0 U! r4 M- W- `+ ]5 j; l4 V(欢迎访问老王论坛:laowang.vip)
if (window.top === window.self) {) m3 p i* J' R. t$ Y+ w5 U(欢迎访问老王论坛:laowang.vip)
$(function () {
& o" L! R7 B: ^- ?1 S. Z) ? var $itemContent = null;& F* k- ?+ ~* v; l5 S7 ]- M(欢迎访问老王论坛:laowang.vip)
var $errorList = null;1 \& j9 _6 t5 o5 D- X/ B(欢迎访问老王论坛:laowang.vip)
var getTamplate = hereDoc(getTamplateLines);# x/ s* P3 n+ v' a(欢迎访问老王论坛:laowang.vip)
) _% ?: V2 L3 F% |(欢迎访问老王论坛:laowang.vip)
$(window).on("message", function (e) {
; c9 j7 k+ O9 Y6 o: }3 Z var dataInfo = typeof e.originalEvent.data == "string" ? JSON.parse(e.originalEvent.data) : e.originalEvent.data;6 J; j3 c( B" {(欢迎访问老王论坛:laowang.vip)
if (dataInfo.eventID != "115sha1" || e.originalEvent.origin != "https://115.com") return;. P p8 H1 H' m* {2 V# c* ^) b(欢迎访问老王论坛:laowang.vip)
var message = typeof dataInfo.data == "string" ? JSON.parse(dataInfo.data) : dataInfo.data;
! o5 v! {; c+ ~8 E* o
, H! E e+ N4 {; P //ui:" b0 R1 b0 W- B/ L3 A1 t7 X* r(欢迎访问老王论坛:laowang.vip)
if (message.messageType == MessageType.BEGIN) {
L& e7 T7 e. Y! Z Swal.fire({
" q- i* X1 a& t/ l' ]( b& H/ F title: '正在操作中...',
) W, `! w( O4 o% m html: getTamplate,
# q8 I" Y1 v" T8 n0 X2 q8 S allowOutsideClick: false,! ~; ]1 d5 i; }(欢迎访问老王论坛:laowang.vip)
allowEscapeKey: false,
! L5 g- O5 `; V( @ confirmButtonText: `完成`,
/ g+ ?6 r8 i9 I showCancelButton: true,7 G% W# h- B+ j0 B v(欢迎访问老王论坛:laowang.vip)
cancelButtonText: `取消操作`,# [, ?, ~$ v, k% i(欢迎访问老王论坛:laowang.vip)
footer: footerString,
! I' g% y1 x- P/ _- L5 K willOpen: function () {
% N; |; X. |5 I7 G+ l! Y9 R+ F Swal.getCancelButton().style.display = "none";8 p, p! L: K5 ^(欢迎访问老王论坛:laowang.vip)
Swal.showLoading(Swal.getConfirmButton());
, w6 C& K( r; o& i) o( W/ y var $swalContent1 = $(Swal.getHtmlContainer());
: z/ m; W* g1 s, A. y $errorList = $swalContent1.find(".errorList");4 U, Q1 V5 g, k7 u(欢迎访问老王论坛:laowang.vip)
$itemContent = $swalContent1.find(".itemContent");
" j: w) I& V, X- i( p9 g1 H }
6 J- K6 ~" o0 w }).then((result) => {/ P4 ~+ }/ g) j7 ~+ r, b(欢迎访问老王论坛:laowang.vip)
if (result.dismiss === Swal.DismissReason.cancel) {5 X9 f9 `' k4 S; Z- M& T(欢迎访问老王论坛:laowang.vip)
setTaskCancel();
* {+ w; T. l2 ]* d" q7 j console.log("Download Cancel Task");/ R* W& e, ]4 ^ a& y- b(欢迎访问老王论坛:laowang.vip)
Swal.fire({: x* J. H; R2 Z(欢迎访问老王论坛:laowang.vip)
title: '已取消,等待进行中的任务结束...',$ N6 j5 d3 N4 ^( Z* m+ o(欢迎访问老王论坛:laowang.vip)
html: getTamplate,
6 Z, z- P4 l7 ?* N allowOutsideClick: false,2 u! p2 O/ o1 x6 V(欢迎访问老王论坛:laowang.vip)
allowEscapeKey: false,
$ Q1 n7 ~) m$ b; ]6 M confirmButtonText: `完成`,
" J+ c9 t4 ]0 H1 J* ~ p3 s footer: footerString,0 h: A" w' e6 V( M) y# ~; Q, W2 c(欢迎访问老王论坛:laowang.vip)
willOpen: function () {
. Z' q5 X7 M' p( }. t% `& Q) i) Y Swal.showLoading(Swal.getConfirmButton());
% V4 V/ z2 P. q, ~: ]# { var $swalContent1 = $(Swal.getHtmlContainer());
6 ?4 J+ Z, b4 ~+ @" d/ C let html = $errorList.eq[0];" N. D8 z$ W' w% ^9 W* j7 P, P/ |(欢迎访问老王论坛:laowang.vip)
$errorList = $swalContent1.find(".errorList");
) ~7 p2 S& ^; q" @: k1 K $errorList.append(html);
y9 l3 ]% Y7 Q3 F J1 n4 a $itemContent = $swalContent1.find(".itemContent");
; a- X% q2 v; @: v }
% a& d/ b9 b) B) Q$ n })
" f+ i! g, v1 X4 B6 K }8 e. l: g8 @9 T5 D: e(欢迎访问老王论坛:laowang.vip)
});" l0 O6 w0 v1 t, B1 X1 j% p) C(欢迎访问老王论坛:laowang.vip)
- I; L0 a- c% _: h$ T$ K$ H. R(欢迎访问老王论坛:laowang.vip)
} else if (message.messageType == MessageType.PROCESSING) {
5 ~( F. \% [9 `( t1 |- d2 u $itemContent.html(message.msg);
5 l. x) y2 x4 t } else if (message.messageType == MessageType.ERROR) {
: Z4 e6 O1 w0 r8 ~; c& Z: ?9 m- \ $errorList.append('<li><div display: flex;"><p>' + message.msg + '</p><p style="font-style: italic;"><\p><\div><\li><li><hr/></li>');
- u1 W, d. E# ?3 x/ k8 m- O } else if (message.messageType == MessageType.END) {
$ X% v5 W; q% M $itemContent.html(message.msg);9 r4 d; i$ L, H$ N8 y(欢迎访问老王论坛:laowang.vip)
Swal.getTitle().textContent = "操作完成!";
. {! Y6 R8 o# i" {9 J* B Swal.getCancelButton().style.display = "none";
q+ U% E3 R% K* \3 ~" e Swal.getFooter().style.display = "none";
1 S. u0 N# E" k- W/ `* B! @ Swal.hideLoading();
5 {1 e5 h- X3 S0 L: m3 b0 h, y+ J
# ~ c; X: D6 I: r8 Q/ d# H } else if (message.messageType == MessageType.CLOSE) {
) V. s9 R" {$ B7 U' e9 d. a Swal.close();
. R9 h; C6 K- k } else if (message.messageType == MessageType.BEGIN4UPLOAD) {
' i" j; M4 _: b. Z1 w5 C, ~) a Swal.fire({. ]) O0 y/ p6 k5 p7 N(欢迎访问老王论坛:laowang.vip)
title: '正在操作中...',
: ]3 W9 T! d. E7 t9 f& M5 W) O html: getTamplate,
' Z" ^9 L, q( v( r allowOutsideClick: false,8 `1 R& L6 J0 B8 Z/ ](欢迎访问老王论坛:laowang.vip)
allowEscapeKey: false,
. ]$ S: O! q1 R$ S confirmButtonText: `完成`,
9 U$ G- ], G6 f" ]. x# x& D/ f denyButtonText: `打开目录`,# y- N/ m% I$ Q- m( N3 X" r(欢迎访问老王论坛:laowang.vip)
showCancelButton: true,% R h& e8 }% B4 n(欢迎访问老王论坛:laowang.vip)
cancelButtonText: "取消操作",
+ l, y4 E& _" ^0 F) o footer: footerString,
/ @" B L% t( ~5 i7 K+ \' B willOpen: function () {0 _4 w9 ^) c, x* A5 |4 t% J$ F: q(欢迎访问老王论坛:laowang.vip)
Swal.getCancelButton().style.display = "none";
3 j8 T/ y! t& n' _* M; q Swal.getDenyButton().style.display = "none";7 T0 S$ h" v" \0 T4 m8 ](欢迎访问老王论坛:laowang.vip)
Swal.showLoading(Swal.getConfirmButton());3 r4 j3 E5 l1 I% d2 t(欢迎访问老王论坛:laowang.vip)
var $swalContent1 = $(Swal.getHtmlContainer());
% ?& F5 ~7 s( Y. m $errorList = $swalContent1.find(".errorList");
& g# D% p G; k4 E# \1 H $itemContent = $swalContent1.find(".itemContent");
6 ? w4 n9 u v1 X }
' o; I( u( e8 m+ N9 W& z }).then(result => {( }% c$ Z5 S V6 T(欢迎访问老王论坛:laowang.vip)
if (result.dismiss === Swal.DismissReason.cancel) {
+ P5 r! j! k3 L, s* E setTaskCancel();
5 J# L. A/ ^" b6 h console.log("Upload Cancel Task");
1 M3 B; p0 h% `$ x6 r console.log(window.parent.document.myData)
: m; ~7 A# |4 B" ~" k' n% |' d, I Swal.fire({
4 i* w$ e+ q, V, W3 E9 M title: '已取消,等待进行中的任务完成...',
7 O2 x% K2 P! S: U2 R html: getTamplate,
$ f9 V! X9 ]7 O* ]* H, ]3 l$ L allowOutsideClick: false,
& g. M, @8 V9 m) M1 P. E allowEscapeKey: false,
3 {& n% C/ L; _6 j+ x confirmButtonText: `完成`,6 U3 K+ Y' `8 H, y(欢迎访问老王论坛:laowang.vip)
denyButtonText: `打开目录`,
: Q. ~5 E j8 W5 [+ Z3 F+ l2 { showCancelButton: false,( a# _8 V6 l) U6 f/ k# c+ D' A9 Y& V9 h(欢迎访问老王论坛:laowang.vip)
cancelButtonText: "取消操作",$ t' K/ t K7 Y1 q! r$ U# \(欢迎访问老王论坛:laowang.vip)
willOpen: function () {% B) H: X: E% O4 o(欢迎访问老王论坛:laowang.vip)
$ M) U- w6 m1 ~) e" z Swal.getDenyButton().style.display = "none";
, D# W9 |9 j7 e+ {& I$ `: p Swal.showLoading(Swal.getConfirmButton());' E. X8 V! e8 w; d P) u(欢迎访问老王论坛:laowang.vip)
var $swalContent1 = $(Swal.getHtmlContainer());
' e8 I7 v2 p; Y- N, F7 R $errorList = $swalContent1.find(".errorList");7 T% r @2 ^4 D3 X9 ~(欢迎访问老王论坛:laowang.vip)
$itemContent = $swalContent1.find(".itemContent");
. C7 h. ?: N, P5 l }$ |' A: U5 n Z9 g/ D i" g" C(欢迎访问老王论坛:laowang.vip)
});7 A" t# e2 D% m- N(欢迎访问老王论坛:laowang.vip)
9 X% N5 Q( X+ y1 U2 i; v(欢迎访问老王论坛:laowang.vip)
o6 R9 H7 X7 x& n# H4 y( H0 T(欢迎访问老王论坛:laowang.vip)
1 G4 Q" m! O. V2 w( _(欢迎访问老王论坛:laowang.vip)
}
: _& \8 J! v. o& y7 G% q });) {* b7 l S/ e* d* _/ K) ^5 p(欢迎访问老王论坛:laowang.vip)
} else if (message.messageType == MessageType.END4UPLOAD) {
' f) W% l9 G; R+ Z+ H. M2 i $itemContent.html(message.msg);
2 z+ @4 W; G: Z- n: C$ b4 _; x2 _ Swal.getTitle().textContent = "操作完成!";% F/ u. P, k8 T* ~0 k(欢迎访问老王论坛:laowang.vip)
Swal.getCancelButton().style.display = "none";
1 S" U! l; T! x/ g2 h4 r Swal.getDenyButton().style.display = "block";) f8 i3 o7 E+ S(欢迎访问老王论坛:laowang.vip)
Swal.getDenyButton().addEventListener('click', e => {
' P, _" h p2 U; C console.log("DenyButton click");& M: l1 @; w/ n( ^4 m" s(欢迎访问老王论坛:laowang.vip)
console.log(message);
) E0 i" ]! f4 B/ s ?5 O0 Y4 X6 \ window.location.href = "https://115.com/?cid=" + message.targetID + "&offset=0&tab=&mode=wangpan";" O0 S3 S) e/ o" ~- [, ]4 Y+ K(欢迎访问老王论坛:laowang.vip)
});6 H7 S6 r8 s' `' l0 m0 ] Y(欢迎访问老王论坛:laowang.vip)
Swal.getFooter().style.display = "none";
5 ?- s$ a+ B6 F+ Y$ \ Swal.hideLoading();
9 e o. |' ^' T* |) d, a2 k) k8 H" E } else if (message.messageType == MessageType.BEGIN4CONTINUETASK) {
# k* F4 J4 h: m, I5 [ let taskFile = '';; ~* Z5 R! r+ c7 l(欢迎访问老王论坛:laowang.vip)
Swal.fire({
5 C8 j' }# l) |3 `/ ?8 F+ Q( U& j title: '导入任务文件,继续任务',+ d; \* a7 D, G/ Q+ J(欢迎访问老王论坛:laowang.vip)
html: `<div style="text-align: left;">* g1 C0 N8 F# e9 K, x6 A, S(欢迎访问老王论坛:laowang.vip)
选择任务文件(.7task):<input id="continuedTaskFile" type="file" accept=".7task" ></input>
- I* k+ ?1 B% b <div style="font-size:14px;color:red;margin:10px;text-align: left;">*在没有移动相关的文件以及文件夹,包括目标的所有目录层级,导入任务可继续</div># _: E' F1 \" }% H(欢迎访问老王论坛:laowang.vip)
</div>`,
% R4 h# z1 T1 q: b& E focusConfirm: false,
% S' H& c. C2 `/ o, v4 [- P7 d confirmButtonText: `开始继续任务`,
8 S, f* B, `; i% Y) _ }).then(t => {
* f* C' p. s- o2 i% P+ | if (t.isConfirmed && taskFile) {
% Y3 O2 `6 Y( _# P! ] ContinuedTask(taskFile);8 Z9 K+ w+ O, i9 W6 r! @(欢迎访问老王论坛:laowang.vip)
}
$ L5 M/ X! _! N: H. O }); t8 @! S5 C+ t(欢迎访问老王论坛:laowang.vip)
/ O4 A3 Q" L5 H, X$ a" d(欢迎访问老王论坛:laowang.vip)
document.getElementById('continuedTaskFile').addEventListener('change', e => {
# F! R# S; d# `' u6 w+ y6 F1 o taskFile = e.target.files[0];. {5 O) d( ^/ }+ [% k(欢迎访问老王论坛:laowang.vip)
})+ f+ g* U$ J$ c7 |% J- T* |(欢迎访问老王论坛:laowang.vip)
: @) T: h9 S T: b(欢迎访问老王论坛:laowang.vip)
} else if (message.messageType == MessageType.SHOWCANCEl) {
" |5 u9 I4 `, Q; B# L if (Swal.getCancelButton()) {2 U6 |! l$ w8 A2 v5 m/ R. l7 Y(欢迎访问老王论坛:laowang.vip)
//Swal.getCancelButton().style.display = "block";6 e4 Z! p& a* U(欢迎访问老王论坛:laowang.vip)
}3 k0 c. r4 r w7 k4 _5 A(欢迎访问老王论坛:laowang.vip)
} else if (message.messageType == MessageType.HIDECANCEL) {' O4 m/ j$ D; `4 U0 S' u6 U(欢迎访问老王论坛:laowang.vip)
if (Swal.getCancelButton()) {5 D5 g- F) T% y7 }. c2 |(欢迎访问老王论坛:laowang.vip)
Swal.getCancelButton().style.display = "none";
, U4 A8 L# w" w! u' o0 d. h }. g: o7 C% I' u1 W2 @, d(欢迎访问老王论坛:laowang.vip)
T/ \' C# R4 e- W O, m5 w(欢迎访问老王论坛:laowang.vip)
} else if (message.messageType == MessageType.FILEDOWNLOAD) {2 e. v! L5 s, {3 z+ L(欢迎访问老王论坛:laowang.vip)
console.log(message.msg)
( ]0 l7 U1 R$ {8 k2 @( Q. i J let size = parseInt(message.msg.onlineFile.size);% j; B9 D, j' P(欢迎访问老王论坛:laowang.vip)
if (size > 2 * 1024 * 1024) {9 c1 O- O7 q6 y+ H2 P(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.MSGERROR, "暂不支持大于2MB的 text|json 文件!"));
! L* @! O% e( r) E! t/ G/ t- W } else {4 W/ D+ W' F/ U! P& ]) i H) N(欢迎访问老王论坛:laowang.vip)
Swal.fire({
/ Q- F% f: y' d! N% ]+ B* Q title: '正在下载文件...',) e% p: ~; t- T(欢迎访问老王论坛:laowang.vip)
html: `<p>${message.msg.onlineFile.name}</p><p id="processInSwal"></p>`,
" n: q1 ]/ e/ c8 }6 m# ` allowOutsideClick: false,! J5 ]9 A, ]2 Y% Y. ~& F9 h D(欢迎访问老王论坛:laowang.vip)
allowEscapeKey: false,
$ |6 w1 q- b: R2 u* o F/ q confirmButtonText: `完成`,2 j, b' H$ R t$ p. m(欢迎访问老王论坛:laowang.vip)
showCancelButton: false,& ?% B0 h8 `" F* ]0 @& G, g, j(欢迎访问老王论坛:laowang.vip)
willOpen: function () {
i8 }. z* _3 m$ { Swal.showLoading(Swal.getConfirmButton());
" Z; A. f+ }. J* O$ I4 J" ] downloadAFile(message.msg.onlineFile, text => {
) x5 m: M# ?* G ~ $(Swal.getHtmlContainer()).find("#processInSwal").html(text);7 b4 ]: O1 V9 m; E(欢迎访问老王论坛:laowang.vip)
}).then(r => {
) n; t, g/ ^" A' }( U' {- q if (r.state) {8 s1 b2 Q/ [0 r8 v(欢迎访问老王论坛:laowang.vip)
console.log(r.text)
! [; }% n- P Q3 ^9 U) Z2 J message.msg.config.text = r.text;+ ^+ z+ g0 H4 Y2 w `(欢迎访问老王论坛:laowang.vip)
* T+ O! I. \2 w6 w(欢迎访问老王论坛:laowang.vip)
UploadFilesBySha1Links(message.msg.config);3 y0 r& L# ]. i, Y(欢迎访问老王论坛:laowang.vip)
}% U6 q4 W9 t, N/ D4 g(欢迎访问老王论坛:laowang.vip)
});: f0 F1 n3 c( } e1 \(欢迎访问老王论坛:laowang.vip)
0 n* B7 _, c' U( [2 F2 ?, s5 I' O g ] }4 E4 k. r. ^) z" f(欢迎访问老王论坛:laowang.vip)
}); ]7 c/ i/ Y, X# `$ w5 d& K7 d(欢迎访问老王论坛:laowang.vip)
}( s2 w2 H. B5 O- C2 o(欢迎访问老王论坛:laowang.vip)
8 q; l( a7 X% E& G3 |7 @, h1 ^ } else if (message.messageType == MessageType.MSGERROR) {4 X' c( v: j+ j6 s. j(欢迎访问老王论坛:laowang.vip)
Swal.fire({
( w, i8 c' Y' }4 a8 M icon: 'error',
( b4 N/ ]% C$ J" Q6 _) ` text: message.msg,7 r$ f" s, V/ v7 Y0 B/ _ u(欢迎访问老王论坛:laowang.vip)
})
7 z# R0 _1 P8 f& [ } else if (message.messageType == MessageType.JSINFO) {: }; T' @. l4 q" c$ |2 j(欢迎访问老王论坛:laowang.vip)
Swal.fire({
! e( A4 ~0 O( A* x7 q icon: 'info',$ [" b* v5 C3 h& q(欢迎访问老王论坛:laowang.vip)
text: '脚本与环境信息:(如果报bug,请附带上如下信息)\r\n' + message.msg,: F% O" L3 n. ]3 }( t( p7 G8 J(欢迎访问老王论坛:laowang.vip)
})
! T+ g6 h, p- M. L4 ?$ E" O5 j }
4 X: {3 g! o: h/ M- O5 K5 [0 n
5 A+ C# F* M2 ^! r- Y& C, v h( b) e; m5 V(欢迎访问老王论坛:laowang.vip)
})2 |! @0 ]- ?( r- X0 h. Y(欢迎访问老王论坛:laowang.vip)
});7 B* X& H/ r7 n3 A. H6 K(欢迎访问老王论坛:laowang.vip)
}
. E( Y7 E) s) u0 |
: R8 d1 T% Z* ?6 \- @$ |0 \2 ^$ V# R) q* c' U. M; x2 h, B0 W" C* ~3 B(欢迎访问老王论坛:laowang.vip)
, _7 ]- u) n6 T T
, B6 w9 k5 J- P, N z( L9 o0 r' N
. {9 g- i1 D( M3 a) _3 }4 G# q/ j& Z3 U# n7 y) H$ Z(欢迎访问老王论坛:laowang.vip)
function delay(ms) {
6 E) e" h) Y8 Q: p+ x+ I
% `# O; I+ N3 D1 }* N+ |6 s& Q if (ms == 0) {
) {* U/ q. F% ~ ms = 1000 * (Math.floor(Math.random() * (11 - 4)) + 4);1 @! c O$ |4 c: L; o n( `) {# W(欢迎访问老王论坛:laowang.vip)
}
4 c: l) D( A; w1 c$ \1 @4 z+ p return new Promise(resolve => setTimeout(resolve, ms))6 k0 u4 l% E$ V2 s$ p9 [8 Y9 M(欢迎访问老王论坛:laowang.vip)
}
, L' Q5 w/ A1 r
% S5 C2 U M" y0 f9 ?9 K2 l9 R3 d1 a X5 p5 c2 D$ x(欢迎访问老王论坛:laowang.vip)
//#region 115 api7 j( l( t7 a: w8 d9 e9 `' q(欢迎访问老王论坛:laowang.vip)
//get UploadInfo
* F9 E' u# l$ p" ^" {3 Q) h //return {state:false,user_id:0,userkey:'0',error:''}! s! i8 @/ {. p/ F3 U, @; O7 f1 w(欢迎访问老王论坛:laowang.vip)
async function getUploadInfo() {' y2 [8 w, m5 I( h6 n @( G(欢迎访问老王论坛:laowang.vip)
const r = await $.ajax({
- \3 B9 k2 Q# ?3 F T' S url: 'https://proapi.115.com/app/uploadinfo',
& P& m9 X, C9 N+ q- `( M3 N dataType: 'json',
' ~& Q) ?0 q0 B$ J$ c3 h. J7 Q xhrFields: {6 x# V- b; _# E& w(欢迎访问老王论坛:laowang.vip)
withCredentials: true& `! p; ~8 g+ m# d(欢迎访问老王论坛:laowang.vip)
}. }* ?. A) w% @% I' R6 X; {5 d(欢迎访问老王论坛:laowang.vip)
});
3 d1 g# G' d6 H& N/ x6 V9 d) s return r;
4 J1 g a4 S, f5 |5 G2 G }
+ l) b* \8 M& z; T* }
" Z" U$ E# A2 Y" g$ G0 F //add a folder
# j' Z& i' i5 T3 s) e$ y //return {state: false, error: "该目录名称已存在。", errno: 20004, errtype: "war"}
- o+ ^* A5 V1 X+ b( C4 f& w1 @ //return {state: true, error: "", errno: "", aid: 1, cid: "2020455078010511975", …}
d( u$ s" k3 b4 N8 K async function addFolder(pid, folderName) {: ]/ _& P9 I/ J(欢迎访问老王论坛:laowang.vip)
const postData = PostData({
4 O# l2 e. G% `; H3 v7 }, o4 _ pid: pid,
. B5 H! u) ^/ { cname: encodeURIComponent(folderName)$ g& b% F" P& ?3 b+ y, U& V7 N(欢迎访问老王论坛:laowang.vip)
});
1 w+ A2 T# w6 `5 B" P
/ H8 Q- c+ _/ _ {4 y& C( H% P const r = await $.ajax({
2 D3 A- }7 l O! t0 ^3 K type: 'POST',# W9 T+ g/ M; u9 {4 b6 E(欢迎访问老王论坛:laowang.vip)
url: 'https://webapi.115.com/files/add',2 s/ R8 F+ i/ k( C. j(欢迎访问老王论坛:laowang.vip)
headers: {- |2 ?) g) t1 T4 F. v, }, ?7 h, f(欢迎访问老王论坛:laowang.vip)
'Content-Type': 'application/x-www-form-urlencoded'," U0 I' K2 _* B P5 d4 r, }$ h(欢迎访问老王论坛:laowang.vip)
//'Origin': 'https://115.com' `4 z6 F6 h5 G" V0 @' T(欢迎访问老王论坛:laowang.vip)
},. m9 u- t' V7 x7 \7 w: K. l(欢迎访问老王论坛:laowang.vip)
xhrFields: {/ v$ ~& z+ M+ k5 l(欢迎访问老王论坛:laowang.vip)
withCredentials: true
5 I X2 X8 [& z! y, Z* K9 { },
% m# l, c3 f$ D. ] dataType: 'json',
% K3 `% ]2 y6 d9 j data: postData
' f" E" w" W' F- l });- |$ F' n* y5 e5 {! T0 t% S$ Y(欢迎访问老王论坛:laowang.vip)
& y, N) b! o0 ]& O2 n1 N$ g4 e return r;# M2 c. u! A, F/ s5 j, H& j(欢迎访问老王论坛:laowang.vip)
}1 m' m/ b8 } Y- s( a(欢迎访问老王论坛:laowang.vip)
3 H0 Q& p% V, p5 V' ?8 F
1 X- M, q F: |3 ? //return {data: Array(30), count: 53, data_source: "DB", sys_count: 0, offset: 0, page_size:115, …}
/ g& ?+ l9 E/ B; d$ \+ U //return Array type:' }. z' k" V* X* J2 _) _(欢迎访问老王论坛:laowang.vip)
// [folder]:{cid: "", aid: "1", pid: "", n: "", m: 0, …}0 P8 `" E' M( m(欢迎访问老王论坛:laowang.vip)
// [file]: {fid: "", uid: 1447812, aid: 1, cid: "", n: "",pc:"",sha:"",s:0,t:"" …}) W) g1 X7 }& k) x v5 y$ K(欢迎访问老王论坛:laowang.vip)
async function getDirectChildItemsByOffset(cid, offset) {! z+ r2 J6 e- o3 y, j(欢迎访问老王论坛:laowang.vip)
var tUrl = 'https://webapi.115.com/files?aid=1&cid=' + cid + '&o=file_name&asc=1&offset=' + offset + '&show_dir=1&limit=1150&code=&scid=&snap=0&natsort=1&record_open_time=1&source=&format=json&fc_mix=&type=&star=&is_share=&suffix=&custom_order=';! @0 f- a ^' p( E4 ~1 p: y(欢迎访问老王论坛:laowang.vip)
// var tUrl = "https://aps.115.com/natsort/files.php?aid=1&cid=" + cid + "&o=file_name&asc=1&offset=" + offset + "&show_dir=1&limit=1150&code=&scid=&snap=0&natsort=1&record_open_time=1&source=&format=json&fc_mix=0&type=&star=&is_share=&suffix=&custom_order=";8 ]( a5 @" G& N(欢迎访问老王论坛:laowang.vip)
const result = await $.ajax({# C, j% m# ^9 l(欢迎访问老王论坛:laowang.vip)
type: 'GET',0 g1 W/ X- L& M h7 ^! j(欢迎访问老王论坛:laowang.vip)
url: tUrl,5 k, f: e9 | S6 L+ K+ A: D% s% p(欢迎访问老王论坛:laowang.vip)
dataType: "json",! U0 X- g6 @3 Y$ \( _* @(欢迎访问老王论坛:laowang.vip)
xhrFields: {
3 M4 l- W2 u, [ X" N# d4 g0 D* f7 k withCredentials: true$ H9 `2 }. Y8 e/ V7 d(欢迎访问老王论坛:laowang.vip)
}
! K( ]- F9 S5 P, y& l });3 U. _6 J5 ^ |, E% [, p; ^(欢迎访问老王论坛:laowang.vip)
return result;/ A( P& Y5 x8 L5 P' Q' T1 T+ k" O- Y; _(欢迎访问老王论坛:laowang.vip)
}2 o) s# n* d1 n8 }% S(欢迎访问老王论坛:laowang.vip)
) v( y/ x' H2 J; }% ]. Z(欢迎访问老王论坛:laowang.vip)
//直接子项目少于1200( V: c3 F2 Y) q( `(欢迎访问老王论坛:laowang.vip)
async function getDirectChildItemsByOffsetlt1200(cid, offset) {! H$ o( k% c, T3 D6 N" X. @(欢迎访问老王论坛:laowang.vip)
//var tUrl = 'https://webapi.115.com/files?aid=1&cid='+cid+'&o=file_name&asc=1&offset='+offset+'&show_dir=1&limit=1150&code=&scid=&snap=0&natsort=1&record_open_time=1&source=&format=json&fc_mix=&type=&star=&is_share=&suffix=&custom_order=';
% J& J' q9 c P' I" B var tUrl = "https://aps.115.com/natsort/files.php?aid=1&cid=" + cid + "&o=file_name&asc=1&offset=" + offset + "&show_dir=1&limit=1150&code=&scid=&snap=0&natsort=1&record_open_time=1&source=&format=json&fc_mix=0&type=&star=&is_share=&suffix=&custom_order=";
' A, J& e$ J: x+ I const result = await $.ajax({! `% P' Y9 x9 ?. p(欢迎访问老王论坛:laowang.vip)
type: 'GET',
2 a+ @6 s9 Z) S. F! b. U& c url: tUrl,: @6 R4 |% C% ?: Z V1 R& `(欢迎访问老王论坛:laowang.vip)
dataType: "json",
' e5 p2 q \9 a2 [6 t: w. f xhrFields: {
3 {7 }/ x7 ~: J! p+ q withCredentials: true4 A1 ^7 J' H) p5 n' j(欢迎访问老王论坛:laowang.vip)
}
% i& @: r6 A0 d5 E });
2 A+ \, b. m8 X- ]9 w) ] return result;
n/ q& r$ y9 N9 ]7 E) V7 a }
- o) Q8 y+ m) `& V9 r6 Q% `1 ^! D) d. `+ v! I! b7 g. K0 m(欢迎访问老王论坛:laowang.vip)
//return AllDirect items :{id:"",parentID:cid,isFolder:false,name:"",size:0,pc:"",sha:"",paths[] };
& S- `0 y4 o7 `' j async function getAllDirectItems(cid, folderProcessCallback) {6 x4 W/ ^6 G( x& l* K(欢迎访问老王论坛:laowang.vip)
var items = new Array();
$ W% E8 x* V8 J" {, ?# l, P- F var index = 0;5 ^" V8 T6 x. ?6 W- U( f(欢迎访问老王论坛:laowang.vip)
var flag = true;
3 C" U8 j1 ^& j: y var pageIndex = 1;
- x2 f- q0 b0 Z" P, w! l' O var first = true;( ^; i! P& ^" y! p3 P* i% ~8 i(欢迎访问老王论坛:laowang.vip)
var isLT1200 = false;
% ~8 ~2 d2 n' B. b4 s% G2 g5 X4 Q8 D( U* }( r(欢迎访问老王论坛:laowang.vip)
while (flag) {
. C+ E$ ?2 W- t3 n if (getTaskCancelFlag()) break;/ T! K: p8 Z6 s/ [" a8 `3 m5 \(欢迎访问老王论坛:laowang.vip)
% H m) ], Z4 J' f) q) P(欢迎访问老王论坛:laowang.vip)
folderProcessCallback(pageIndex);
; w9 u/ C3 l" e. R( ]0 p7 a var result = null;8 Y! d6 o6 o4 Y8 D(欢迎访问老王论坛:laowang.vip)
//1200数量,不同的api;这么写减少发包2 A) w7 t& f' l. G& |(欢迎访问老王论坛:laowang.vip)
if (first) {
& D, {% ~$ d) d9 m result = await getDirectChildItemsByOffset(cid, index);' k* c' F3 r9 _$ F" V/ p1 D(欢迎访问老王论坛:laowang.vip)
console.log(`first >1200 :${result.state},${result.count}`);
) S j8 {& A. | if (!result.state) { N) T( z8 j" Q2 b- M(欢迎访问老王论坛:laowang.vip)
result = await getDirectChildItemsByOffsetlt1200(cid, index);2 e+ y+ O# X8 _$ }(欢迎访问老王论坛:laowang.vip)
console.log(`first <1200 :${result.state},${result.count}`);
2 [2 c4 T% W* d* s: o4 d isLT1200 = true;
( M' E3 G& N' V) W" a; e }' a% M/ o Q0 y, U9 Y; `, @(欢迎访问老王论坛:laowang.vip)
first = false;
* j8 P& _3 f% n' J' U! p } else {
$ j) ~0 ~3 K. a& | if (isLT1200) result = await getDirectChildItemsByOffsetlt1200(cid, index);
( [9 _2 x, s- g$ C4 H1 ^2 o6 Y; s% U, I else result = await getDirectChildItemsByOffset(cid, index);4 x0 s' @( R$ b$ p& V/ m(欢迎访问老王论坛:laowang.vip)
}* A9 T; j! Y! [2 @(欢迎访问老王论坛:laowang.vip)
" G6 i4 j# s: q* A7 {, H# R6 |9 _(欢迎访问老王论坛:laowang.vip)
var totalCount = parseInt(result.count);
, r: s; D; U F& I. q8 } if (totalCount >= 1) {( i/ V! A3 z3 r; c6 y% C1 D" s- q B(欢迎访问老王论坛:laowang.vip)
result.data.forEach(function (item) {
. y3 d7 U& V, C var pItem = {
; p1 a5 x0 E$ `2 `1 E id: ""," \5 z2 w+ S2 C(欢迎访问老王论坛:laowang.vip)
parentID: cid,: w( A) y' y# s6 m/ b(欢迎访问老王论坛:laowang.vip)
isFolder: false,
: z, @2 K3 g' S) N name: "",
. @* e2 P+ a; x, _) v size: "",% T' p( h: z2 L+ l2 c! Y(欢迎访问老王论坛:laowang.vip)
pickCode: "",
9 e0 n6 M X, }. P& k. Z sha1: "",# ]+ m& Z0 ^0 z% k* N0 b0 b( k(欢迎访问老王论坛:laowang.vip)
paths: new Array(),
1 z. L0 \! q5 Q; z* D: f% \ preid: "",; P6 s# Z2 v- O. H; G( M(欢迎访问老王论坛:laowang.vip)
needToRemoved: false' }- h' \0 F# E1 ]' N( e. E(欢迎访问老王论坛:laowang.vip)
};
8 ] K7 C8 M. \/ H. E8 B, q
! r' R* I# b, f) l if (item.fid) //文件 fid,cid
& u8 H) G2 Y1 a3 U1 m {
5 e C' n2 ?. [( ^2 x! R pItem.isFolder = false;
4 |# Q' S- ]+ D5 ?1 ] pItem.id = item.fid;
0 O- |+ q+ @( l, @ f$ Z% [ pItem.name = item.n;
' M: G5 @5 H$ D; h3 e. l% X8 o9 m pItem.pickCode = item.pc;
( x2 D% V" `4 b pItem.sha1 = item.sha;
) B# P! b, P4 U( o pItem.size = item.s;4 l# v2 z0 v+ ?& j(欢迎访问老王论坛:laowang.vip)
} else //目录 cid,pid
1 ^* z4 D& ^8 U' E" a {
& w! j5 G. {$ ?( i7 e1 M1 C pItem.isFolder = true;
R- q. P$ t) A; t pItem.id = item.cid;, T0 r8 y) ^- V z& c& K# q, k(欢迎访问老王论坛:laowang.vip)
pItem.name = item.n;
/ I* Y: }9 a( g/ P1 {" o pItem.pickCode = item.pc;
' V {% n/ T& {' p& i }
& |8 u8 U8 }0 q8 \
, b6 L( f! N1 j$ Q0 n: |0 v8 V. ?5 g: ]3 M: I) Q0 r# r2 o+ Z(欢迎访问老王论坛:laowang.vip)
var itemIndex = items.findIndex(q => q.name == pItem.name && q.pickCode == pItem.pickCode && q.sha1 == pItem.sha1 && (_.isEqual(q.paths, pItem.paths)));" K) w* R. d/ {8 Z. u* N, q, n1 O(欢迎访问老王论坛:laowang.vip)
if (itemIndex == -1) items.push(pItem);
0 P( Y3 ~+ u" z9 y0 A4 m else {; D. U7 X0 {$ l: r. k$ ^) i n(欢迎访问老王论坛:laowang.vip)
//可能存在同一个目录下,两个文件一模一样,
V5 z4 @3 Q7 T' t. W" o* {% r //相同文件处理:不然循环条件退不出5 h+ A4 _1 s8 f+ ?(欢迎访问老王论坛:laowang.vip)
//fix:pickcode不一样,先保存着吧
X# I& F# Q" R E pItem.needToRemoved = true;9 R0 f: b- u8 k(欢迎访问老王论坛:laowang.vip)
items.push(pItem)% W% s" T2 y- R8 D+ |( h(欢迎访问老王论坛:laowang.vip)
}6 Q {* k- q6 @/ Z(欢迎访问老王论坛:laowang.vip)
})
( v. T7 M! p: Z% L }
5 z2 o8 [% g% U: N( x
+ T' K; L3 o) o, m: b console.log("_______________totalCount " + totalCount);
/ }: B* i- Z! p console.log(items.length)
* X, K/ T! k: o! V2 t$ d* ] //当获取到比pagesize小时,获取结束,1200时有个坑。。。7 G0 ]+ \, Q/ F(欢迎访问老王论坛:laowang.vip)
if (totalCount <= items.length) {
6 ~, y, N5 ^7 W/ [9 m% T break;
. g B# i0 E9 l; i } else {
6 v2 H( Q1 \# s/ P5 V await delay(500);+ l3 x! A- q! r' g1 q(欢迎访问老王论坛:laowang.vip)
index = items.length;8 X& z/ w, ?" F9 m$ u(欢迎访问老王论坛:laowang.vip)
pageIndex = pageIndex + 1;- V( H6 f( `' f6 Y1 I/ d) B(欢迎访问老王论坛:laowang.vip)
}' k- l+ Y4 Q- ~(欢迎访问老王论坛:laowang.vip)
}2 R' C; q0 ~6 p/ R(欢迎访问老王论坛:laowang.vip)
& P- h* }- R L. r1 w8 V console.log("cid: {0}, count: {1}".format(cid, items.length));3 _. ]0 t. `: P* B. V3 }* t(欢迎访问老王论坛:laowang.vip)
/ t6 s2 ]3 @* g( B( G1 y% v9 L3 }: T var noNullItems = items.filter(q => !q.needToRemoved);
& a2 G; v9 A F6 Z console.log("cid: {0}, 除去完全重复count: {1}".format(cid, noNullItems.length));3 w n! n3 D3 c(欢迎访问老王论坛:laowang.vip)
r) x* |* v3 r2 a5 ]* B(欢迎访问老王论坛:laowang.vip)
return noNullItems;
9 C4 O4 F% {1 Z& D$ r N9 a9 b f ? }6 o5 m" ]1 z$ I; T) |+ n; @9 k3 V(欢迎访问老王论坛:laowang.vip)
1 x6 o1 d" B: b2 P7 y3 H+ c4 I7 c //return {file_name:"",pick_code:"",sha1:"",count:"",size:"",folder_count:"",paths:[]}) n4 ~ E- N1 V. h7 { S- p(欢迎访问老王论坛:laowang.vip)
//return paths:[]层级目录8 k: x' h6 E! T" m$ U- o. {(欢迎访问老王论坛:laowang.vip)
async function getFolderInfo(cid) {/ Z R5 a$ a* Q; N/ h- {(欢迎访问老王论坛:laowang.vip)
var pUrl = "https://webapi.115.com/category/get?aid=1&cid=" + cid;) G+ J" a6 m/ a: T+ T2 `4 z$ p( Q(欢迎访问老王论坛:laowang.vip)
const result = await $.ajax({; g( N1 l! ~, c& z% E2 G(欢迎访问老王论坛:laowang.vip)
type: 'GET',9 U) _7 E& r; Q" G' T(欢迎访问老王论坛:laowang.vip)
url: pUrl,
/ t, |% `: R1 ^% }9 ^ dataType: "json",
6 s' T* F( M4 p# m xhrFields: {
) b) e3 q2 y0 ^5 d+ B! H withCredentials: true
+ u! g: W3 i, C }- N# z0 E- J2 p% P* {( S& C(欢迎访问老王论坛:laowang.vip)
});% y4 n' D! \' H5 |* K4 Z(欢迎访问老王论坛:laowang.vip)
console.log(result);
0 f4 V8 Y& }, J8 C2 {2 @+ s7 d' B5 ~ var pItem = {8 ~9 o" P* J- ^: i# v' O- p& C4 {7 J(欢迎访问老王论坛:laowang.vip)
fileCount: parseInt(result.count),
1 ]3 O. s; I d folderCount: parseInt(result.folder_count),: Q& W/ q" u3 M. D5 M6 K(欢迎访问老王论坛:laowang.vip)
id: cid,
* e9 c( _: O; n parentID: "",
# a @1 |7 X$ \+ d isFolder: true,
# H! i/ n. m! Q name: result.file_name,) C, ?& O" `+ m3 Z(欢迎访问老王论坛:laowang.vip)
size: result.size,
2 I) |" Z9 P" d pickCode: result.pick_code,
+ |% D- x2 J5 ~' V* |( ? sha1: ""," E0 t; Q* N$ B1 u(欢迎访问老王论坛:laowang.vip)
paths: result.paths,4 _# G0 x- j3 D" `, I8 ~(欢迎访问老王论坛:laowang.vip)
preid: ""
" K* I2 h- [/ e9 n# E# r };, S7 D. A( K$ W$ @(欢迎访问老王论坛:laowang.vip)
9 c, H/ `- Z% r; K1 m(欢迎访问老王论坛:laowang.vip)
return pItem;9 \7 R: r8 }& w5 K4 h8 U& _( {(欢迎访问老王论坛:laowang.vip)
}" c, u- |1 A: M1 m(欢迎访问老王论坛:laowang.vip)
1 ]* v4 m4 m- {! ^ // get fileArray:{id:"",parentID:cid,isFolder:false,name:"",size:0,pc:"",sha:"",paths[] };
! ~8 y& i8 f3 z: @ async function getAllFiles(cid, fileArray, topCid, folderProcessCallback) {2 V% o. e: q* W2 X* B(欢迎访问老王论坛:laowang.vip)
var thisFolder = await getFolderInfo(cid);
0 B( R3 B3 J) k: f7 J: O/ t folderProcessCallback(thisFolder.name, 0);
1 N, U1 s8 G% t+ A4 k D //空目录,跳过遍历
! F" X0 M& x R, A/ d. E$ d/ y; _% N1 m* I$ E z(欢迎访问老王论坛:laowang.vip)
if (getTaskCancelFlag()) return;9 o8 D% {; f0 y0 [" X8 ](欢迎访问老王论坛:laowang.vip)
if (thisFolder.fileCount == 0) return;
, A- D! u6 I/ L1 u' i0 _5 Y5 o7 o: L folderProcessCallback(thisFolder.name)# f9 D6 S6 a2 L1 X4 z(欢迎访问老王论坛:laowang.vip)
var directItems = await getAllDirectItems(thisFolder.id, pageIndex => {
* O+ p( `/ I+ Q' t' z4 E folderProcessCallback(thisFolder.name, pageIndex);8 @- z1 q( e4 @8 |(欢迎访问老王论坛:laowang.vip)
});
4 _. a% g, {% g$ p; B0 ] //空目录,跳过遍历4 n5 z: {1 F7 l) w. a+ j(欢迎访问老王论坛:laowang.vip)
if (directItems.length == 0) return;
" ?* g/ ] J8 C! A var files = directItems.filter(t => !t.isFolder);* |+ u7 b/ L R0 f6 {. y5 k8 a7 m9 U(欢迎访问老王论坛:laowang.vip)
files.forEach(f => {0 Z) D2 T* F; b! t, _1 z6 T(欢迎访问老王论坛:laowang.vip)
var index = thisFolder.paths.findIndex(q => q.file_id.toString() == topCid);
, D- ]$ ] L9 I; z! m( t var paths = new Array();
6 K- K o: S6 ?) |8 {: | if (index != -1) {
@& u! c( e- E7 l$ {3 \$ K paths = thisFolder.paths.slice(index).map(q => q.file_name);
) p8 F( W* ?6 o/ k" h3 ^ }/ T m6 s/ ]) p& {1 C( C(欢迎访问老王论坛:laowang.vip)
paths.push(thisFolder.name);6 x" A# B5 g$ k; i& E( P(欢迎访问老王论坛:laowang.vip)
f.paths = paths.slice(1);
, W* f1 n5 J2 e, O
7 k9 c4 \2 q6 [* x u fileArray.push(f);
1 {* H2 z/ h9 b# V8 X0 { });
* Z' x1 I/ n. F4 z" d, A h% N& U2 t; ^/ w! N(欢迎访问老王论坛:laowang.vip)
var folders = directItems.filter(t => t.isFolder);
8 V8 W7 @3 I% M9 J9 ^; o9 u3 x for (var folder of folders) {
+ [: I0 N) F) K8 c3 k" A ] if (getTaskCancelFlag()) break;
* N6 G! [2 r% a6 E* g) G await getAllFiles(folder.id, fileArray, topCid, folderProcessCallback);% c2 h, V0 G" m6 v( f; x v6 l( V# \(欢迎访问老王论坛:laowang.vip)
await delay(200);# D' {( J0 [2 ?" h. t5 n K(欢迎访问老王论坛:laowang.vip)
}
4 v! ^% |- y0 u6 G% Q g o
0 r+ i4 g9 a' J$ j( U! j! C. } }
) u6 B; n+ o, A/ `5 ]" V8 {' u8 r% ^! w0 S8 I+ O. J' C$ |+ [& \9 \(欢迎访问老王论坛:laowang.vip)
//批量重命名 fileArray [{id:id,name:ddd}]8 k+ U. e1 ? d; q5 l- \" n(欢迎访问老王论坛:laowang.vip)
//{"state":true,"error":"","errno":0,"data":{"2187365717527997108":"14214.mp4"}}9 \" t& C" y- S* F& m(欢迎访问老王论坛:laowang.vip)
async function renameFiles(fileArray) {
# f% I5 Z4 r. L% t console.log("renameFiles fileArray");
) C- K8 y# b. n u: e console.log(fileArray);
% ~! h6 G* K& i1 L: ?; z$ m let datas = fileArray.map((value, index, array) => {* v: u: w2 p! Z; [0 v(欢迎访问老王论坛:laowang.vip)
let dataKey = `files_new_name[${value.id}]`;9 _! U: D2 j1 ]# f+ A' n' ]/ U(欢迎访问老王论坛:laowang.vip)
let dataValue = value.name;- J) J# E+ A+ V q! o(欢迎访问老王论坛:laowang.vip)
return `${encodeURIComponent(dataKey)}=${encodeURIComponent(dataValue)}`;
F- b; _7 r* y6 E$ A }).join("&");) |. j1 r, q3 k. I6 e$ K(欢迎访问老王论坛:laowang.vip)
2 L/ p1 K/ M4 S( H. U+ k& y* e% ~ let renameUrl = "https://webapi.115.com/files/batch_rename";
4 o+ V6 L1 R8 L* p2 y! |; G7 g- H const result = await $.ajax({
- {( d" a2 v- `1 V/ n f type: 'POST',: n3 _% R M) i+ c4 D# S Q. M0 C(欢迎访问老王论坛:laowang.vip)
url: renameUrl,7 }* A5 L7 b. B9 I(欢迎访问老王论坛:laowang.vip)
headers: {
8 ]; v# ]( {, Z r. U* b& a 'Content-Type': 'application/x-www-form-urlencoded',
* M$ n: l0 i5 t& G //'Origin': 'https://115.com'
^! S4 H+ p) W },
! r: r* N2 n9 E5 r/ B0 ? dataType: "json",) F" a2 q1 c5 ]4 J(欢迎访问老王论坛:laowang.vip)
xhrFields: {
) c$ Y1 m- k9 P6 ?2 g* p6 E! u withCredentials: true
. @% I0 q# Z5 | },+ A) \, u; `! M& C(欢迎访问老王论坛:laowang.vip)
data: datas
" [2 S% D1 z' A, M& V0 ? });9 \! T3 M. G# L' e' T" o) M& b7 Z(欢迎访问老王论坛:laowang.vip)
* J7 Z" _; \3 x. Q8 X' i/ h return result;
1 w7 R3 o; k5 m0 f7 R Z. v" e }- `$ V% d- E U- L1 A6 \/ s(欢迎访问老王论坛:laowang.vip)
$ a* p0 F) R) O* I async function getUploadHistory(offset, limit) {3 R+ M- y, x5 Q(欢迎访问老王论坛:laowang.vip)
let historyFiles = [];
, t/ m' m, u9 o' K' U; t let pUrl = `https://webapi.115.com/history/list?type=4&offset=${offset}&limit=${limit}`;
2 y, w6 ?! M. W* A5 Z const result = await $.ajax({8 Y& k5 _+ K" ?. B! A9 U0 U/ B, \: g0 g(欢迎访问老王论坛:laowang.vip)
type: 'GET',* c6 P8 j4 Y( N& k$ {+ [(欢迎访问老王论坛:laowang.vip)
url: pUrl,
- R" f4 |/ k6 a b" l( T' J& T* ^* | dataType: "json",
- D4 Y$ D. e/ Y3 ^5 X5 d xhrFields: {, N, n4 u6 \ W(欢迎访问老王论坛:laowang.vip)
withCredentials: true/ U. Y$ u% T% H( G0 Y. ^(欢迎访问老王论坛:laowang.vip)
}
* U' a0 s n/ O% r5 s7 I* L: k) k });& Z# \, v. U& W+ P(欢迎访问老王论坛:laowang.vip)
5 B- i6 Z; C( R' C/ b$ | let files = result.data.list;; z8 E! j: T0 |% j(欢迎访问老王论坛:laowang.vip)
for (const aFile of files) {
) q& C T4 w, Y7 P4 ^! l: i historyFiles.push({
$ U! j- J, U! x1 H7 s8 I8 i sha1: aFile.sha1,
+ Q+ F& |* ^: [ id: aFile.file_id,7 h) u6 R* U) {! k(欢迎访问老王论坛:laowang.vip)
createTime: aFile.create_time,. a5 \' z! m( v7 ~( S W' X( t(欢迎访问老王论坛:laowang.vip)
pickCode: aFile.pick_code, //可能不一样: n: r+ ]+ l- L# U(欢迎访问老王论坛:laowang.vip)
name: aFile.file_name,
% _5 y A1 ^) @: @ i parentID: aFile.parent_id. `% h! B4 z* h(欢迎访问老王论坛:laowang.vip)
});8 Z0 p" o1 n. s* p+ W% A(欢迎访问老王论坛:laowang.vip)
}
2 Y% f) n- h" e( n2 k5 c; [6 \5 p, I- X
$ F, \; P/ D7 D8 y return historyFiles;
) h5 K: f+ w+ b" ] }
# H. b# u# F) v, x V2 h! y1 ^(欢迎访问老王论坛:laowang.vip)
async function getLastUploadFiles(count, delayTime = 200, processCallback) {: F1 W, C$ b/ W(欢迎访问老王论坛:laowang.vip)
let files = [];$ b7 y. k# \" i# ], y(欢迎访问老王论坛:laowang.vip)
let offset = 0;* B& F) Q. o& _2 p) h, m# e$ Z0 x(欢迎访问老王论坛:laowang.vip)
let limit = 115;
0 o. e r1 X) Y' e let leftCount = count;$ H& [9 w \; L(欢迎访问老王论坛:laowang.vip)
while (leftCount >= limit) {
: ~, w7 h5 f- q6 n4 { processCallback(`正在获取第${offset+1}-${offset+limit+1}个文件数据...`)
% }/ ^5 ~' f _+ m, k/ ^5 S3 w let result = await getUploadHistory(offset, limit);: |( s4 d3 h6 G(欢迎访问老王论坛:laowang.vip)
result.forEach(f => files.push(f));
4 G# s- p. Z4 _8 a offset = offset + limit;0 ]; t3 v7 V0 G(欢迎访问老王论坛:laowang.vip)
leftCount = leftCount - limit;
7 ~% y" x% P& D9 d) U4 K" x await delay(delayTime);* A- d8 j+ Y' Q9 ]. N0 T! Q(欢迎访问老王论坛:laowang.vip)
}
1 N8 u! U+ r1 \& T$ ?; r if (leftCount > 0) {
% T) T4 u x H, N2 b processCallback(`正在获取第${offset+1}-${offset+leftCount+1}个文件数据...`)
8 ~9 D: W T# G( z& Q$ k6 J, Z let result = await getUploadHistory(offset, leftCount);( v( t0 P$ {6 M/ ~(欢迎访问老王论坛:laowang.vip)
result.forEach(f => files.push(f));
* t& o6 x x' e2 E& \: _- w7 Q+ F }
1 `) P3 z) |6 t; y( F
6 E: q4 [; F6 f0 Z return files;2 V( U% R* F+ n. b(欢迎访问老王论坛:laowang.vip)
}( M, f; y A; m2 I; f; B) g(欢迎访问老王论坛:laowang.vip)
, g- ?; g' }: A" R+ ~
* I* r+ p2 ]6 _) @ //获取生成sha1需要preid
, K5 X) i) I. U$ G. B //return: {state:,error:,fileItem:}
* R0 ^; E' Y8 r, k$ z function getFileItemPreid(fileItem) {
( W8 Q/ k# p7 w console.log('getFileItemPreid')
. ~5 I4 z4 I" r4 N7 a4 N console.log(fileItem);5 [% ]& O, H+ ^+ c# j; L* ~(欢迎访问老王论坛:laowang.vip)
const f = fileItem;
' E+ K( i; A; F, f7 h let fileSize = parseInt(fileItem.size);
0 K1 C; r0 l2 w% r7 [' z2 ] if (fileSize == 0) {3 _: z% V6 M, I' _; u( q o(欢迎访问老王论坛:laowang.vip)
return new Promise((resolve, reject) => {
' M, q" f% _) _: N y& ^ const errorMsg = "{0} 文件大小为0,已经跳过!".format(f.filename);: D) Z5 O) E' S, I' \* g/ u' \" p ](欢迎访问老王论坛:laowang.vip)
console.error("errorMsg");" f" \, h1 m) c- q! O5 k(欢迎访问老王论坛:laowang.vip)
resolve({! C4 l+ N8 u/ `(欢迎访问老王论坛:laowang.vip)
state: false,
/ o3 C. z) j+ o) ]( g* \, F9 A error: "文件大小为0,已经跳过!",
7 G+ I: a2 @, J8 K fileItem: fileItem3 @7 r* {4 ]1 L, S% B. o(欢迎访问老王论坛:laowang.vip)
});
2 a. w3 K1 f% m1 Q });+ s: d$ x; h# g$ p(欢迎访问老王论坛:laowang.vip)
}
+ |) z2 M# S$ }. c! i _' M+ d0 o6 D& T* i. M(欢迎访问老王论坛:laowang.vip)
const r = new Promise((resolve, reject) => {
$ u6 S( v" v% } var data, key, tm, tmus;; b/ L/ Z: [: u2 ?3 }0 R* l) \(欢迎访问老王论坛:laowang.vip)
tmus = (new Date()).getTime();. @) Z/ F7 Y) l( z(欢迎访问老王论坛:laowang.vip)
tm = Math.floor(tmus / 1000);
2 z( `, D1 F4 Y* O9 i& ~- h var test=JSON.stringify({
! U& s3 A9 t8 ` pickcode: fileItem.pickCode, J7 R: i+ k& `2 ~(欢迎访问老王论坛:laowang.vip)
});
/ P2 j8 \' b$ `1 e6 z" R: [ console.log(fileItem.pickCode,test,tm);
3 s1 C, e) @* d3 U ({data, key} = m115_encode(test, tm));
& X$ y/ P4 h' v4 x$ W4 @ GM_xmlhttpRequest({: c% B: n$ l: l2 l. L5 ?/ c8 [- O" k(欢迎访问老王论坛:laowang.vip)
method: "POST"," H( w* R9 @2 G) o+ \(欢迎访问老王论坛:laowang.vip)
url: 'https://proapi.115.com/app/chrome/downurl?t='+tm,, W3 Z2 g: m2 q, |* S(欢迎访问老王论坛:laowang.vip)
headers: {
1 T6 _+ T/ {: J 'Content-Type': 'application/x-www-form-urlencoded'," h3 m4 P; ]: p(欢迎访问老王论坛:laowang.vip)
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 115Browser/23.9.3.6'
& T b4 t, [2 ], ?' Z) e },
2 |( C/ t' p# n0 C# M responseType: 'json',. K4 R' ]( d0 A& L# G(欢迎访问老王论坛:laowang.vip)
data: PostData({+ g$ H {( b _6 h(欢迎访问老王论坛:laowang.vip)
data: encodeURIComponent(data)
- b8 ?5 I1 L! `" @, }0 n }),+ f# _' A5 `6 I1 p; f+ R! e(欢迎访问老王论坛:laowang.vip)
onload: function (r) {0 C# o1 {' P8 a3 }. {(欢迎访问老王论坛:laowang.vip)
if (r.status == 200) {( A# J( R; l7 \, V(欢迎访问老王论坛:laowang.vip)
var download_info = r.response;( }) G$ W, A; l9 Z4 n! w(欢迎访问老王论坛:laowang.vip)
' f# L$ G n& W% e& A7 _: p9 K+ t9 m. k# G0 e, `(欢迎访问老王论坛:laowang.vip)
if (download_info.state && download_info.data) {
4 n; y; }: o9 w6 e, C" X- M try {
" z( m. Q$ _5 Y: e var json = m115_decode(download_info.data,key);
4 U1 A5 L$ b9 T$ Q6 E) A+ u //console.log(json)" y. b4 V) v7 c9 [$ ^& j* k- I4 J(欢迎访问老王论坛:laowang.vip)
var url = JSON.parse(json)[fileItem.id]['url']['url'];, n/ I% U' S# j0 a(欢迎访问老王论坛:laowang.vip)
//todo:不能下载的文件处理
+ Y% ^5 \& f; |9 J, f& B if (!url.startsWith("http://cdnfhnfdfs.115.com") && url.startsWith('http:///')) {
% a( Z' e# @2 Y2 S4 x' g console.error(`error url:${url}`);
- }; h) n5 r4 C6 i% H+ {0 a ^ url = url.replace("http:///", "http://cdnfhnfdfs.115.com/")
+ ^! W6 |. v3 ` T' f }
1 @8 F3 `, I& p) Q7 q0 [0 @! B% V+ C7 g(欢迎访问老王论坛:laowang.vip)
console.log(url);) l( J% ^8 Y# j. M; Y t(欢迎访问老王论坛:laowang.vip)
var resp = r.responseHeaders
) n& i/ }4 l! M) ] var setCookie = DeleteCookie(resp)& H; P; f$ S. b' c, i) J(欢迎访问老王论坛:laowang.vip)
var fileCookie = null;
8 \3 R7 L+ Z# p if (setCookie) {
0 W* y9 T$ L! b; o: R- j! {# B fileCookie = setCookie;
9 l8 f; W9 x* B- U }
p. F9 v9 q- H& t) N
; [0 T6 j7 E. L9 U2 M8 O GM_xmlhttpRequest({: R* [% K2 v u, v5 D7 a+ P) o(欢迎访问老王论坛:laowang.vip)
method: "GET",
. ]8 z" ?% G& y7 E4 j6 ` url: url,
9 G" F6 Y- [2 _ timeout: 12000,
5 n3 F3 H* f) | headers: {+ r" ~/ Z& p/ U: g, \0 n(欢迎访问老王论坛:laowang.vip)
"Range": "bytes=0-131072",
6 ~# R W* Z( o Y "Cookie": fileCookie,
8 m# y# n& h" `( I 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 115Browser/23.9.3.6'
3 t1 L% R' {! P },
$ `# ]+ Q* @" r/ A- k/ S responseType: 'arraybuffer',4 D1 h0 U" [' O. _% x: F+ B$ q(欢迎访问老王论坛:laowang.vip)
onload: function (response) {% E0 X9 |# b- x7 W' s9 Y(欢迎访问老王论坛:laowang.vip)
if (response.status === 206) {
; f4 a* u& S8 b var pre_buff = response.response;5 A( a. R( N, e% r. y! N: E(欢迎访问老王论坛:laowang.vip)
var data = new Uint8Array(pre_buff);: l4 p! X* e+ D! a(欢迎访问老王论坛:laowang.vip)
var sha1 = new jsSHA('SHA-1', 'ARRAYBUFFER');3 L1 o+ V+ B7 E8 W" s0 O(欢迎访问老王论坛:laowang.vip)
sha1.update(data.slice(0, 128 * 1024));
$ S4 N( o F4 n. C2 C var preid = sha1.getHash('HEX', {
* ^& L! K* G- h6 s& J: e' V outputUpper: true% Y2 T Q! E! ]1 u* |0 M9 _& ^( S(欢迎访问老王论坛:laowang.vip)
});+ f6 F. n! x8 \, c(欢迎访问老王论坛:laowang.vip)
fileItem.preid = preid;& [+ i/ \; A/ K- C) C(欢迎访问老王论坛:laowang.vip)
resolve({% o8 A3 j% Z9 W/ Y(欢迎访问老王论坛:laowang.vip)
state: true,
! E! L3 I( }, h: H$ w error: "",* v1 F3 i" L5 u( f' z+ ^(欢迎访问老王论坛:laowang.vip)
fileItem: fileItem
* S! v& d' G6 O% a8 F });. Z! g2 Q9 B, ~6 h7 v. e(欢迎访问老王论坛:laowang.vip)
} else if (response.status === 403) {
/ c" j: v+ `& ~' X" G) x6 f' J console.error("Forbidden, 已经用40个0代替");
/ H/ C9 E; S' [6 v fileItem.preid = "0000000000000000000000000000000000000000";: N0 w. `4 A1 F1 Y5 F& j(欢迎访问老王论坛:laowang.vip)
resolve({& a. ~& E0 |. u1 E' g# l6 c. A(欢迎访问老王论坛:laowang.vip)
state: true,; m: g) v0 Y: M3 R6 K$ q(欢迎访问老王论坛:laowang.vip)
error: "",
8 b" Y) z9 x6 V& i' J fileItem: fileItem7 ]0 y' u! K7 u* ?(欢迎访问老王论坛:laowang.vip)
}); L! q! d1 q0 r(欢迎访问老王论坛:laowang.vip)
} else {
" \6 ~2 M9 I: ]- D/ a //fix v3.3: 修复404文件无法下载导致卡ui问题 @指环王
[3 L$ @; ~: y: U4 f& z9 w& U console.error("可能文件无法下载或者网络问题");5 } }% J/ d- c: Q* i(欢迎访问老王论坛:laowang.vip)
console.log(response);$ Z) Y0 P7 Z8 O5 ?3 k7 v(欢迎访问老王论坛:laowang.vip)
resolve({
# C: H9 y) e& {4 p: \- C" E" D state: false,1 g& b/ E6 C8 F5 Z; ^4 W$ h$ K(欢迎访问老王论坛:laowang.vip)
error: "下载出错,可能文件无法下载或者网络问题",
. P; d+ i/ I0 k9 i fileItem: fileItem
" ?7 B- G5 b! H9 `& J' c/ }8 s });! ~& b1 O% P7 ]* e(欢迎访问老王论坛:laowang.vip)
}
- c9 Q; }; A. w' \2 w }, e: }: i' e/ k1 Q(欢迎访问老王论坛:laowang.vip)
ontimeout: function (res) {
& x! H: B7 i* M! W! j console.error("下载超时,可能文件无法下载或者网络问题");8 |" J5 t' _5 `( T(欢迎访问老王论坛:laowang.vip)
console.log(res);
$ z- ]# K9 Y% M5 }1 i# v* l resolve({
, ^6 j/ r, U k: A( v state: false,3 m, c8 ]- P0 R' q/ q; ^(欢迎访问老王论坛:laowang.vip)
error: "下载超时,可能文件无法下载或者网络问题",
1 ^& K8 T8 S# Y, ~* v# p fileItem: fileItem
5 z$ D0 N2 N7 U# a });% S/ z6 L) Z" ~& W9 `1 F(欢迎访问老王论坛:laowang.vip)
}: H) W& |. j# N$ u9 |3 C(欢迎访问老王论坛:laowang.vip)
});/ ^5 b5 l& `2 m! j(欢迎访问老王论坛:laowang.vip)
} catch (error) {
6 j- U& @$ X7 e' s" X& k! P/ ` console.error(error);6 T2 ]/ Y/ A7 ~& d(欢迎访问老王论坛:laowang.vip)
resolve({
7 l' G; A+ N9 D; b! p state: false,
3 ]* m( {+ W' v# D, F/ v p! b0 { error: "在提取中发生错误...",
8 T- N5 Q$ W# n- w9 D1 J fileItem: fileItem
5 o+ o! A) E4 H# c5 C+ | });/ l/ J3 w! F! p0 f7 Y(欢迎访问老王论坛:laowang.vip)
}
+ `2 Q5 n! ~2 ?1 O. M/ F# z } else {
; D/ t4 o# D* q8 p, a" P( G+ | console.log(download_info);0 X3 |" B! N. l. O4 E(欢迎访问老王论坛:laowang.vip)
resolve({
7 D& J( q3 s' u: O+ P, e state: false,' T! N* u& R, x( d% T! X7 w(欢迎访问老王论坛:laowang.vip)
error: download_info.msg,$ {5 z9 W# Q5 J" G(欢迎访问老王论坛:laowang.vip)
fileItem: fileItem, R! q, K* e3 P* Y(欢迎访问老王论坛:laowang.vip)
});/ E/ X7 I& ~. d) i" x5 N3 v(欢迎访问老王论坛:laowang.vip)
}
: l& m" m! o ^, N& _7 ~- d
. J# c1 \1 _4 g" n3 n4 E* G } else {
p1 j) G' f7 t& { console.error(response.response);
1 `4 L+ d3 J, Z5 y" J& x# I resolve({% c7 M+ q" [" G M) Y6 `8 l* K(欢迎访问老王论坛:laowang.vip)
state: false,- O5 D" ?/ C+ C3 l$ Q% H' A$ o(欢迎访问老王论坛:laowang.vip)
error: "在提取中发生错误...",
1 b/ l9 Z3 q/ }) P6 Y7 l fileItem: fileItem" N2 l: r9 l' h' t# u(欢迎访问老王论坛:laowang.vip)
});- b& i x$ Z( v* Z+ m# Q(欢迎访问老王论坛:laowang.vip)
}$ Y4 K( d$ Z/ l* W$ W(欢迎访问老王论坛:laowang.vip)
}6 p5 V* t# B# C, ^(欢迎访问老王论坛:laowang.vip)
});
/ A6 P4 W& b! ?- S });
" E. [2 X/ ]6 y+ q return r;
- |( Y* \) H+ s: d }
* c/ [; r- f2 O- S& |! P! ?2 N+ E4 y, |% G(欢迎访问老王论坛:laowang.vip)
1 {" a" K( m' y& @1 A(欢迎访问老王论坛:laowang.vip)
var utf8ArrayToStr = (function () {
" ?% ?" l/ O; z var charCache = new Array(128); // Preallocate the cache for the common single byte chars2 Q2 S0 I7 O3 v6 i; x(欢迎访问老王论坛:laowang.vip)
var charFromCodePt = String.fromCodePoint || String.fromCharCode;
; l) o3 w0 x' F var result = [];& w9 E) I' x) \# F1 v(欢迎访问老王论坛:laowang.vip)
6 v. x; _0 }+ `4 E' J u(欢迎访问老王论坛:laowang.vip)
return function (array) {' G5 ^' A) r- B* V% w0 W; I(欢迎访问老王论坛:laowang.vip)
var codePt, byte1;
$ [ u$ G* ?3 M var buffLen = array.length;5 ?/ @+ f. X) T(欢迎访问老王论坛:laowang.vip)
" a: W" r. I. s8 x(欢迎访问老王论坛:laowang.vip)
result.length = 0;* k" g, m% v I" r! \5 S(欢迎访问老王论坛:laowang.vip)
" c, ~' y+ j8 K) F(欢迎访问老王论坛:laowang.vip)
for (var i = 0; i < buffLen;) {
5 r# m4 Q- H8 J' ]1 V2 k4 M. \ byte1 = array[i++];( t. T1 F6 k" V5 E; V( v& J(欢迎访问老王论坛:laowang.vip)
3 h8 d$ W3 Z. Z1 e- p6 H(欢迎访问老王论坛:laowang.vip)
if (byte1 <= 0x7F) {1 a F N& W9 c(欢迎访问老王论坛:laowang.vip)
codePt = byte1;" T4 X. G2 V T2 l(欢迎访问老王论坛:laowang.vip)
} else if (byte1 <= 0xDF) {! ~' T5 J4 ^: c- P/ b- f/ P# Q(欢迎访问老王论坛:laowang.vip)
codePt = ((byte1 & 0x1F) << 6) | (array[i++] & 0x3F);2 N+ R* E7 |- h' y9 x(欢迎访问老王论坛:laowang.vip)
} else if (byte1 <= 0xEF) {
, W2 i4 V" ?* S- `" `1 s/ s codePt = ((byte1 & 0x0F) << 12) | ((array[i++] & 0x3F) << 6) | (array[i++] & 0x3F);; t# D( w) N$ @, o2 l, Y(欢迎访问老王论坛:laowang.vip)
} else if (String.fromCodePoint) {1 U A/ O- F" j& E7 ^(欢迎访问老王论坛:laowang.vip)
codePt = ((byte1 & 0x07) << 18) | ((array[i++] & 0x3F) << 12) | ((array[i++] & 0x3F) << 6) | (array[i++] & 0x3F);0 _4 I5 L1 U% Q4 } M(欢迎访问老王论坛:laowang.vip)
} else {
# Y. h) F# ~; J* y# ~ codePt = 63; // Cannot convert four byte code points, so use "?" instead
% v) Z% u6 b6 P$ f5 }/ `# R' u+ K i += 3;& `1 D! ^ R7 e8 q(欢迎访问老王论坛:laowang.vip)
}; |4 j3 d# B* o& @3 s. n( i( s(欢迎访问老王论坛:laowang.vip)
- o( I: I: ?2 l- v4 B) ?& t( u result.push(charCache[codePt] || (charCache[codePt] = charFromCodePt(codePt)));
1 t I4 p. ^7 T; \3 e5 o* C* [' ` }3 c/ A5 g) S) s/ ~ \! |(欢迎访问老王论坛:laowang.vip)
- ~0 b: O% T6 a% C+ y; @ return result.join('');
0 P! t* w! N. F6 j. b };2 F. g: s6 S" O. J% W(欢迎访问老王论坛:laowang.vip)
})();
' F. P* u( s3 Y: {( J" d# `0 G5 A. d; Z( s$ `. C0 W, y(欢迎访问老王论坛:laowang.vip)
function downloadAFile(fileItem, progressCallback = function (text) {}) {
' }! H1 I8 O3 n( s8 K. f' {, K console.log("downloadAFile")
- c/ k( t3 s1 ^. x, v( L" B0 Z console.log(fileItem)
. l! @5 ~+ w7 t o8 C# ? const r = new Promise((resolve, reject) => {
, ]' ~/ y% m, L( ]% C var data, key, tm, tmus;
! q! q# H. V# `2 v+ s6 ` tmus = (new Date()).getTime();: g. Y, g& _1 f* Z* g- E(欢迎访问老王论坛:laowang.vip)
tm = Math.floor(tmus / 1000);
n, x# W, `) q# b/ I var test=JSON.stringify({( V% b7 k$ B: D8 U# i(欢迎访问老王论坛:laowang.vip)
pickcode: fileItem.pickCode
0 k4 y3 S# t! l; x, a });
& ]( X: _+ W3 \% s+ P8 ] console.log(fileItem.pickCode,test,tm);
* R9 L4 U* ?" l7 E t6 s/ F ({data, key} = m115_encode(test, tm));+ u9 l/ h* A. v" Z" V4 x8 {& M(欢迎访问老王论坛:laowang.vip)
GM_xmlhttpRequest({
, b' B% b- y% z3 _. X( z method: "POST",, m* _# A2 W- s; Q# L; V& [& f(欢迎访问老王论坛:laowang.vip)
url: 'https://proapi.115.com/app/chrome/downurl?t='+tm,# l5 d$ C! J& _(欢迎访问老王论坛:laowang.vip)
headers: {
& r* e0 {2 t( i1 m" T' w 'Content-Type': 'application/x-www-form-urlencoded',
4 P% k' K1 a4 r1 Z4 l 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 115Browser/23.9.3.6'
6 \+ q9 Y1 _+ Q1 K+ O/ } },
5 c* [; V; K; Y5 D# C6 W6 G7 Q* N responseType: 'json',6 A4 P' A& S. y# F4 D2 u; O9 P(欢迎访问老王论坛:laowang.vip)
data: PostData({" Y6 M/ o6 o0 f6 L(欢迎访问老王论坛:laowang.vip)
data: encodeURIComponent(data)1 P/ P8 E6 ^$ Z' `% j(欢迎访问老王论坛:laowang.vip)
}),
; p: W& O7 G! d3 R4 u; t: m onload: function (r) {1 Q) W& w! w% h! W( q) R% n(欢迎访问老王论坛:laowang.vip)
if (r.status == 200) {
" J S: R# g2 P* B) H' } var download_info = r.response;9 \: E2 V. ?. q. V5 N(欢迎访问老王论坛:laowang.vip)
if (download_info.state && download_info.data) {
; U7 R; Z/ k9 J0 l; A try {" z. G% J! `1 ?( D& d2 l(欢迎访问老王论坛:laowang.vip)
var json = m115_decode(download_info.data,key);5 ]: h# {2 r: a5 L* ^: ]3 j(欢迎访问老王论坛:laowang.vip)
//console.log(json)- ?8 c0 t6 }! J! }% j6 P(欢迎访问老王论坛:laowang.vip)
var url = JSON.parse(json)[fileItem.id]['url']['url'];
4 n5 J2 y! ]) r; W4 \ //todo:不能下载的文件处理1 c: X4 N) t1 r& M$ G: C) ]) q(欢迎访问老王论坛:laowang.vip)
if (!url.startsWith("http://cdnfhnfdfs.115.com") && url.startsWith('http:///')) {' K2 P" N h2 X% Q(欢迎访问老王论坛:laowang.vip)
console.error(`error url:${url}`);
, K: U, T h6 j& q: N. G" N url = url.replace("http:///", "http://cdnfhnfdfs.115.com/")
5 C$ c8 q* X t6 _ }) |9 ?3 `8 K: c0 L4 ?3 y(欢迎访问老王论坛:laowang.vip)
4 ^5 i7 E; o) v% [8 |+ ], J ] console.log(url);0 ~: x- y' B) y T& B5 J! J C(欢迎访问老王论坛:laowang.vip)
var resp = r.responseHeaders
, E& h* \- {3 K/ l' T var setCookie = DeleteCookie(resp)
$ I: z4 F c' E* c3 m1 J) d var fileCookie = null;
. U& ?$ b( N( [ h% |; Y, i$ A if (setCookie) {5 Y H3 r& n' `9 Y, h(欢迎访问老王论坛:laowang.vip)
fileCookie = setCookie;
0 m# m1 q1 V# y& ]$ }: ?8 T }
: d. r# `7 ?! @. @& v1 t* d5 O+ D! q! W3 @2 C(欢迎访问老王论坛:laowang.vip)
GM_xmlhttpRequest({$ w! E) W' A3 k5 @6 C(欢迎访问老王论坛:laowang.vip)
method: "GET",* Z6 G7 A4 S6 {+ D(欢迎访问老王论坛:laowang.vip)
url: url,
* {4 [) l# S) h% k) a headers: {
1 g; f% P: X8 B; r9 { "Content-Type": "application/octet-stream",! C3 h K9 Y+ S$ t: C. R. h(欢迎访问老王论坛:laowang.vip)
"Cookie": fileCookie,8 b( A* z: J" h0 Z$ X6 R(欢迎访问老王论坛:laowang.vip)
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 115Browser/23.9.3.6'3 u$ G, v. U( h. q7 _% L# g' e(欢迎访问老王论坛:laowang.vip)
},6 E1 W5 K+ f( A; @4 Y4 [(欢迎访问老王论坛:laowang.vip)
responseType: 'arraybuffer',( R7 {# s7 ?6 x' ]( ](欢迎访问老王论坛:laowang.vip)
onload: function (response) {' A& F; X9 [- M \8 D3 J(欢迎访问老王论坛:laowang.vip)
if (response.status === 200) {- @6 s0 a5 k9 M3 p7 m5 l/ V(欢迎访问老王论坛:laowang.vip)
let str = utf8ArrayToStr(new Uint8Array(response.response));
8 b$ v( [4 u8 A0 O! F resolve({
* Q8 w. b5 v2 I( F8 p# L state: true," }- c: w6 m1 g8 ?2 I4 k(欢迎访问老王论坛:laowang.vip)
error: "",
8 y* p/ b0 a$ ]; g text: str
" t1 U/ j4 u+ x/ M });- q6 i7 Z' Z( R; w(欢迎访问老王论坛:laowang.vip)
} else {& r% Q/ X9 D6 p* W0 @4 {( |0 t* R! o(欢迎访问老王论坛:laowang.vip)
8 B7 b+ k* o4 q$ t( l) R# s(欢迎访问老王论坛:laowang.vip)
console.error(response);
% v- O2 V' c: S/ a7 }: A7 i9 O8 G4 y resolve({) ?7 P7 K% C. N$ J5 T v(欢迎访问老王论坛:laowang.vip)
state: false,# d- ^" y" g9 _7 P/ {(欢迎访问老王论坛:laowang.vip)
error: `response.status:${response.status}`,7 ~: b1 o4 \5 ?( R. z8 W(欢迎访问老王论坛:laowang.vip)
text: ""; v0 ]# o t. T4 V) h( z( K(欢迎访问老王论坛:laowang.vip)
});- g" F" e1 `, L0 F(欢迎访问老王论坛:laowang.vip)
* z4 [& L# C* q2 B9 A4 ]/ ?# \# Y }
* E4 u2 t. ?# E5 z
. D' U" B: I9 j" \ p },9 ^ J4 ?4 X! [ N I(欢迎访问老王论坛:laowang.vip)
onprogress: function (event) {: j, a" s' @; e+ U/ U0 \$ v; E(欢迎访问老王论坛:laowang.vip)
let textMsg = `${event.loaded} of ${event.total} bytes, ${(event.loaded/event.total).toFixed(4)*100}%`;9 I* n' G; }3 X |(欢迎访问老王论坛:laowang.vip)
console.log(textMsg);
8 j" f6 c; H5 r) d0 s+ A progressCallback(textMsg)9 c" r: b: g' j/ Z(欢迎访问老王论坛:laowang.vip)
}
( d9 W3 V: R+ |- o) B: m4 y6 V" D2 r7 @# {9 p& @(欢迎访问老王论坛:laowang.vip)
});' ~6 Y, s2 b4 n `. L; P* J2 z(欢迎访问老王论坛:laowang.vip)
} catch (error) {' `6 u Z2 A, F u(欢迎访问老王论坛:laowang.vip)
console.error(error);% m( U/ r0 L5 F- [0 \7 D(欢迎访问老王论坛:laowang.vip)
resolve({
2 U2 g! Q! H( n( J state: false,2 d$ p2 y3 j! r5 t2 T(欢迎访问老王论坛:laowang.vip)
error: `${error}`, ^. J. \. K" h& P' X8 L2 F; O) |' t(欢迎访问老王论坛:laowang.vip)
text: "" A$ O( M A( q' Q& u(欢迎访问老王论坛:laowang.vip)
});3 Y8 T: d8 n" P& V: `(欢迎访问老王论坛:laowang.vip)
7 E l# k& O/ x(欢迎访问老王论坛:laowang.vip)
}
2 e: {/ D0 y3 `. a6 m% c: R4 v } else {5 h" a+ b' ~! p: p R. v3 @ H$ R; Z- A: F(欢迎访问老王论坛:laowang.vip)
console.log(download_info);
; Q, y* J4 H! a5 X, u( Y& |( O resolve({+ [* T" W' M5 x. {(欢迎访问老王论坛:laowang.vip)
state: false, I% K4 M# ?% B/ ^$ o(欢迎访问老王论坛:laowang.vip)
error: download_info.msg,
6 u0 J6 v" w5 `! i" S text: ""
, B0 J( s: Q: C });2 q3 p0 |( Y5 w: [(欢迎访问老王论坛:laowang.vip)
}
- Y. q. Y" y/ \0 F' A* H+ ^7 }
5 n, k0 _) t3 X, t } else { r8 m) l* X7 e7 b, a4 ^1 ?(欢迎访问老王论坛:laowang.vip)
console.log("下载第一阶段")
2 y8 b8 Y- k: c$ ^5 ^* r; H& T console.error(response.response);. p& A4 V$ ]1 W* Q" F5 U(欢迎访问老王论坛:laowang.vip)
resolve({
4 J. [0 c; Q1 M7 I) g; ` state: false,
, Q# W# a$ J7 A2 @ error: `在下载中发生错误...${response.status}`,$ y8 Q- V6 V( k(欢迎访问老王论坛:laowang.vip)
text: ""
/ q D; P U! V; Z5 {7 i8 b });
- o/ R9 F' M0 Q' o }
2 Y3 X# e8 A8 t& q# X: J- |3 T }/ J! Y8 K7 |( s2 t! k(欢迎访问老王论坛:laowang.vip)
});; d% f& m+ o8 u% K0 ?(欢迎访问老王论坛:laowang.vip)
});
* j9 X8 A5 Z' P# A& @ U/ R. E return r;. v% {: |9 M/ f; `# t: {5 V& r(欢迎访问老王论坛:laowang.vip)
}
q! [$ N, t. _. o5 R6 J% h6 H8 X6 }5 z(欢迎访问老王论坛:laowang.vip)
//windows平台上限制的字符:/\|":*?<> 其他平台比windows宽泛一些5 L" q* d" l8 `(欢迎访问老王论坛:laowang.vip)
function repalceValidatedName(name) {
' w+ d2 m5 P& D" I! k return name.replace(/</g, '[')9 u4 Z' g" T- E1 X. W2 Q/ D(欢迎访问老王论坛:laowang.vip)
.replace(/>/g, ']')
9 I5 ]+ v7 l# w" c/ [' o( H: I .replace(/\|/g, '_')0 h6 v- z: [, `( e9 l/ g# M$ }+ u: @(欢迎访问老王论坛:laowang.vip)
.replace(/:/g, '_')
/ e+ P3 r2 q+ W+ S+ j$ Q .replace(/\//g, '_')4 s/ i! |0 s, T(欢迎访问老王论坛:laowang.vip)
.replace(/\\/g, '_'), n+ V4 j2 D- g5 x0 r7 Z: G(欢迎访问老王论坛:laowang.vip)
.replace(/\*/g, '_')9 W3 J0 n) a% w/ i( d0 l$ n2 s(欢迎访问老王论坛:laowang.vip)
.replace(/"/g, '\'')
8 E, ^6 t9 h+ P! d6 _4 g .replace(/\?/g, '_');" v4 ~! C- i$ O(欢迎访问老王论坛:laowang.vip)
}. k) g% G8 m/ g$ e5 v7 B2 d, k(欢迎访问老王论坛:laowang.vip)
//格式化sha1 链接, d; Y6 q2 q0 _& E7 I(欢迎访问老王论坛:laowang.vip)
//return type: {state:succeed,msg:""}
& j& y; J- i0 h8 m8 O8 ?$ s6 ^ // false:msg->出错信息4 E) i" G7 S: r2 I0 D. w+ ]2 m2 i(欢迎访问老王论坛:laowang.vip)
//true: msg->sha1链接
+ F, M2 A: h1 @: R2 Q function convertToSha1Link(fileItem, isSimpleFormat) {
6 P7 v" ?7 t3 m- h var succeed = false;
I$ M) I: p$ V* @& Y var msg = "格式生成失败!";
& k. z1 }2 c6 b* M7 S% I if (fileItem.name && fileItem.size && fileItem.sha1 && fileItem.preid) {
6 D( A) G! d, L7 V5 f5 _& P+ E var sha1Link = "115://" + repalceValidatedName(fileItem.name) + "|" + fileItem.size + "|" + fileItem.sha1 + "|" + fileItem.preid;$ G: g! ?# w4 H3 M(欢迎访问老王论坛:laowang.vip)
if (!isSimpleFormat) {' k0 {4 w( T% p5 l$ j/ y0 F9 Z7 h* j(欢迎访问老王论坛:laowang.vip)
if (fileItem.paths.length > 0) {
- Z8 p2 V1 m0 a4 J! M //console.log(fileItem.paths);% P( o% ^$ y" x5 I) U( a(欢迎访问老王论坛:laowang.vip)
//fix: v3.3 目录中的‘|’或者‘#’替换为‘/’,防止脚本导出再导入时破坏目录结构; B9 K7 e9 o. C2 T(欢迎访问老王论坛:laowang.vip)
//fix: v3.4 windows平台上不能限制的字符:/\|":*?<> 替换;去掉了老版本的#分隔符
r0 F) b/ ]0 U9 \3 R var paths = fileItem.paths.map(t => repalceValidatedName(t)).join('|');5 {% m, h: {3 W5 `: e4 }) e(欢迎访问老王论坛:laowang.vip)
msg = sha1Link + '|' + paths;3 o5 k; E/ M w# ^. I: }. L(欢迎访问老王论坛:laowang.vip)
} else {
$ {, l5 J8 |3 c9 q+ U/ x9 y! f1 c' J* R msg = sha1Link;
% h) \& W' S1 f- j( W }
) W; D$ H: h6 d } else {
' `9 R* _4 V6 |2 X( g" j3 t$ [ msg = sha1Link;5 v7 e3 F# L3 m' [# a" K0 v. U( w" b(欢迎访问老王论坛:laowang.vip)
}9 \* i( P9 X3 v* c$ A" V(欢迎访问老王论坛:laowang.vip)
9 d5 ]" ^0 F) K1 l9 O" C(欢迎访问老王论坛:laowang.vip)
succeed = true;
" U! I+ R: ]5 I: W5 m }
! `+ S6 Y! n8 {5 Q+ A: r# A4 B0 F- z( @; |+ W8 k- d: a$ t* c% x2 i; i6 }# N(欢迎访问老王论坛:laowang.vip)
return {
a1 |8 ^1 j# [. M4 K: I2 _/ Y state: succeed,
2 _9 K+ t$ v }* ?. v' k2 V" O5 S msg: msg9 d1 o2 i0 X$ |' `7 t(欢迎访问老王论坛:laowang.vip)
};. f% o. Y+ [" v9 u- K# C(欢迎访问老王论坛:laowang.vip)
}+ M- E& r/ n$ n+ Z6 V(欢迎访问老王论坛:laowang.vip)
( Q4 D1 ~9 v. c% T; j5 G // 从sha1link 转换为 FileItem5 B( G, d" ?6 `: w(欢迎访问老王论坛:laowang.vip)
//return type:{state:succeed,fileItem:{}}
, L g, {! V3 j+ r% c //true: fileItem, false:null( Y$ H) }; R7 M6 q7 y$ t(欢迎访问老王论坛:laowang.vip)
function convertFromSha1Link(sha1Link) {
# M+ ]4 x* I& n0 q var succeed = false;+ z# Q o# ^ d1 `, c! B* p(欢迎访问老王论坛:laowang.vip)
var item = {};
. K9 D) x" Y% |, V if (sha1Link) {
% B' V! q/ Q0 o% S, p9 d if (sha1Link.startsWith("115://")) {
1 n8 f2 y9 E+ S sha1Link = sha1Link.substring(6);8 T6 X. c; t1 K4 |; E! e0 j# t(欢迎访问老王论坛:laowang.vip)
}
7 r: M0 t+ D- N //v3.4 add 转存时,文件名、文件夹名替换非法字符0 h# R! B1 H" S% P- Q4 _6 Y: ](欢迎访问老王论坛:laowang.vip)
var infos = sha1Link.split('|');
' v8 [; j, X; o0 |# L if (infos.length >= 4) {
, y. A5 c. k( x `+ {1 j item.id = "";
( p9 D1 Z) V+ b C& E' y5 c item.pickCode = "";
* ~( h" I3 h# ]* V item.name = repalceValidatedName(infos[0]);
, ?0 j5 P p5 J* z item.size = infos[1];$ E6 S# b4 S6 u& G2 u- g5 X' x(欢迎访问老王论坛:laowang.vip)
item.sha1 = infos[2];+ h1 f* ^: U2 o(欢迎访问老王论坛:laowang.vip)
item.preid = infos[3];# q$ j; h' ~/ u- v6 T7 f2 I9 O3 ~(欢迎访问老王论坛:laowang.vip)
item.parentID = "";
2 \ V- o; ]: q item.paths = new Array();( _$ a9 E% u6 v6 [( L(欢迎访问老王论坛:laowang.vip)
if (infos.length > 4) {
. `/ N& p; M/ E- I( c! T5 c z //fix: v3.4 移除了此兼容,因为开放了#作为目录名
2 J8 A# ?: B9 C // if (infos.length == 5 && infos[4].includes('#')) {
+ z* h. O4 W4 m, t7 t0 l //兼容 #字符分割) c: A* E+ ], F; O! |3 w. p(欢迎访问老王论坛:laowang.vip)
' _6 m( w; u" y // item.paths = infos[4].split('#');
! ?) v5 ~' [; A. w //} else {
$ ?6 i: }! P. Z t% j item.paths = infos.slice(4).map(t => repalceValidatedName(t));
& [/ k( Z3 ?& F3 z. B* Y6 d9 ~ //}
- B$ k1 Z% P. _( C0 x! \9 |: | }8 j# o4 }1 n# i Y& u(欢迎访问老王论坛:laowang.vip)
item.extension = "";
9 v6 b+ ^' k0 E6 i$ H( b3 D! e item.formatedName = "";
& V! t" _9 h+ M9 u/ | succeed = true;
" e; {! a1 _: P2 T0 C }
' z0 p. s) s! u }
- c) U1 m# N! w3 X$ y; E0 [ {% s4 v: U8 }(欢迎访问老王论坛:laowang.vip)
return {
7 M0 U }' V" M6 ]4 T state: succeed,3 i: i% ~5 A- ~% ](欢迎访问老王论坛:laowang.vip)
fileItem: item
6 C) B- F2 a8 N4 K! ~ };& a) H/ C, H% Y# t# |(欢迎访问老王论坛:laowang.vip)
}. D' M" R+ \: M5 A' A; z- D# @3 x(欢迎访问老王论坛:laowang.vip)
+ ]6 b; U! h* c9 x
* I% ^5 a/ h2 K+ Q4 c; j" {/ t function createUploadFile(urlData, postData) {3 I* b$ q; m- `* Z0 f) T$ i$ a/ [(欢迎访问老王论坛:laowang.vip)
return new Promise((resolve, reject) => {
4 S; y5 J7 x! o" |5 U7 l- J* S: { GM_xmlhttpRequest({& R3 d4 u- \' { ~" Y(欢迎访问老王论坛:laowang.vip)
method: 'POST',
6 d% V! Y/ m+ U; m. E- N9 ^9 O5 q url: 'http://uplb.115.com/3.0/initupload.php?' + urlData,0 g H- \: u& Y: a(欢迎访问老王论坛:laowang.vip)
data: postData,* w: d5 G: W" r' R(欢迎访问老王论坛:laowang.vip)
responseType: 'json',7 x0 |2 Z8 {) c) {(欢迎访问老王论坛:laowang.vip)
headers: {9 P7 S5 R/ u9 V _(欢迎访问老王论坛:laowang.vip)
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',( d9 Y& R- s% j! m7 n. K(欢迎访问老王论坛:laowang.vip)
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 115Browser/25.0.0.3',
2 ^. X0 @3 H, B$ O* \7 \: ` //'Origin': 'https://115.com'
' b4 \/ {8 L3 I! R# g h },
+ y& f3 Z9 | D) A) D( G onload: function (response) {* n7 ~6 q. a Q(欢迎访问老王论坛:laowang.vip)
let data = {0 g2 T6 H1 G6 @ X4 ?' H(欢迎访问老王论坛:laowang.vip)
state: false,$ }9 J- ?4 z' U/ A" }(欢迎访问老王论坛:laowang.vip)
error: "",
1 l; { t8 ~& D& P/ U: W pickCode: ""+ j3 J* w* e* U& z(欢迎访问老王论坛:laowang.vip)
};
7 K4 S5 p' W; I% u6 \ if (response.status === 200 && response.response.status === 2) {
( o; E/ H( b7 h. m data.state = true;& B; F2 W& M: p8 U(欢迎访问老王论坛:laowang.vip)
data.pickCode = response.response.pickcode; M9 K! J( D" w% z, _, ]8 ]' s(欢迎访问老王论坛:laowang.vip)
} else {
9 o+ ~5 S# h K# U. E8 ] console.error(response);. F% _$ D7 G/ _9 {' ^# [$ i7 W(欢迎访问老王论坛:laowang.vip)
let error = "或许sha1链接不匹配(?)";5 y% B, l. e# O% t. i$ d' o(欢迎访问老王论坛:laowang.vip)
if (response.status === 405) {
; g' }: r2 u# o t error = "频繁请求,被115限制 ([!]立即停止,尝试停止操作半小时或者重新登录):" + response.statusText;
0 K7 G' h8 S2 |& \6 P0 u6 ` } else if (response.response && response.response.message) error = response.response.message;
3 L8 Q8 H$ Y. W3 d else if (response.response && response.response.statusmsg) error = "可能参数不正确(?):" + response.response.statusmsg;
( P3 H! O3 `/ y# J data.error = error;
6 d9 n$ o; ^! v" r& _8 @- W2 z4 ] }
" W$ Q; L/ k: A( `, Y# Y; k resolve(data);: o8 ]- A3 S, z(欢迎访问老王论坛:laowang.vip)
}* g5 \. ?9 w: Q(欢迎访问老王论坛:laowang.vip)
})
9 ^; ~4 ~6 C) V' U% x2 E0 u. O9 G3 Z1 k7 `$ n( v) w(欢迎访问老王论坛:laowang.vip)
});
- J4 F' ]& k% v; c/ Q }6 J3 z) b3 r; G! X) W/ @: b# `(欢迎访问老王论坛:laowang.vip)
* B+ V% x3 s7 z. j, x, z(欢迎访问老王论坛:laowang.vip)
//return:{state:false,error:"",fileItem:};
5 R6 j) T" G. @! v function uploadFile(targetFolder, fileItem, uploadInfo) {% i: p( S: k# b! H+ R(欢迎访问老王论坛:laowang.vip)
Y5 W3 f9 |( i3 v& ~(欢迎访问老王论坛:laowang.vip)
let fCid = `U_1_${targetFolder}`;# D; z: O# k E, o. X(欢迎访问老王论坛:laowang.vip)
let appVersion = "25.0.0.3";% d6 ^! m9 D* P4 d4 p( g3 ?(欢迎访问老王论坛:laowang.vip)
const secret = "Qclm8MGWUv59TnrR0XPg"
' N' S' e1 w ^5 P2 B$ z. z
, B. ~) u7 ~$ l let time = (new Date()).getTime();* u- V+ o) d& ^) k# D7 A$ u(欢迎访问老王论坛:laowang.vip)
let ts = Math.floor(time / 1000);; N4 F& f! o4 m- A8 F(欢迎访问老王论坛:laowang.vip)
9 E( v9 w4 Z3 W k# s# b( W! W(欢迎访问老王论坛:laowang.vip)
let uploadToken = md5(`${secret}${fileItem.sha1}${fileItem.size}${fileItem.preid}${uploadInfo.user_id}${ts}${md5(uploadInfo.user_id)}${appVersion}`). a# y6 `8 G4 t2 U(欢迎访问老王论坛:laowang.vip)
- R" p, d) ]8 Q: R0 h$ c(欢迎访问老王论坛:laowang.vip)
let urlData = UrlData({
; o/ r2 m- o" U! x2 R' G3 }* ]. j isp: 0,: ^2 s( x, D, D. e6 z(欢迎访问老王论坛:laowang.vip)
appid: 0,4 _. [& @4 G+ Y, x) `" n* y(欢迎访问老王论坛:laowang.vip)
topupload: 0,
8 z% ^: k' f. T% |# X0 x, ] rt: 0,
9 Z0 K$ j6 g8 y) x* u- i0 ~/ k& q appversion: appVersion,
6 s" @* a8 {! ] format: 'json',
+ C/ x! ^ y; }: C4 d5 @1 d. |' _ sig: GetSig(uploadInfo.user_id, fileItem.sha1, fCid, uploadInfo.userkey),
% u# m4 Y: u* i! {* k( p t: ts,
4 X# h9 ^6 r1 n6 h% R: v1 X' I token: uploadToken; A/ `9 b* u% y+ Z(欢迎访问老王论坛:laowang.vip)
});( E" O# I# B" [: ~, H% Y- H3 f(欢迎访问老王论坛:laowang.vip)
1 I; R/ `' V' W x. |(欢迎访问老王论坛:laowang.vip)
7 L8 {3 w4 o0 \% d/ b let postData = PostData({' q! E9 b: Z1 z# i(欢迎访问老王论坛:laowang.vip)
preid: fileItem.preid,4 Z3 j0 @3 e! v0 w# ^, Q0 m" N(欢迎访问老王论坛:laowang.vip)
fileid: fileItem.sha1,1 C' h# Z' _: R* ~# m(欢迎访问老王论坛:laowang.vip)
quickid: fileItem.sha1,
( [" |( s7 x' r) [- U app_ver: appVersion,# v# [2 k1 N, L(欢迎访问老王论坛:laowang.vip)
filename: encodeURIComponent(fileItem.formatedName),& o- h! C* n+ \" K(欢迎访问老王论坛:laowang.vip)
filesize: fileItem.size, Q( g+ `9 H$ ]" r1 R(欢迎访问老王论坛:laowang.vip)
exif: '',( I; s! N: r. M3 L' }! ?- m(欢迎访问老王论坛:laowang.vip)
target: fCid,
0 G, o$ s# _' p# o+ r! V2 N. i+ z userid: uploadInfo.user_id
; G" B8 I/ g1 Z! N
+ c) v" y' v/ G( f; x- `' } });
8 l u# Q I1 {2 }
2 m; i1 O( a- Q M' _3 Q! X const r = createUploadFile(urlData, postData);/ l+ k* R+ X2 v, f- J(欢迎访问老王论坛:laowang.vip)
! e& i. |( @ x' c( q8 D3 }(欢迎访问老王论坛:laowang.vip)
const x = r.then(t => {
3 R- R# }' F$ h2 E return new Promise((resole, reject) => {
( k% }; W" g5 T% w2 K, L* n) r3 t i0 u fileItem.state = t.state;
6 b- C; Q8 j4 \& `& B fileItem.pickCode = t.pickCode;
. A' ?4 H( E) ?3 _ resole({/ P6 S4 i) j0 X(欢迎访问老王论坛:laowang.vip)
state: t.state,4 U: r: o( }- ~" }: t, @. w(欢迎访问老王论坛:laowang.vip)
error: t.error,
; U& E j1 b$ n& O; j fileItem: fileItem
2 g s- D @& z });) p* X/ W- @% Z: S6 N$ G(欢迎访问老王论坛:laowang.vip)
})% a% Y9 f' Q% h6 o- D' d(欢迎访问老王论坛:laowang.vip)
});3 a2 X3 s4 g. ~$ f* m% C(欢迎访问老王论坛:laowang.vip)
9 k: M5 ], w$ l0 c: E2 R1 O/ J(欢迎访问老王论坛:laowang.vip)
return x;
6 Q% n1 L8 Q3 [: r }$ P# Q4 _/ c( K(欢迎访问老王论坛:laowang.vip)
' O Y7 ]0 e& |4 D- {9 i3 o2 B function setListView() {" ?) j# G' g/ l4 \& B# e(欢迎访问老王论坛:laowang.vip)
GM_xmlhttpRequest({* m/ U3 `! e; m) y' C2 E(欢迎访问老王论坛:laowang.vip)
method: "POST",: X( J; E. g5 [(欢迎访问老王论坛:laowang.vip)
url: 'https://115.com/?ct=user_setting&ac=set',
4 B6 p+ F1 q! {4 h: z headers: {9 E) n* n3 C4 a" ^! K, h(欢迎访问老王论坛:laowang.vip)
'Content-Type': 'application/x-www-form-urlencoded'( s& [0 ^7 y- n$ R(欢迎访问老王论坛:laowang.vip)
},# j% e. K! w5 o: g- b(欢迎访问老王论坛:laowang.vip)
data: PostData({/ I a+ w2 t$ J+ w' o(欢迎访问老王论坛:laowang.vip)
setting: '{"view_file":"list"}'6 y8 M+ t0 {# @(欢迎访问老王论坛:laowang.vip)
}),
( y* O p- T3 t% z responseType: 'json',
I9 `8 r* B0 v& Q onload: function (response) {. A% w4 K% N- W(欢迎访问老王论坛:laowang.vip)
if (response.status === 200) {}' S1 J ~ s6 W/ ?(欢迎访问老王论坛:laowang.vip)
}
% `# C. ~# o1 O% ~ });6 {9 z- R. h( w( P* |+ F(欢迎访问老王论坛:laowang.vip)
}1 S+ b8 S$ o! X9 Y7 L# o(欢迎访问老王论坛:laowang.vip)
1 c7 D3 T2 h4 o' Y) [ //#endregion
1 O" L' B/ R7 }/ {! u9 `7 I) `, a- R2 B) C4 Q) L(欢迎访问老王论坛:laowang.vip)
* Q6 A" P3 Q `+ F3 l(欢迎访问老王论坛:laowang.vip)
# Y/ G* V7 E M U4 f( y(欢迎访问老王论坛:laowang.vip)
async function updateParentID(cid, cname, thisLevel, maxLevel, items, sleepTime, createFolderCallback) {/ H1 X1 c, |" ? H(欢迎访问老王论坛:laowang.vip)
if (thisLevel == maxLevel) return;; ?: ^& I4 l7 |: W, z" n(欢迎访问老王论坛:laowang.vip)
let files = new Array();
2 ]% y3 c6 p9 N, M9 D# S) I if (thisLevel == 0) {- a" \- z$ ~" M- X- }(欢迎访问老王论坛:laowang.vip)
files = items;
0 N) G! c! c7 k } else {
T" B/ n1 m# ` files = items.filter(f => f.paths[thisLevel - 1] == cname);
4 O$ z, k7 W2 X. P3 N1 v }
8 c3 y* m+ k* d1 O
- s& g8 i: N! h# }6 D! y let childFiles = files.filter(q => q.paths.length == thisLevel);
+ S8 E% j- m% V( T3 l let childFolderNames = files.map(q => q.paths[thisLevel]).filter(q => q).filter((x, i, a) => a.indexOf(x) == i)
' m- y; l" b' C9 _+ y
|& N& @3 d* v0 j" Z$ y, J$ }# y console.log(`childFiles :${childFiles.length}`)
7 D' M K, ~ A7 g9 } //upload file:$ p4 G2 z8 @9 {6 S0 J9 ~$ t: x(欢迎访问老王论坛:laowang.vip)
for (let file of childFiles) {
/ |8 h+ F `0 G+ z1 |6 n- D4 Z file.parentID = cid;
q1 f! l/ ^) I% x //console.log(file.parentID);
% x$ l4 ?9 G3 A' ]4 Y' S* e$ _ }
3 c# A% V/ U, ]/ m: d; f) S6 A/ ?0 d) y$ T4 `6 x R: J! @(欢迎访问老王论坛:laowang.vip)
//create folder:
, ]! i1 |) ~3 a/ r for (let folderName of childFolderNames) {" O% w/ c, z" L1 N0 a3 {* F% f(欢迎访问老王论坛:laowang.vip)
' ^0 d0 h! C5 _- F. F let r = await createRootFolder(cid, folderName, 10, sleepTime, callbackMsg => {
$ M. `4 {. E1 ^! x: S. W createFolderCallback && createFolderCallback({
) h2 y- |3 p; B. d5 Q7 E( _6 u6 D state: true,! H/ g" \. d3 w(欢迎访问老王论坛:laowang.vip)
folderName: folderName,
0 o; ?& `& `) l3 P error: callbackMsg F2 k& a$ |+ a D: b. t(欢迎访问老王论坛:laowang.vip)
});
0 c+ J3 K. W1 r: l" v }): i Q- r2 l' t) i( s(欢迎访问老王论坛:laowang.vip)
: L" c' _6 y8 u. \7 ~) ~5 ~ //fix: v3.4 有同名文件夹,处理跟根目录相同处理。如果超过重试次数的逻辑未处理
- U) i5 D: x( R. F; M4 y* K: v //let r = await addFolder(cid, folderName);" i) c: ^. i- s4 x1 B9 `(欢迎访问老王论坛:laowang.vip)
console.log(r);
5 d- p2 I6 N$ ]+ z s2 f% l; U2 c+ V6 K4 l0 r3 ] j(欢迎访问老王论坛:laowang.vip)
if (r.state) {$ U8 K9 l( U/ P1 g5 y9 x9 E(欢迎访问老王论坛:laowang.vip)
await updateParentID(r.cid, folderName, thisLevel + 1, maxLevel, files, createFolderCallback);
" G$ `. K9 ^5 a. d } else { //ui 目录创建失败5 p( W6 H8 m6 {9 ^6 Q(欢迎访问老王论坛:laowang.vip)
//todo: !!!尚未解决这个& |1 q h& D- T4 f) L* V- i(欢迎访问老王论坛:laowang.vip)
console.error(`updateParentID 如果出现这个,说明重复名字的文件夹也太太太多了`);7 T8 E4 ^+ r8 z- F(欢迎访问老王论坛:laowang.vip)
}1 b( h- Z5 K& y" B' @- e& \(欢迎访问老王论坛:laowang.vip)
6 u& r% p# j6 @0 L* f( O3 }% X(欢迎访问老王论坛:laowang.vip)
await delay(sleepTime);& Y+ l1 M; D( o6 ?, E; O% g(欢迎访问老王论坛:laowang.vip)
}
( y- A; o) ~3 z5 U4 B
V, D3 F& X) g& _# S# [ }
- L2 c7 W0 n [& M# t
! V/ U, U: N. b7 T function internelFormat(folder, files, folderParents) {6 G3 H k4 h& e& V# f! ]9 \(欢迎访问老王论坛:laowang.vip)
var paths = folderParents.slice(0);
0 G/ O1 F( X" P0 k. p* Z7 i& @0 [. N paths.push(folder.dir_name);
/ {1 u" l+ ` L* g4 O: J& r6 [* T) o3 f8 _+ v- |3 c# `(欢迎访问老王论坛:laowang.vip)
for (var file of folder.files) {7 P) k3 q3 b# A4 c$ s$ u) z* f5 s(欢迎访问老王论坛:laowang.vip)
1 Y/ W' e) Z# I(欢迎访问老王论坛:laowang.vip)
var link = file + '|' + paths.slice(1).join('|');* I4 s T+ V: k- A(欢迎访问老王论坛:laowang.vip)
files.push(link);
) U, S8 e: t' ^% ?+ L9 `6 Q }+ l+ z5 ?9 n9 e$ U(欢迎访问老王论坛:laowang.vip)
7 t# X; V( p: g0 Z7 g/ z(欢迎访问老王论坛:laowang.vip)
for (var childFolder of folder.dirs) {
B+ K# ~4 H/ Q8 ]) f# \; T) @
\5 B. { p) N internelFormat(childFolder, files, paths)
8 s0 m0 g8 A& d' n, Q/ l8 M1 T }
/ _3 a3 E' Q8 a D6 m }3 @% r! h2 K- l9 l6 _* N0 ~' D(欢迎访问老王论坛:laowang.vip)
- F0 [ [* S$ a( B2 a/ \(欢迎访问老王论坛:laowang.vip)
//{state:true,error:"",text:""}
% K1 c4 J0 d/ _, R, H function formatJsonToCommon(text) {
7 O) e" L5 \ K) ^ K9 \( g/ X" [2 |) k5 S(欢迎访问老王论坛:laowang.vip)
try {
1 C# d0 f( d8 C( o var root = JSON.parse(text);3 ]# W6 T' W+ _9 R(欢迎访问老王论坛:laowang.vip)
console.log(root);
; n6 n5 Z' @0 L: V0 y, |8 L var files = new Array();2 b C0 L. x1 Q! {(欢迎访问老王论坛:laowang.vip)
var paths = new Array();
; p8 X$ b+ L. P# s2 N8 ` internelFormat(root, files, paths);
1 ^+ r; F) @9 F c: o$ ?, S1 S- z/ j: x8 Q% s) V( K; X(欢迎访问老王论坛:laowang.vip)
return {
* ?0 U" Z) ^4 j" n8 H6 B state: true,: t( } g0 }+ y(欢迎访问老王论坛:laowang.vip)
error: "",) g8 F& P: G0 G/ R/ E1 D- g2 \3 E(欢迎访问老王论坛:laowang.vip)
text: files.join('\r\n'),+ c6 C* x7 Z* O6 f" E" @(欢迎访问老王论坛:laowang.vip)
rootFolder: root.dir_name
' a4 t) V, m5 \* o: u# W };* k2 E. o, ?- H6 l1 A6 _(欢迎访问老王论坛:laowang.vip)
} catch (error) {
6 l" u% h% F% F/ Y4 r* E4 l3 v return {! }+ x5 K6 B+ p- X) M5 N& s(欢迎访问老王论坛:laowang.vip)
state: false,
$ s8 T2 I- H) y v7 s: S, R error: error,
$ H& }% D$ G! [4 C text: ""& p" X" B" i& z) J! K; _ [4 @2 X(欢迎访问老王论坛:laowang.vip)
};1 c# K; i6 g. `% M$ y+ C2 L' I(欢迎访问老王论坛:laowang.vip)
}; }' b7 j$ s- a(欢迎访问老王论坛:laowang.vip)
7 E1 Z$ s) S2 A! Y- j(欢迎访问老王论坛:laowang.vip)
}
& E1 G" i# H/ G" M0 {, e0 ~( l& Z# g& K' K(欢迎访问老王论坛:laowang.vip)
//解析inline text sha1 links,并根据配置设置分隔符;返回FileArray
4 Z: O" ^4 O0 t6 N% X! k( I function parseSha1LinksToFileArray(text, nameSeparator, errorCallback) {
7 P& x' j* m- h# v B4 \8 }8 G let textLines = text.split(/\r?\n/);' ]" u0 ^ ?4 o; g3 w" l(欢迎访问老王论坛:laowang.vip)
; o0 m4 ?1 U- s. S8 Y(欢迎访问老王论坛:laowang.vip)
let files = new Array();! C! M' z- G: _9 s4 ](欢迎访问老王论坛:laowang.vip)
for (let line of textLines) {
" y7 Y- d9 I N0 U6 O: G( o3 |7 U let fLine = line.trim();
/ Z8 r( h' O4 w6 Y# n8 I& J if (!fLine) continue;) J m0 _6 x) ?0 }0 t) Z2 I(欢迎访问老王论坛:laowang.vip)
let r = convertFromSha1Link(fLine);! o! g/ h% K7 j- Z; \! c(欢迎访问老王论坛:laowang.vip)
if (r.state) {
2 U+ q4 y1 P" m7 j$ ~4 r let nameStrings = r.fileItem.name.split(".");
! y% q# d% z6 ^) n. p) T0 p( ?% ^ let extension = nameStrings.pop();
# L. P5 Q: I. V. o3 N" q5 }3 L; d r.fileItem.extension = extension;9 U ^* L- P) A& k(欢迎访问老王论坛:laowang.vip)
//根据配置重新设置文件名6 X9 t+ k8 {, K0 S(欢迎访问老王论坛:laowang.vip)
if (nameSeparator) {
+ k1 u; S2 X/ @ //使用emoutils.js库来分割,带有emoji的文件名! _2 o2 ]) V5 r6 V( o(欢迎访问老王论坛:laowang.vip)
let fileName = emojiUtils.toArray(nameStrings.join('.')).map(c => c + nameSeparator).join("").slice(0, -1);/ Y O0 O0 ~, t; V6 ?(欢迎访问老王论坛:laowang.vip)
r.fileItem.formatedName = fileName + "." + extension;
r. m3 m, x; u. O1 T } else {& V) I* D7 W& |9 ~(欢迎访问老王论坛:laowang.vip)
r.fileItem.formatedName = r.fileItem.name;
- ^- u6 ~% V: D% V: ]- z }
; q: L9 x( N2 O" V% @# {4 C, B files.push(r.fileItem);
( t( X5 X# j# S" H8 X% y } else {' E _6 d6 V8 h3 F% f0 S2 P, C(欢迎访问老王论坛:laowang.vip)
errorCallback && errorCallback(`${fLine} 格式错误?`);& e" W1 {- O. j8 S5 t! X. T(欢迎访问老王论坛:laowang.vip)
}
2 ^6 v* |$ y$ p0 s7 F3 I' V
0 G- M7 x: b9 J! r7 \: v f: q }
! y+ `% G2 Q0 d% w$ R) ?5 T. E9 M4 a, e& Q/ V( f# r(欢迎访问老王论坛:laowang.vip)
return files;( P0 O2 L# h1 C; s+ b(欢迎访问老王论坛:laowang.vip)
}3 z( G ~% u. t(欢迎访问老王论坛:laowang.vip)
" n9 i# @" R7 x' U6 N //fix: v3.4 时间日期中含有"/",":"导致目录或者文件下载失败
: x% A7 M% B% y6 A8 U function getCurrentTimeString() {. o( W0 A, V" H1 M8 A6 w& b: A8 M, D(欢迎访问老王论坛:laowang.vip)
let time = new Date();0 W# N" m; K+ J! j(欢迎访问老王论坛:laowang.vip)
let timeString = `${time.toLocaleString()} (${time.getMilliseconds()})`;; m9 t& C1 ?! u- ^(欢迎访问老王论坛:laowang.vip)
return timeString.replace(/\//g, ".").replace(/:/g, ".")
+ i9 b5 ?- n+ D& R4 ^2 k }4 Q$ {# {* l/ y, v; X3 p0 s(欢迎访问老王论坛:laowang.vip)
0 K% }/ j% A g6 M- a$ f //在targetCid下创建目录,成功则返回新目录cid,否则返回原cid;返回’-1‘,target已经被移除或者删除
7 z4 ?4 Y* \1 T+ P, |1 _ async function createRootFolder(targetCid, folderName, retryTimes, sleepTime, processCallback) {( K& b" ]3 V( g9 d2 Y5 e: ~(欢迎访问老王论坛:laowang.vip)
let cid = targetCid;
( N6 d% @! _+ }6 x& R/ I let newFolderName = folderName;
; M5 l8 j3 M! z( y n" v, k, V: V# d1 `) k( C(欢迎访问老王论坛:laowang.vip)
if (folderName == "") {
4 r, Y) m3 R, P9 w* K+ B5 U+ B4 M( G! D5 W, d(欢迎访问老王论坛:laowang.vip)
newFolderName = `auto_create@${getCurrentTimeString()}`;9 p) s, a! s9 J; q(欢迎访问老王论坛:laowang.vip)
}' p' Q( P4 Y D( ~(欢迎访问老王论坛:laowang.vip)
" v$ v$ J1 e4 d, X- a* }- G for (let i = 0; i < retryTimes; i++) {
6 {# D. O6 ?3 u5 }
) F" l( w+ }1 b1 S/ H, ?/ a if (i != 0) {" n1 @$ }5 X! n3 N2 v(欢迎访问老王论坛:laowang.vip)
" N. j+ a* P$ ~7 B. \9 x$ L) H newFolderName = `${folderName==""?"auto_create":folderName}@${getCurrentTimeString()}`;
- Y" Y7 m; X+ x }
& Y/ i$ Z. j$ p0 t6 S, j* f* Q
% G( J5 p% [" _. L7 C processCallback && processCallback(`正在自动创建目录${newFolderName}...`);
( t" u/ E$ l! Z Z" n- P0 m let tr = await addFolder(targetCid, newFolderName);; B% D" `5 b! P7 ~. X4 t, k) E(欢迎访问老王论坛:laowang.vip)
if (tr.state) {
' q) L4 C3 X& V; k! ^, d: n6 V cid = tr.cid;- b# w6 F* k) p/ Q(欢迎访问老王论坛:laowang.vip)
processCallback && processCallback(`自动创建目录${newFolderName}成功!`);1 M! f4 b: y5 ]3 f(欢迎访问老王论坛:laowang.vip)
break;
8 J7 ~7 y$ H+ p, l4 P2 D) x. Z/ k } else {
2 b" `$ _9 L3 z- y, D* j
2 S1 D6 ^. }, |, u8 N processCallback && processCallback(`自动创建目录${newFolderName}失败!原因:${tr.error},将自动尝试新的名字...`);
% ~# M8 q0 {; ?2 M if (tr.error.includes('云端目录不存在') || tr.error.includes('文件不存在或已删除')) {
) Q& P& O/ V2 q! r. v/ p cid = '-1'; //父目录不存在时的提示( y/ {9 Q$ y5 K9 i6 \# H(欢迎访问老王论坛:laowang.vip)
break;" N \8 J/ X% u0 Y(欢迎访问老王论坛:laowang.vip)
}
# w& Q* d( k8 X U; p, C await delay(sleepTime);
: V9 s9 n# Z) a: I }
; k$ g- J$ \/ l- t( {; U }
; x+ G5 x9 p& R
2 u% P/ U L% k3 a" V' u let state = cid != '-1';
, E: A. y& d: {8 o5 Q5 m; I let error = state ? "" : "云端目录之前已经删除,请重新选择保存位置!"
+ K. l4 W" Z- G/ g0 [( C/ L& c //todo:父目录不存在时的提示
9 C7 D1 y4 f! x; L return {
! |$ V% t% G: J$ u- |0 { cid: cid,
1 _+ m( ]8 g) G3 L0 e folderName: newFolderName,
" w) p7 H/ m& `. N state: state,9 h$ Q1 C/ f+ C5 w(欢迎访问老王论坛:laowang.vip)
error: error
1 v# g) i. R+ E5 `9 q };
( h' B2 M: T9 C0 i+ e& d0 h, r }
" B* B! k7 [0 z2 D* }# p! @4 o9 u3 K) N3 K9 j! u(欢迎访问老王论坛:laowang.vip)
function uploadFileWithTimeOut(timeOut, fileParentID, file, uploadInfo) {3 K w. Q- u' {% R(欢迎访问老王论坛:laowang.vip)
console.log('uploadFileWithTimeOut')7 l) \( ^$ k9 m3 H9 k% g# p( L* c(欢迎访问老王论坛:laowang.vip)
let to = delay(timeOut).then(t => {
+ F7 a" d3 U0 B8 w0 A return {
# s' }& S0 t* Y2 F# F state: false,& F1 I4 f# q) m6 y, _+ P(欢迎访问老王论坛:laowang.vip)
error: `等待上传结果超时,此乃警告!成功与否,看最后统计结果!`,
/ n! X# ?$ L* h* s# V fileItem: file
3 [* v* C0 V7 j& {1 s }
" [+ P$ k# G: [4 ~. Q. k$ e });% x0 y$ X/ v7 C, D2 a(欢迎访问老王论坛:laowang.vip)
let up = uploadFile(fileParentID, file, uploadInfo);7 V; f1 G3 f# c( ^- t(欢迎访问老王论坛:laowang.vip)
$ }! ~; j- u T$ I- P return Promise.race([to, up]);# d3 ~& P ?# G" k U T# `(欢迎访问老王论坛:laowang.vip)
}% s1 j3 T7 L# b$ t& r(欢迎访问老王论坛:laowang.vip)
) o) }" a$ n4 Z }( \ I$ w- J6 L# P: l, R+ X8 W/ W* f9 x2 }) N' W" B(欢迎访问老王论坛:laowang.vip)
& Y2 D I5 Y5 ?' g$ B1 l# V! I: X async function processUpload(allFiles, workingNumber, sleepTime, resultCallback) {% n' q' Q0 a3 s) l4 ^ `1 o(欢迎访问老王论坛:laowang.vip)
let fileArray = allFiles.filter(q => !q.state);: u$ D) A o! O4 }(欢迎访问老王论坛:laowang.vip)
let index = 1;
+ {$ {) |& k2 L ^' f4 y let fileLength = allFiles.length;
! s( {- B- p0 Y3 o8 o# S/ W- A let completed = fileLength - fileArray.length;
$ w2 ~. K$ m. W- b let promisArray = new Array();2 P; c7 R: v1 e1 ?# ~: H0 J(欢迎访问老王论坛:laowang.vip)
let uploadInfo = await getUploadInfo(); f* `$ x x X1 b(欢迎访问老王论坛:laowang.vip)
let msg;
- I8 e1 j& i; J for (let file of fileArray) {# S9 i3 _. @6 C& L; x9 `7 n0 B- r(欢迎访问老王论坛:laowang.vip)
if (getTaskCancelFlag()) {1 X& _# w* }4 g; Z(欢迎访问老王论坛:laowang.vip)
console.log("转存取消");
8 }1 Z) w5 Z$ f Z& Y //postSha1Messgae(createMessage(MessageType.PROCESSING, "已取消,正在等待进行中的任务结束..."));$ }! [. W$ f k8 ]$ f$ [(欢迎访问老王论坛:laowang.vip)
break;5 y# e! U& r" N# U1 X# c9 R(欢迎访问老王论坛:laowang.vip)
}
9 ^' `5 u0 x D, R! n& A console.log(file);
7 P9 c1 N6 [5 S4 a# {& h) m5 u- }/ _) r9 W9 v* d0 {( n' T. b( F/ y(欢迎访问老王论坛:laowang.vip)
//let r = uploadFile(file.parentID, file, uploadInfo).then(t => {0 K( m: g4 A2 {# X; v- q/ Z, s l(欢迎访问老王论坛:laowang.vip)
let r = uploadFileWithTimeOut(8000, file.parentID, file, uploadInfo).then(t => {! W/ l2 b8 |+ U- K3 |* F- f! N8 A7 e(欢迎访问老王论坛:laowang.vip)
completed = completed + 1;5 w' \2 p7 O; _4 ?(欢迎访问老王论坛:laowang.vip)
if (t.state) {* z5 Z. s8 `5 D* P) k(欢迎访问老王论坛:laowang.vip)
msg = `<div align="right"><b>${completed}</b> | <b>${fileLength}</b></div><hr>【 <b>${t.fileItem.name}</b> 】上传成功.`;
) r: V0 W% O+ o6 P } else {7 }* f( P* s5 r(欢迎访问老王论坛:laowang.vip)
let uploadError = `【 <b>${t.fileItem.name}</b> 】: ${t.error}`;
7 Y4 W7 V* K9 @- _6 |" M4 l- l; Y resultCallback && resultCallback({' x! W1 q7 U! c; {(欢迎访问老王论坛:laowang.vip)
state: false,
y- C/ i$ G5 M) o msg: uploadError
* U2 Z2 {% ?0 x3 L# g });
2 d! H& G1 m3 Z) Y! ? msg = `<div align="right"><b>${completed}</b> | <b>${fileLength}</b></div><hr>${uploadError}`;
% C) _- n* t. a. O0 X7 E }9 z% o- G7 C# f4 [/ h c(欢迎访问老王论坛:laowang.vip)
resultCallback && resultCallback({- y, c" u/ ^4 c* s(欢迎访问老王论坛:laowang.vip)
state: true,! Q* }7 o5 R5 @; ]% |* ^$ z(欢迎访问老王论坛:laowang.vip)
msg: msg/ J& Y- K4 _1 I( b6 B(欢迎访问老王论坛:laowang.vip)
});
8 ]3 p) J+ k. e2 S5 c });8 ]4 e8 g% J) f; F2 S) m: ]+ ]! d+ H0 G(欢迎访问老王论坛:laowang.vip)
) s& a& Q- p- i. X6 Q9 P promisArray.push(r);
) ?* E4 F4 i* |9 H: X& S* U/ q; J(欢迎访问老王论坛:laowang.vip)
if (index % workingNumber == 0) {* d8 \; @" w* E6 y" d( [! i& L(欢迎访问老王论坛:laowang.vip)
await delay(sleepTime);
% O: k/ E: |* n }
W2 K4 Q1 F \9 o4 M$ w u) d7 o- r' l" h( O* c(欢迎访问老王论坛:laowang.vip)
if (index % 128 == 0) {
+ W" i; f, L3 e5 T: ? X- \# O await Promise.all(promisArray);1 C1 ~. a. w- l, c( Z# M(欢迎访问老王论坛:laowang.vip)
let seconds = 3; {0 V8 R# l! I* i* [# v(欢迎访问老王论坛:laowang.vip)
for (let i = 0; i < seconds; i++) {3 v7 K2 ]# H- N% c! x(欢迎访问老王论坛:laowang.vip)
resultCallback && resultCallback({
2 o1 f1 d# h, ^+ j$ H" ?9 [ t$ L state: true,- N4 E D* {* L! I' B' Z( A(欢迎访问老王论坛:laowang.vip)
msg: `防止115服务器限制,暂停发包。<br><br>${seconds - i}秒后继续....`
, L! M1 H" r! {- r8 M9 L } });
% s: w1 `/ s" p await delay(1000);
0 S7 p4 }5 v. V/ R2 m" ~$ R }6 B" W- {; k' p. v' @4 l(欢迎访问老王论坛:laowang.vip)
promisArray = new Array();
8 {( @ u1 |4 { }/ Q: \# O! F- [8 q/ H: f(欢迎访问老王论坛:laowang.vip)
index = index + 1;
+ H0 w5 ]: _' p }
; N: b+ u% [ z+ `! Z5 Q2 v
2 W" \# @$ a' e# W% B- I await delay(500);
7 {( W0 N4 o! n8 S! `5 u; ~ await Promise.all(promisArray);
3 M0 z: I' D# N/ r6 K3 f! p5 u f& Q+ O% x7 e; K(欢迎访问老王论坛:laowang.vip)
return fileArray;
! [, z. @9 n, J# p0 }' F3 J" a }2 J! h4 ]# w7 B% I( r& ]" ^(欢迎访问老王论坛:laowang.vip)
8 i0 a1 h9 K% t(欢迎访问老王论坛:laowang.vip)
2 o. _2 U) {5 r/ D" t // v3.3 转存时获取文件从历史上传中获取,如果文件夹众多,此方案速度优势明显,但不允许多页面操作
# x3 Q5 |' i: M+ {& h3 b9 b$ B async function processRenameByUsingHistory(files, separator, sleepTime, resultCallback) {
% u4 e" ?: z; h' M. h; b9 L
3 m6 A" S: l: q q$ a let history = await getLastUploadFiles(files.length, sleepTime, t => {1 [; N7 }, ]+ N+ ](欢迎访问老王论坛:laowang.vip)
resultCallback({/ {2 d8 G& p5 I(欢迎访问老王论坛:laowang.vip)
state: true,
: Y4 q$ R3 K; k/ ]+ f& ~ msg: t' F1 u* C+ L9 T(欢迎访问老王论坛:laowang.vip)
});4 H' E7 f9 Q6 J- O9 s- f ^# k(欢迎访问老王论坛:laowang.vip)
});
' }' ~8 L+ Y' y
! N% M7 t5 O$ { resultCallback({
# a, L% ?( p' ~7 j% H: l3 x$ { state: true,4 a8 |) L" \8 h1 W# m2 X(欢迎访问老王论坛:laowang.vip)
msg: "正在等待重命名...如果文件较多,请等待;或者停止,等以后手动操作去除分隔符。"
& t. r. P6 M6 o4 f; H" B });
" Z3 `9 b p- d# |, [% R) t+ j //fix: v3.3.1 修复含有重复文件的时候,未所有完成重命名的bug" B& [8 ?8 f8 r(欢迎访问老王论坛:laowang.vip)
history.forEach(q => q.isMarked = false);
( _! G3 a& l6 U. K' o for (const file of files) {7 ]' x) C6 i2 O' d(欢迎访问老王论坛:laowang.vip)
//console.log("file")0 k+ Y7 L% v/ G. B(欢迎访问老王论坛:laowang.vip)
//console.log(file)
) ~8 m i1 A) x/ z& v; ?8 A% } let thisFile = history.find(q => q.sha1 == file.sha1 && q.parentID == file.parentID && q.name == file.formatedName && !q.isMarked);$ I! p2 J' j: W" i; r9 ]8 K& G$ W7 p(欢迎访问老王论坛:laowang.vip)
//console.log("thisFile")
% s1 K: }- b, P4 o; ` k8 v1 q: i$ | //console.log(thisFile)
# ]8 D" ~ _# o2 i9 d4 b; `$ n9 ? if (thisFile) {/ v4 w# U: k5 q& i+ p(欢迎访问老王论坛:laowang.vip)
file.id = thisFile.id;/ P2 \2 @+ |- Y(欢迎访问老王论坛:laowang.vip)
thisFile.isMarked = true;, U( E R9 K0 R* B2 o6 q* A! c(欢迎访问老王论坛:laowang.vip)
} else {
+ f: b) T! q4 a6 q D8 | V& n" X console.error(`历史记录里未找到 ${file.name}`);
6 t) {; y# b7 y% z* O ` }
+ e! h6 N8 x2 A5 F' o" b5 G# A7 s }1 I; z% Q) l$ U7 U7 Q) v0 t3 W(欢迎访问老王论坛:laowang.vip)
! [2 e4 F. w6 d let selectedFiles = files.filter(f => f.formatedName.search(separator) != -1 && f.id).map(f => {
* Z$ G7 V" x, g# B: b% l+ w- N let fo = {
+ K5 i$ _+ v1 l( ^$ i id: f.id,
S2 g: z: v i8 D1 c; j name: f.formatedName.split(separator).join("")
$ D C8 Z6 y/ e+ K$ i* p };/ ~# J1 U9 H8 P(欢迎访问老王论坛:laowang.vip)
return fo;' [0 g0 A+ v( Y& d) I" k9 h(欢迎访问老王论坛:laowang.vip)
});
) _0 U/ D+ J5 w7 ~: t+ P T console.log(selectedFiles)
& j$ m) I' s: w" q+ t1 E let i, j, temporary, chunk = 115;
& A0 N" E( E3 N1 l for (i = 0, j = selectedFiles.length; i < j; i += chunk) {
! R4 \$ {: Y, x9 b temporary = selectedFiles.slice(i, i + chunk);2 ]& y9 a) |( T% i, z(欢迎访问老王论坛:laowang.vip)
resultCallback && resultCallback({
9 Z$ R; K" A2 E; S9 x' @ state: true,
; o: T+ O3 }: s# q' [$ @; y msg: `正在重命名第${i + 1}到${i + temporary.length}个文件...`
: C0 _/ i5 z5 K, g( j/ [) Q });
% F0 h7 M! g3 ?& o let renameResult = await renameFiles(temporary);5 [' a! s8 J$ s# Z& X(欢迎访问老王论坛:laowang.vip)
if (renameResult.state === true) {
! f3 R' m% { G7 y2 { resultCallback && resultCallback({
: U" {, R. `5 N# k state: true, y& U0 m4 a9 c5 W(欢迎访问老王论坛:laowang.vip)
msg: `重命名第${i + 1}到${i + temporary.length}个文件成功!`
* H9 X. D* q; n4 N- Z y3 [ });
+ D* N$ J* Y: Q6 H# u3 h } else {3 _, L, F9 e; h5 {(欢迎访问老王论坛:laowang.vip)
resultCallback && resultCallback({
: q4 F6 w% p3 A5 N. ^ state: false,; z$ U* Q- K: Y/ z: L9 W, Z8 I(欢迎访问老王论坛:laowang.vip)
msg: renameResult.error
' |+ Q" C+ L: R% p });! f1 S( `7 q" z(欢迎访问老王论坛:laowang.vip)
resultCallback && resultCallback({4 B8 t4 a6 ?( n" W- X6 Z(欢迎访问老王论坛:laowang.vip)
state: true,
% e* \; F+ M$ u2 C1 G# X msg: `重命名第${i + 1}到${i + 1 + temporary.length}个文件中有失败!!!`, v" O+ }5 s7 b(欢迎访问老王论坛:laowang.vip)
});
& @) q, x* _- m0 L2 Z# X) Z% L }
0 r9 K/ k- w' i await delay(sleepTime); S1 k% b8 |5 _6 p$ Y8 h; n7 x; h(欢迎访问老王论坛:laowang.vip)
}) t6 V8 ?! h) {# K+ c; z(欢迎访问老王论坛:laowang.vip)
7 ?9 K6 v, g4 g$ _5 |- K W* Q(欢迎访问老王论坛:laowang.vip)
}
8 a4 _) j* ~, x z0 D4 \; R5 W. y) x8 E# u: R& h" N2 J. l(欢迎访问老王论坛:laowang.vip)
" y5 ]( x/ \* l2 [; j" O* [) \5 G' {) \7 f/ P3 U! \; ~(欢迎访问老王论坛:laowang.vip)
async function processRename(targetFolderCid, separator, sleepTime, resultCallback) {
6 k+ @. ^; Z' s let onlineFiles = new Array();7 D# p4 Z" {+ P7 k6 _# V" v(欢迎访问老王论坛:laowang.vip)
await getAllFiles(targetFolderCid, onlineFiles, targetFolderCid, (fname, pIndex) => {
: Y0 s0 p5 V ?: J+ [ if (pIndex > 1) {, S4 z: E$ _! `- o2 c(欢迎访问老王论坛:laowang.vip)
resultCallback && resultCallback({
/ D; J: y2 T1 b0 t5 Q8 X3 y) ] state: true,' v# E) A5 q: } R(欢迎访问老王论坛:laowang.vip)
msg: `正在获取 【${fname}】 下第 ${pIndex} 页的内容...`
3 ?$ v, b$ F; @# W& F. M5 X6 g });
- e* ^: r) Z7 s- v } else {
& U5 S4 @& ~" p( v; \ resultCallback && resultCallback({
* g/ m3 X; N0 m6 } state: true,
; l+ N1 f9 C5 _ msg: `正在获取 【${fname}】 下的内容...`5 d3 i, X+ R0 ]9 F(欢迎访问老王论坛:laowang.vip)
});) X9 i; a+ q/ O5 ^+ P2 g: v(欢迎访问老王论坛:laowang.vip)
}
8 Z$ v7 B" c6 ?8 e, [& r });
0 k. o/ u8 g( S/ e$ m' v
6 |" n) _$ T% t& S$ U
9 O: J: L" O z: R7 D! v let selectedFiles = onlineFiles.filter(f => f.name.search(separator) != -1).map(f => {9 r$ L! r1 s- t7 U/ y! y(欢迎访问老王论坛:laowang.vip)
let fo = {
; Q L/ C9 G J/ e" Y% x id: f.id,, b( d3 p% p0 g: f+ d(欢迎访问老王论坛:laowang.vip)
name: f.name.split(separator).join("")0 n# S9 g! n! a# P6 S4 W, @( l(欢迎访问老王论坛:laowang.vip)
};
5 I5 {+ M2 {$ X1 N2 C return fo;
, @$ X- F0 o) _0 ?& ^+ H. u2 z7 } });" k# W# U: |8 p( m/ A- @( s% b% u(欢迎访问老王论坛:laowang.vip)
' X# o1 v9 Z. i' X \7 u% w(欢迎访问老王论坛:laowang.vip)
let i, j, temporary, chunk = 115;' F! p1 b( R% X(欢迎访问老王论坛:laowang.vip)
for (i = 0, j = selectedFiles.length; i < j; i += chunk) {7 |: q' |6 E+ S+ C(欢迎访问老王论坛:laowang.vip)
temporary = selectedFiles.slice(i, i + chunk);: b3 q) u6 o% f, ?5 u: A(欢迎访问老王论坛:laowang.vip)
resultCallback && resultCallback({- u/ Z- l* E+ Q" _$ m(欢迎访问老王论坛:laowang.vip)
state: true,- G" x2 T) C+ N6 N' C+ E+ t(欢迎访问老王论坛:laowang.vip)
msg: `正在重命名第${i + 1}到${i + temporary.length}个文件...`7 |: |0 e/ f* {: t( p(欢迎访问老王论坛:laowang.vip)
});
& Y. r# ^( _" t( F let renameResult = await renameFiles(temporary);7 V% g( G0 U: ?7 O(欢迎访问老王论坛:laowang.vip)
if (renameResult.state === true) {
( t. j3 i& X; X# f6 f, E8 V$ Y6 l resultCallback && resultCallback({" B' m5 |: Q0 i$ K. D5 o' y7 y& J(欢迎访问老王论坛:laowang.vip)
state: true,
' d2 k Y U2 p/ S$ c& k msg: `重命名第${i + 1}到${i + temporary.length}个文件成功!`
5 q: Q0 h& Z$ k1 n( T6 | });
% T) P% d$ }7 j0 P/ B } else { F6 P. d+ Y6 d k) ]: T(欢迎访问老王论坛:laowang.vip)
resultCallback && resultCallback({
+ }$ o; Z+ U9 v9 y( ? state: false,
8 p( q) w; N) B2 F msg: renameResult.error& C- r6 X" ~, C3 [(欢迎访问老王论坛:laowang.vip)
});4 Z6 @$ R5 A. U9 t(欢迎访问老王论坛:laowang.vip)
resultCallback && resultCallback({ s* Y5 y! h, O2 Y6 N+ _& V4 Q(欢迎访问老王论坛:laowang.vip)
state: true,/ U5 L6 u4 Z) N! S) [1 U% z(欢迎访问老王论坛:laowang.vip)
msg: `重命名第${i + 1}到${i + 1 + temporary.length}个文件中有失败!!!`. M) F, B/ O, B8 C7 m' D(欢迎访问老王论坛:laowang.vip)
});
4 L$ I8 B5 C3 H4 W }
7 y0 }: y8 A6 b& ^ await delay(sleepTime);! @* M/ H8 [ n) g x(欢迎访问老王论坛:laowang.vip)
}" f1 ?- _, p# M! ]. u5 D* Y(欢迎访问老王论坛:laowang.vip)
! H# F: C2 s8 y2 p2 R" F" s$ \) Z0 g }3 l9 p) n- {8 ~(欢迎访问老王论坛:laowang.vip)
7 A/ V+ U, T0 v& P3 T! R6 R. c$ _ //通过sha1链接转存文件
- M: y4 Z) p5 y) w, O) a //uploadSetting:{targetCid,text,rootFolder:{needToCreate:true,folderName:""},itemNameSeparator:{needToSeparate:true,separator:""}}
: f2 B9 P a# N* C# W9 v& J8 F async function UploadFilesBySha1Links(config, continuedTaskSetting = null) {
" p- K: v2 G3 b" C# q/ \% N/ Y9 C* V0 U8 O0 m. y9 L(欢迎访问老王论坛:laowang.vip)
let uploadConfig = continuedTaskSetting == null ? config : continuedTaskSetting.uploadConfig;
3 ?8 o! h% {; l let folderSleepTime = uploadConfig.folderSetting.sleepTime;) Q, j8 L9 E d- g: ]5 t(欢迎访问老王论坛:laowang.vip)
let nameSeparator = "";, Y, s( X/ c& V, S! y6 ?6 c0 Y* C4 Q+ P& g(欢迎访问老王论坛:laowang.vip)
let newTargetCid = '-1';
- ~3 T( j& }9 w% B6 i. v let files;: h7 n; G5 k. b1 U; v* Y(欢迎访问老王论坛:laowang.vip)
let fileName = '';
! ?+ g& K7 O& |& S2 h7 O- ~% f' S9 w+ B(欢迎访问老王论坛:laowang.vip)
if (continuedTaskSetting == null) {
5 R% R! F! V$ f/ s //fix: v3.4 在线获取内容可能有空格,修复解析出错# u @1 l; `9 b* x: c" E4 s(欢迎访问老王论坛:laowang.vip)
let formatedText = uploadConfig.text.trim();! Q9 d) `6 I0 K7 ] }( C6 O(欢迎访问老王论坛:laowang.vip)
if (!formatedText) return;$ c8 @ h0 c8 i3 R1 ]% ?(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.BEGIN4UPLOAD, "正在解析sha1链接..."));
" A& }* h2 r' ~6 s" E" X" p' u; Z U4 ]% f5 W) w/ i& g(欢迎访问老王论坛:laowang.vip)
//解析json,转为inline text;并且从json中获取root folder name! j4 o; Q9 b; [8 B N' ]& ] n1 ~(欢迎访问老王论坛:laowang.vip)
if (formatedText.startsWith('{') && formatedText.endsWith('}')) {. c: p& A9 C/ `5 D" s7 _(欢迎访问老王论坛:laowang.vip)
let r = formatJsonToCommon(formatedText);
' U5 f$ ?, d$ ~5 J if (r.state) {
0 x/ [1 v( m- f) S2 U6 ? uploadConfig.folderSetting.rootFolder.folderName = r.rootFolder;. V" q8 D3 f0 i- s+ }$ O/ B- \" T/ p(欢迎访问老王论坛:laowang.vip)
formatedText = r.text;
/ p3 a' {' G7 N/ o/ @ } else {
' K( H) W: H6 q% O1 b5 k console.error("json 解析失败");5 a8 P5 e6 ]( W U" L$ r(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.END4UPLOAD, "json解析失败!是不是格式不匹配!"));4 M/ @' F% P1 x(欢迎访问老王论坛:laowang.vip)
return;, t7 F" f* p. o(欢迎访问老王论坛:laowang.vip)
//json 解析失败,提示,,! b: o x7 W3 V) N9 ]0 f# p(欢迎访问老王论坛:laowang.vip)
}+ I) _- V/ g' e2 h(欢迎访问老王论坛:laowang.vip)
}
+ Q1 V: K2 C+ H- m2 j; q
- S7 H' A9 [9 K1 p //解析inline text sha1 links,并根据配置设置分隔符
1 I/ \+ j8 U8 V _; i7 u1 s. r1 b" ?/ O: g W- a" n) [(欢迎访问老王论坛:laowang.vip)
if (uploadConfig.itemNameSeparator.needToSeparate && uploadConfig.itemNameSeparator.separator) {
: v; ^% M7 L4 J8 D4 f }6 H. K nameSeparator = uploadConfig.itemNameSeparator.separator;
$ w' [# H$ T4 C4 Q* R. x% D }
+ P7 @8 q) E, Z# |! E
0 [6 X1 w- Z( g w! e# S files = parseSha1LinksToFileArray(formatedText, nameSeparator, errorMsg => {
# f6 D( L3 [' @( \) k postSha1Messgae(createMessage(MessageType.ERROR, errorMsg));
: C2 m: `$ J7 p# }1 n1 e });
0 X# L; } ] r) m2 i0 Z# I3 V; s) W% X1 h: E+ `+ f3 N) i(欢迎访问老王论坛:laowang.vip)
if (files.length == 0) {5 I( p G- ^6 ~5 t: O: L* R(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.END, `未获取到有效的链接!`));" [) ?8 q4 y* X5 y2 O6 \2 ^% E(欢迎访问老王论坛:laowang.vip)
return;
7 g" F! s3 a: u% Z/ F8 G, }4 G }5 T8 f' A: `! R; ]5 c$ ~(欢迎访问老王论坛:laowang.vip)
3 w( I ~5 \% Y6 K( u7 j1 d" J(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, `获取到链接个数:${files.length}`));
5 [! I+ K5 b: ^- H( J, s( [1 y await delay(500);9 v- p4 r b$ e(欢迎访问老王论坛:laowang.vip)
/ Z! X1 F2 W6 w, w1 g4 b //根目录设置7 P4 V$ N( f" ^9 X8 A/ \- {(欢迎访问老王论坛:laowang.vip)
//根据配置重新设置targetCid. }0 @) m' j5 t; ^9 G* k& Y(欢迎访问老王论坛:laowang.vip)
newTargetCid = uploadConfig.targetCid;
) b+ i3 d- @# T( e7 ~. g) v9 O F(欢迎访问老王论坛:laowang.vip)
if (uploadConfig.folderSetting.rootFolder.needToCreate === true) {
' k4 r5 P+ \6 I& W' S let rootFolderName = uploadConfig.folderSetting.rootFolder.folderName;% b; l" e. A* j X* w: a(欢迎访问老王论坛:laowang.vip)
let root = await createRootFolder(newTargetCid, rootFolderName, 11, folderSleepTime * 2, msg => {
% E" C- V2 {+ D9 l6 n0 ?3 d postSha1Messgae(createMessage(MessageType.PROCESSING, msg));
1 ^+ v$ m5 J$ R });
& v+ a- b# G" _3 \' h) H/ H$ l% R6 {" ]8 F(欢迎访问老王论坛:laowang.vip)
fileName = root.folderName;
3 V* {8 p ]% \0 k" s! I3 r4 s newTargetCid = root.cid;
( J) A- t' R& y1 U0 L+ O await delay(500);4 C2 F+ F+ O% s9 `(欢迎访问老王论坛:laowang.vip)
}
' H0 D; f3 f1 u6 Y console.log(`newTargetCid: ${newTargetCid}`);9 z. E; K7 `* W9 m7 h% ^2 [- D(欢迎访问老王论坛:laowang.vip)
) Q9 I) I; e; M9 `# b( d5 X" ?5 z if (newTargetCid == "-1") {
' ~5 t' c: ^( R+ V( \; U console.log("选择的保存处文件夹已经被删除或者移动");
T" `$ L9 N# _% `! Q4 J postSha1Messgae(createMessage(MessageType.END, "自动创建根目录出错: <br/>选择的保存处文件夹,已经被删除或者移动,请重新选择保存位置!"));
$ l) F9 ~, Q) u- ^5 t) G0 W return;& ^' |" O& U3 I; Q(欢迎访问老王论坛:laowang.vip)
}
! n6 I6 a$ o2 I) Y7 N8 v
) S/ S [& ]8 A/ @5 r9 r" I5 i //子目录设置
0 r8 r7 L5 Q$ V' b; q- u2 ^ files.forEach(f => {
& h- r& g, n' _1 \' a- h$ H7 l1 k f.parentID = newTargetCid;4 y# }& J( j3 S2 U5 t3 w(欢迎访问老王论坛:laowang.vip)
});
- `! G- a; {3 b1 C9 c' ^6 \9 a) L% u/ V Q(欢迎访问老王论坛:laowang.vip)
if (uploadConfig.folderSetting.notCreateAnyChildFolder === false) //可以创建目录
0 G$ M; C, s! O9 U7 O4 R {# q: ?% r: [0 {4 p/ P! w3 y(欢迎访问老王论坛:laowang.vip)
console.log("需要创建子目录");- ]" X" f+ Z7 V4 Z7 m4 Z8 i& ~(欢迎访问老王论坛:laowang.vip)
//根据配置设置每个文件的parent id
7 B, l1 j; W4 N/ e( J6 _* s* H //最大的层次
) u) g, b6 q9 ^: k; R$ `7 o$ p7 R let maxLevel = Math.max.apply(Math, files.map(e => e.length));) N/ L! ~( ?1 z(欢迎访问老王论坛:laowang.vip)
let level = 0;
$ v8 ^, f0 Z( i8 u T" ]; W //cid更新
* k2 _ ~) \( H* h postSha1Messgae(createMessage(MessageType.PROCESSING, `正在配置子目录的生成...`));
$ A1 h! ? g& n6 @( D9 ] await updateParentID(newTargetCid, '',* |: X: M; J" n0 P(欢迎访问老王论坛:laowang.vip)
level, maxLevel, files, folderSleepTime * 1.5, t => {+ o& R$ t' j# [0 q7 y8 ~(欢迎访问老王论坛:laowang.vip)
let st = t.state ? "成功." : "失败!!! " + t.error;1 C0 _+ v5 A" J/ G( p2 {" \7 E(欢迎访问老王论坛:laowang.vip)
let msg = `创建子目录 <b>${t.folderName}</b> ${st}`;- _' T' Q W: F0 [8 v) c' }(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, msg));4 L j. k! }5 p4 p! \(欢迎访问老王论坛:laowang.vip)
if (!t.state) postSha1Messgae(createMessage(MessageType.ERROR, msg));
4 B6 r: x% O' W4 f });
+ b7 G6 V6 Q' \8 f4 y/ c# j
+ I& g6 f7 ^& S6 l2 J) r$ `) Q4 M: ^* h3 k' o+ j. J(欢迎访问老王论坛:laowang.vip)
}* l7 B0 [" h1 E& O; o' \(欢迎访问老王论坛:laowang.vip)
} else {
& b- k# [% p. X& R, b4 \ newTargetCid = continuedTaskSetting.targetCid;1 a& B2 ?; H" p$ j(欢迎访问老王论坛:laowang.vip)
files = continuedTaskSetting.data;# X5 v# @0 J9 X- J(欢迎访问老王论坛:laowang.vip)
fileName = continuedTaskSetting.fileName;- ~1 M; V( }$ k0 Q" g- V7 e(欢迎访问老王论坛:laowang.vip)
}! ^3 \& Z! |- j* |. z% a( U(欢迎访问老王论坛:laowang.vip)
& \9 }5 t8 ^' o" [; s2 f window.parent.document.myData = files;0 \" R y& y3 h3 `* z% d! n( v(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.SHOWCANCEl));
- `1 s' ^6 S. b0 O console.log(files.length);
5 b5 e `' H- r //文件上传
( @: N+ U3 b3 S! V await processUpload(files, uploadConfig.upload.workingNumber, uploadConfig.upload.sleepTime, result => {* _6 s( c% I3 c1 a/ C" {(欢迎访问老王论坛:laowang.vip)
if (result.state === true) {
& Q5 |: a h6 r1 s2 n9 p7 } L: O/ J postSha1Messgae(createMessage(MessageType.PROCESSING, result.msg));
1 d, ]! s9 I2 L* i. j7 h; Z! e# G8 A } else {+ q# ]. `5 k7 C" h0 X. ^- c(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.ERROR, result.msg));
' M/ d" U9 x) t$ n }' L0 j% r x8 a, j( m(欢迎访问老王论坛:laowang.vip)
});
0 R, p- K, N# E0 i let isTaskCanceled = getTaskCancelFlag();
$ `2 O( J" n& ]2 o* d
3 e% c" N8 d6 [2 W postSha1Messgae(createMessage(MessageType.HIDECANCEL));2 P* z& ]) Q9 ](欢迎访问老王论坛:laowang.vip)
) i2 U; Y# V) \ //根据配置,重命名文件- y* ^+ n |: h/ d(欢迎访问老王论坛:laowang.vip)
if (uploadConfig.itemNameSeparator.needToSeparate &&
2 B0 t5 e L; Z; q7 t7 R" u uploadConfig.itemNameSeparator.needToRemoveSeparator &&
& H% b$ L& i/ K uploadConfig.itemNameSeparator.separator &&: f8 r; q" c6 x& }8 t) E(欢迎访问老王论坛:laowang.vip)
!isTaskCanceled) {
$ \! k. r. {0 H postSha1Messgae(createMessage(MessageType.PROCESSING, "开始获取文件,并自动重命名..."));
( i4 t0 G3 j- d E% n: I* V await delay(folderSleepTime);
- Z& N* i! ]+ h2 @( N console.log(files)
. W3 l m7 x1 Y; `/ K# F await processRenameByUsingHistory(files, uploadConfig.itemNameSeparator.separator, folderSleepTime, result => {
' P3 d$ y/ O8 j) I0 m if (result.state === true) {+ T! e/ `+ J6 f/ R/ W) H(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, result.msg));8 q2 Q+ x- R- n: M% ^4 @. T# C(欢迎访问老王论坛:laowang.vip)
} else {3 }$ N8 V! f; P4 O( B4 J' P# V(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.ERROR, result.msg));
- Z& x! A8 m6 b0 U2 i, c }6 e! } Y% q: r6 p2 x(欢迎访问老王论坛:laowang.vip)
});
/ q, v" s L# M4 H- f/ e# b // await processRename(newTargetCid, uploadConfig.itemNameSeparator.separator, folderSleepTime, result => {
2 S" i0 F& _4 Z7 k' u! U; M8 \4 L // if (result.state === true) {
& H e4 t6 w6 i // postSha1Messgae(createMessage(MessageType.PROCESSING, result.msg));4 N; X/ ~* \# q) r+ d! o# [(欢迎访问老王论坛:laowang.vip)
// } else {
5 x# w2 Y+ H7 p4 m ?/ j( f // postSha1Messgae(createMessage(MessageType.ERROR, result.msg));
- \, _1 e7 m* d! u$ z1 u // }' y& t6 H' b6 h. K7 f: X(欢迎访问老王论坛:laowang.vip)
// });
, M7 ?7 `5 H* T# q4 f( w
4 [; K! X8 F+ \5 o0 O, q. g postSha1Messgae(createMessage(MessageType.PROCESSING, "文件批量去除分隔符(重命名)完成!"));# L; }* u6 Q( k- A- t+ X8 n(欢迎访问老王论坛:laowang.vip)
await delay(folderSleepTime * 2);: \& Y* B& ?% s( B8 Y2 r" ~! k(欢迎访问老王论坛:laowang.vip)
} R$ ~' u" `0 W7 U0 P(欢迎访问老王论坛:laowang.vip)
/ M& b, h5 ^/ m var fails = files.filter(q => !q.state); y; L5 D1 ?9 \2 ](欢迎访问老王论坛:laowang.vip)
var failText = fails.map(function (p) {- |3 P' X, d+ Z2 B Q8 s4 L(欢迎访问老王论坛:laowang.vip)
var r = convertToSha1Link(p, false);. e' e) {% P. C& Z# `: n(欢迎访问老王论坛:laowang.vip)
return r.msg;* L+ n# C; i0 `0 {+ Z& m9 @(欢迎访问老王论坛:laowang.vip)
}).join("\r\n");
, {% N. `1 A8 g& |3 h
8 K! m+ \! k6 i! [2 v7 | if (failText) GM_setClipboard(failText);, A0 E$ Y4 y. E9 I( \. o" y/ L' e(欢迎访问老王论坛:laowang.vip)
if (isTaskCanceled) {3 Z) K+ J% Z* D* \% r4 \(欢迎访问老王论坛:laowang.vip)
//todo:取消转存8 K+ ^+ W0 S2 u4 T(欢迎访问老王论坛:laowang.vip)
let file_name = fileName + "_转存_未完成.7task";6 K8 \+ b, ]3 ?8 O(欢迎访问老王论坛:laowang.vip)
let data = files.map(f => {
# _5 z/ { @/ w" |/ L `let tempFile={3 d. j4 n, A3 u(欢迎访问老王论坛:laowang.vip)
parentID:f.parentID,
% y2 Y7 @% K. S" {& p4 | name:f.name,
6 }5 \+ ~% i g. t9 e& Q" Y size:f.size,' L0 R4 M) O, Y(欢迎访问老王论坛:laowang.vip)
sha1:f.sha1,
: S5 @/ L& y( r @ preid:f.preid,0 {0 V. {+ h" _/ K# y1 U(欢迎访问老王论坛:laowang.vip)
};`" k& g- x% F% B2 a8 Z(欢迎访问老王论坛:laowang.vip)
let tempFile = [# B) u$ y O2 Y(欢迎访问老王论坛:laowang.vip)
f.parentID, f.name, f.formatedName, f.size, f.sha1, f.preid, f.state
" H! j# M0 l _3 ~ ];5 Y, H; B3 f7 U9 J) M6 d+ |: u% t(欢迎访问老王论坛:laowang.vip)
return tempFile;7 x9 p% r4 N1 R& a(欢迎访问老王论坛:laowang.vip)
});) L7 h2 {+ z4 v& d% f9 s) X( g(欢迎访问老王论坛:laowang.vip)
uploadConfig.text = '';( D- d+ \7 m/ H: i& n0 P% \(欢迎访问老王论坛:laowang.vip)
let taskJson = {
" i6 V* z* z+ L6 R taskType: TaskType.UPLOAD,2 n& j: m! k7 }! N- B* \: i(欢迎访问老王论坛:laowang.vip)
targetCid: newTargetCid,
2 y; Y/ w4 U1 |! @ fileName: fileName,
' m9 p% P# B3 l: A# L# s8 l% i data: data,
; E! V! k o) g& v, Y; Z uploadConfig: uploadConfig$ ]6 j- m/ v0 d! v: @ t) L# C(欢迎访问老王论坛:laowang.vip)
};
6 \, {% O/ @7 f; R6 g& W let text = JSON.stringify(taskJson)
N( P# `7 H( }, Y, g+ h5 k. l5 ~ download(file_name, text);
0 q0 W& z+ f: K' c6 X6 e- M! K' P% {(欢迎访问老王论坛:laowang.vip)
}, o0 I9 G( _9 U% `8 t6 _1 }(欢迎访问老王论坛:laowang.vip)
. i9 `0 U" v3 T! t) R2 e! O let msg = `完成上传!成功 <b>${(files.length - fails.length)}</b> ,失败或者取消 <b>${fails.length}</b>\) A/ A- e$ S' O1 {; J(欢迎访问老王论坛:laowang.vip)
<br><br>如果有失败,已将失败sha1链接复制到剪贴板!如果转存失败,请检查sha1链接格式或者在 chrome 上尝试转存。\
- A$ T7 ]* |( A s' `) u# e 获取最新版,或者遇到问题去此反馈,感谢 !点击-> <a href="${TIPS.UpdateUrl}" target="_blank">${TIPS.VersionTips}</a>`;
& i H# i" R# I) Q postSha1Messgae(createMessage(MessageType.END4UPLOAD, msg, newTargetCid));5 l' Q7 Y. M. I5 Z3 t(欢迎访问老王论坛:laowang.vip)
5 p6 |) p# v" q8 ~) Q; o! b: g(欢迎访问老王论坛:laowang.vip)
}' e, _5 M/ ]. j(欢迎访问老王论坛:laowang.vip)
9 D. X) I3 [8 {" L" X# P(欢迎访问老王论坛:laowang.vip)
8 y' r9 |. E1 M( y6 `6 N% N(欢迎访问老王论坛:laowang.vip)
* ~% u x" U& o9 e0 A* U(欢迎访问老王论坛:laowang.vip)
function getFileItemPreidWithTimeOut(timeOut, file) {( i+ J- y& j* B- R2 H; l(欢迎访问老王论坛:laowang.vip)
console.log('getFileItemPreidWithTimeOut')7 x# I! }; I( }8 g7 b5 u(欢迎访问老王论坛:laowang.vip)
let to = delay(timeOut).then(t => {# H% Y1 Q4 ?0 z1 Y(欢迎访问老王论坛:laowang.vip)
return {5 b, ?- s) \" A(欢迎访问老王论坛:laowang.vip)
state: false,
, t. C3 y* c- N! z2 U error: `等待提取结果超时,此乃警告,成功与否看最后结果!`,$ s5 \5 s3 N' b4 E6 V3 s(欢迎访问老王论坛:laowang.vip)
fileItem: file9 h( _0 e% n( n; I- d(欢迎访问老王论坛:laowang.vip)
}! c. _/ A, ^! w5 H(欢迎访问老王论坛:laowang.vip)
});
/ v% |: g! J' @4 W let up = getFileItemPreid(file);
3 U c6 U& y L5 O
( ]% u$ g- ]5 e7 m return Promise.race([to, up]);
2 ~6 n; I* n9 G5 E3 T% Q }
0 ?" h" L" u" s" J( ^9 L
) b* E3 T9 s9 ]6 i# A$ b" r3 m
- f2 C$ Q2 u( {/ y' D+ | u* Y function GetFileItemByliNode(liNode) {- a; o; G) ~4 B7 g. Y( _" ^3 \(欢迎访问老王论坛:laowang.vip)
' v6 M$ Z! u9 \. X(欢迎访问老王论坛:laowang.vip)
var pItem = {% |. T1 z1 i6 N7 x7 L% c. P! W(欢迎访问老王论坛:laowang.vip)
id: "",
) w- w2 \! R* E! t2 F# Z parentID: "",
7 ^1 R. j0 ?! [( B isFolder: false,3 ]9 ]( P% I/ x) w(欢迎访问老王论坛:laowang.vip)
name: "",
5 X" \5 u" x0 ]- D$ S( {6 I1 C: M. f size: 0,
3 j. Y- w/ f. L9 y! {! U6 i pickCode: "",
# p7 Z: Z6 S# e$ ~$ J0 R9 f sha1: "",
) M" B: k7 v$ B) o+ Y paths: [],) K, z) v1 t2 W2 c! h* w; H2 X(欢迎访问老王论坛:laowang.vip)
preid: "",
6 R( c% } N6 f! _" d* o2 }0 P selected: false1 z- J! o: j. U8 \+ v( w9 x8 c8 F. a(欢迎访问老王论坛:laowang.vip)
9 X4 J% s' s3 e) V. i' _- j(欢迎访问老王论坛:laowang.vip)
};
. T' }: t; @0 W; [- `3 L! x
' e5 U$ `$ X5 c$ B var type = liNode.getAttribute("file_type");
& t# ~6 O8 S; Y# t8 u0 e pItem.name = liNode.getAttribute('title');" E( G" A0 u5 U! u(欢迎访问老王论坛:laowang.vip)
pItem.parentID = liNode.getAttribute('p_id');
8 W6 r/ y! X+ |" z1 [* Y1 ?) ]1 O, d$ r$ m, y$ B, x5 q0 E(欢迎访问老王论坛:laowang.vip)
var isSelected = liNode.getAttribute('class');6 A2 W# s- g X H5 x(欢迎访问老王论坛:laowang.vip)
if (isSelected == "selected") pItem.selected = true;/ C7 ^5 d! u9 h, u(欢迎访问老王论坛:laowang.vip)
X' n% Q% t5 m( e0 ?(欢迎访问老王论坛:laowang.vip)
if (type == "0") {
: P( K. t: w6 G" c) N5 L5 v5 G pItem.id = liNode.getAttribute('cate_id');
, a* L) S+ w7 J) l4 b2 F5 u pItem.isFolder = true;
% h; }- h4 n: Y: f8 n. Q( L0 f } else {
3 R$ w# ~5 S8 O ? pItem.size = liNode.getAttribute('file_size');
+ T% Z" N* Y. a, ] pItem.sha1 = liNode.getAttribute('sha1');0 T0 q0 ^7 s8 c(欢迎访问老王论坛:laowang.vip)
pItem.pickCode = liNode.getAttribute('pick_code');
2 M" o3 z9 w. C5 @* G. X pItem.id = liNode.getAttribute('file_id');
6 Y7 C$ u0 Z. o0 j0 y7 j( E }
% _5 k. A+ j0 u; f Q. m& e7 w. h8 i(欢迎访问老王论坛:laowang.vip)
return pItem;
5 [9 f% P8 \7 M; ~4 P/ F5 Z }' ]/ H) e0 g9 T7 t0 P1 T(欢迎访问老王论坛:laowang.vip)
6 ~# K& R5 X. U! C5 ?(欢迎访问老王论坛:laowang.vip)
const FILESIZE = 128 * 1024;
3 o* w% e1 ~6 Z# ~! t0 O* w6 e async function InnerCreateSha1Links(allFiles, txtName) {! q8 T# W2 q/ b% H4 e1 n(欢迎访问老王论坛:laowang.vip)
var msg = "";
, Y( w+ W; Z$ a% L7 J& O var index = 1;! u7 ?0 O8 u& ^& v6 i1 _5 D0 d" B: e5 }(欢迎访问老王论坛:laowang.vip)
var completedIndex = 1;
8 q! Z5 l1 q9 }1 Q4 L: V var promisArray = new Array();$ B% h6 G$ C5 J" k C. ^% x& C(欢迎访问老王论坛:laowang.vip)
7 w, p! Y6 J) X/ \ y( x(欢迎访问老王论坛:laowang.vip)
for (let file of allFiles) {
+ [- c) k0 z \1 g/ x/ U V9 c let fileSize = parseInt(file.size);$ s$ r1 y- h4 E8 t- q+ K(欢迎访问老王论坛:laowang.vip)
file.size = fileSize;; G- E) G' B: g! t( {7 H5 d5 W(欢迎访问老王论坛:laowang.vip)
if (!file.preid && file.size <= FILESIZE) {( D6 N, ]: f+ U: m/ |(欢迎访问老王论坛:laowang.vip)
file.preid = file.sha1;
) h) \4 W6 t" s" v% u4 y }2 ` [8 k8 I! F' M" ]& {" c(欢迎访问老王论坛:laowang.vip)
}* T7 ~! }" ?5 p, Z- b. t(欢迎访问老王论坛:laowang.vip)
5 y& }. f+ I: I+ s let files = allFiles.filter(f => !f.preid);
& P- D5 B6 B+ F w8 U* t5 @ completedIndex = allFiles.length - files.length;4 W1 U( M7 x+ F' N% G(欢迎访问老王论坛:laowang.vip)
var gt1200files = files.length >= 1200; M$ J1 @ L8 r8 W(欢迎访问老王论坛:laowang.vip)
console.log(`>=1200: ${gt1200files}`);
! O' `- N! u d& ]. Z+ Q //postSha1Messgae(createMessage(MessageType.PROCESSING, `总计${allFiles.length},已完成${completedIndex}`));: ?9 i, e6 V# ~! N; [7 N4 @(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.SHOWCANCEl))
# Z6 |' n' L+ g! o for (var file of files) {
4 H7 p; i4 H/ u* N4 P1 X- x: `( q
( U' Y& E( Y7 y! ^7 b1 x. z/ y. k3 Z" d" U. y(欢迎访问老王论坛:laowang.vip)
let taskCancelFlag = getTaskCancelFlag();
1 P- [5 G4 F M6 @/ }0 C( I console.log(taskCancelFlag);/ X x* W0 d @6 m(欢迎访问老王论坛:laowang.vip)
if (taskCancelFlag === true) {
: y' }8 V# w0 H$ T console.log("InnerCreateSha1Links has Canceled");
% v4 B% |* i+ P# b3 ?7 H break;
% B& k' A: P) u8 ^- z% U }
# G i+ F- t. `. f/ x4 k6 u& q J. O3 m4 H; Z+ e) N(欢迎访问老王论坛:laowang.vip)
const f = file;
; b, | u# l$ k1 a' l- x. T0 `7 |* @- k( Q& z6 `" J& k; }(欢迎访问老王论坛:laowang.vip)
// getFileItemPreid) b: n2 x( L' j1 f9 M$ e(欢迎访问老王论坛:laowang.vip)
const r = getFileItemPreidWithTimeOut(20000, f).then((t) => {
. P8 K+ M/ B6 E1 G2 n7 d3 L if (t.state) {
& C' {/ t8 y4 G. u: ]2 F msg = '<div align="right"><b>{0}</b> | <b>{1}</b></div><hr>获取【 <b>{2}</b> 】的sha1链接成功'.format(completedIndex, allFiles.length, t.fileItem.name);
; Z6 g; B$ |4 n postSha1Messgae(createMessage(MessageType.PROCESSING, msg))/ H& n2 s3 |1 z0 U# p% I6 O' I(欢迎访问老王论坛:laowang.vip)
} else {
% B' r- I j4 R" M* r3 m% C msg = '<div align="right"><b>{0}</b> | <b>{1}</b></div><hr>获取【 <b>{2}</b> 】的sha1链接:{3}'.format(completedIndex, allFiles.length, t.fileItem.name, t.error);& ?8 W3 R( W5 u% @4 v& M2 ~(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, msg))
- P' ~# _1 P5 _ var filePath = t.fileItem.paths.join(" > ");
% P0 \# S; t/ ^' K' ]* v" t console.log(filePath);5 E. Z0 K3 l( y/ Z4 ~(欢迎访问老王论坛:laowang.vip)
if (filePath) msg = "{0},原因:{1},路径:{2}".format(t.fileItem.name, t.error, filePath);9 x. O9 Y; z |7 Z/ j(欢迎访问老王论坛:laowang.vip)
else msg = "{0},原因:{1}".format(t.fileItem.name, t.error);
0 b6 @0 S2 s3 y, I0 }! d7 [$ |6 k$ g; b$ z2 Y4 R8 d(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.ERROR, msg));
% s K+ y+ Q9 l( J: I* O }+ @5 U- ]' }4 }7 u4 c- L) l(欢迎访问老王论坛:laowang.vip)
completedIndex = completedIndex + 1;! X( l' ^2 e* K* g8 r(欢迎访问老王论坛:laowang.vip)
});
. n) m; y3 d& W8 e3 T
' f; {7 Y+ k; ?* K$ c' }- O1 C) ? promisArray.push(r);& ~% w# i& f6 p1 @3 R( w( m(欢迎访问老王论坛:laowang.vip)
4 q1 w4 ]7 C! d" e(欢迎访问老王论坛:laowang.vip)
//自己改代码吧,怎么弄提取逻辑。。太慢,耗时长;太快,115容易没反应
: i& L+ j" O5 Z if (index % WORKSETTINGS.WorkingItemsNumber == 0) {
9 ~. `: o' D6 P6 }$ ^) J- {' J0 Q await delay(WORKSETTINGS.SleepMoreTime * 1.5);
. f+ N" d0 b: @6 y3 }4 B if (index % (WORKSETTINGS.WorkingItemsNumber * 9) == 0) {
! P# J8 {* R4 R: Y5 }& z await Promise.all(promisArray);) g' l; J5 L s2 N5 K( @(欢迎访问老王论坛:laowang.vip)
let seconds = 2;
+ @" C+ Z$ ]% v1 y4 l for (let i = 0; i < seconds; i++) {: f3 A: y6 w9 I2 ^(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, `防止115服务器限制,暂停发包中。<br><br>${seconds - i}秒后继续...`));
( o3 u" B7 Y5 I5 g, {- E& p await delay(1000);
& Q. X! z. C4 p4 H) ]% { }
9 n8 X" X( y! D' t' { promisArray = new Array();0 S+ f. { r3 }( ] ~(欢迎访问老王论坛:laowang.vip)
}
# Z+ K+ `! l+ z! R9 I( ~5 ^ }: J/ \( V- o( f4 E(欢迎访问老王论坛:laowang.vip)
. ~$ c9 M& `3 p3 b(欢迎访问老王论坛:laowang.vip)
//1 L( u( c9 N6 L0 K; Q(欢迎访问老王论坛:laowang.vip)
index = index + 1;
4 E* J5 G P5 R* P. X }
6 H' w8 u1 E3 U3 J# ?! M0 s4 [& q- U! F$ O1 v" y7 L(欢迎访问老王论坛:laowang.vip)
$ [ C3 M# G( W y3 K(欢迎访问老王论坛:laowang.vip)
await Promise.all(promisArray);/ s: X: f0 ^. t2 c' ?# U5 d3 @* D( h(欢迎访问老王论坛:laowang.vip)
: B+ `% r" T* y \- a; E7 R. z. I7 y var succeedArray = allFiles.filter(q => q.preid);
3 Y+ K! ?, z" l if (succeedArray.length == 1) {2 B) }) w4 ?1 F& r" V(欢迎访问老王论坛:laowang.vip)
var result = convertToSha1Link(succeedArray[0], false);9 r' j7 `# q; Z+ Q; k(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.CLOSE, ""));+ B5 M3 q7 J4 G# n(欢迎访问老王论坛:laowang.vip)
2 G# C) W, M) F3 w9 X6 d(欢迎访问老王论坛:laowang.vip)
setTimeout(s => {
: Z, }: x2 L6 t prompt("复制分享链接到剪贴板", s);
( D+ o5 L! h) a6 x0 t6 z+ y4 p! e }, 100, result.msg);
9 C0 [$ f/ n7 ?) Q+ f; e7 l% G2 V5 j: _6 j$ l$ v" t: o(欢迎访问老王论坛:laowang.vip)
} else {( k G$ b2 `6 g& c(欢迎访问老王论坛:laowang.vip)
3 P$ e7 H6 u8 H. ~" i" ~% J5 A
Z8 k& ]) O' S! F- A: L if (succeedArray.length > 1) {" h+ h6 q, q: b& \/ m% @) p, l(欢迎访问老王论坛:laowang.vip)
: n1 Q2 q9 u7 r- _" W9 R" y7 K: ~8 q(欢迎访问老王论坛:laowang.vip)
let file_name = txtName + "_sha1.txt";+ K8 I( C" A4 u, A) G* q(欢迎访问老王论坛:laowang.vip)
let text = "";
! x k2 k; o, _* b% G/ b H; }/ |+ }2 k5 O(欢迎访问老王论坛:laowang.vip)
0 {2 X' I9 k" ]1 P0 a5 F9 v$ Y8 n(欢迎访问老王论坛:laowang.vip)
if (getTaskCancelFlag()) {
1 f8 W# [8 r4 J file_name = txtName + "_提取_未完成.7task";9 U6 m' j b! m7 b/ m(欢迎访问老王论坛:laowang.vip)
let data = allFiles.map(f => {6 U7 N( I& t& \& W0 f6 x; i3 A(欢迎访问老王论坛:laowang.vip)
`let tempFile={
' [4 u8 S! ^0 L! B- f2 s: m5 w id:f.id,
# }9 B0 [% Y6 Z parentID:f.parentID,1 j: f. t8 ?, o, p8 Q& u: t+ N(欢迎访问老王论坛:laowang.vip)
name:f.name,& M5 p: @$ ?+ c7 W0 q: l+ t- P3 z(欢迎访问老王论坛:laowang.vip)
size:f.size,2 M& D4 m6 k J( p5 n(欢迎访问老王论坛:laowang.vip)
paths:f.paths,( O) A7 ?( T6 H0 j1 h4 k. m& M' `' U(欢迎访问老王论坛:laowang.vip)
pickCode:f.pickCode,
# C4 s+ f+ { p* z/ h; t" g sha1:f.sha1,/ L0 t/ b2 v" a* j# u(欢迎访问老王论坛:laowang.vip)
preid:f.preid,
9 f' V( O( k( S };`3 @3 p1 K0 {, n! i ]$ m(欢迎访问老王论坛:laowang.vip)
let tempFile = [
! V4 a& l7 d1 K7 f" K8 \4 S/ ] f.id, f.parentID, f.name, f.size, f.paths, f.pickCode, f.sha1, f.preid,
7 ]$ Q: V; P9 ^9 a A ];
- Y1 u( m4 ^% J2 t) U return tempFile;! W, A: U/ ]" f# E0 J(欢迎访问老王论坛:laowang.vip)
});0 L- ?+ \! {0 `6 V(欢迎访问老王论坛:laowang.vip)
let taskJson = {
; H8 a2 t- ?; F$ \ C taskType: TaskType.DOWNLOAD,
- r8 j# S3 S7 |8 u z+ t n! k! \ fileName: txtName,
+ M! H+ s; f7 a. s data: data+ T3 c* s7 V7 J# {# M/ _3 T7 X! Q# e(欢迎访问老王论坛:laowang.vip)
};
5 G3 X9 n: t r0 z% L' t text = JSON.stringify(taskJson)
! m- T7 S( M; f3 E+ Q# K4 T //todo:取消任务4 A7 x* t* a5 {3 e(欢迎访问老王论坛:laowang.vip)
) H, q- H% a, B/ ^! z } else {" l/ `/ {' R- A& t(欢迎访问老王论坛:laowang.vip)
text = allFiles.filter(q => q.preid).map(function (p) {5 ?0 F" C/ i/ \/ j# i(欢迎访问老王论坛:laowang.vip)
var r = convertToSha1Link(p, false);
) D, V0 u% F8 o0 \& ~8 |, @+ C+ X6 ^ return r.msg;0 @$ \# ?# _$ }(欢迎访问老王论坛:laowang.vip)
}).join("\r\n");1 e7 `# y7 m; f5 i. v(欢迎访问老王论坛:laowang.vip)
}
, ^5 g' }3 T+ R- M! R; t, b download(file_name, text);
6 }1 B% O6 ~: ~. S/ c, C }/ W' p' R2 q$ g M- l( } T(欢迎访问老王论坛:laowang.vip)
+ u# q4 ^) G" z H g- @$ l(欢迎访问老王论坛:laowang.vip)
5 w% M( W, q1 h(欢迎访问老王论坛:laowang.vip)
; @0 w) X! V( K: c(欢迎访问老王论坛:laowang.vip)
msg = `
- k8 g% U I6 ~ 完成【 <b>${txtName}</b> 】提取!<hr><br>3 J0 X- E3 ?& a0 X! _3 Z(欢迎访问老王论坛:laowang.vip)
总共<b>${allFiles.length}</b> ,取消或者失败 <b>${allFiles.length-succeedArray.length}</b>。<br>1 H* ~- p- }: X6 v# h* S+ i, Y(欢迎访问老王论坛:laowang.vip)
取消后,若未移动文件夹,可导入继续提取。<br>$ m' ~" L& g' f(欢迎访问老王论坛:laowang.vip)
点击-> <a href="${TIPS.UpdateUrl}" target="_blank">${TIPS.VersionTips}</a>,获取最新版与反馈!
/ t! y7 B# A8 ?' b `;
( x l, h: y& M0 ?) h, S console.log(msg);
4 |& E5 G5 A _- G. ?. o* ~& f postSha1Messgae(createMessage(MessageType.END, msg));0 H& o. |1 u$ d& V(欢迎访问老王论坛:laowang.vip)
}
1 M, F( P N2 E( q; s. l4 W }2 @9 P9 y' y7 W- ]$ A(欢迎访问老王论坛:laowang.vip)
: o$ ^) ]$ z7 E! k2 g async function CreateSha1LinksAll(items, taskName) {
+ A& m- g# z: W; R. O! E! S9 Q. Z //ui: 获取文件中... i) e; N1 w( ~(欢迎访问老王论坛:laowang.vip)
var msg = "正在获取文件...";! ?. M; R2 q6 r1 {(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.BEGIN, msg));
/ Z) R* }7 l2 x& C, @* S var files = new Array();3 ^0 ~7 k* O+ n+ M2 U(欢迎访问老王论坛:laowang.vip)
for (let item of items) {3 ]5 F) S: ]+ ^6 b(欢迎访问老王论坛:laowang.vip)
if (getTaskCancelFlag()) break;0 ^) M% H9 K# U0 P' M% g(欢迎访问老王论坛:laowang.vip)
! m. T6 o% w; n! h; s/ w/ `( G4 _ if (!item.isFolder) {
+ L3 Z- s5 Y! J6 ]. m8 |0 ] files.push(item);( b# d( g$ x \. M/ u# P. [+ E: M(欢迎访问老王论坛:laowang.vip)
} else {3 _0 x2 ]; e [+ r! j(欢迎访问老王论坛:laowang.vip)
msg = `正在获取 ${item.name} 下的内容...`;
# X( [+ n. h+ L& z postSha1Messgae(createMessage(MessageType.PROCESSING, msg));
& P# N' n% d4 K let children = new Array();
: e+ f5 u7 ?& `6 ~ await getAllFiles(item.id, children, item.id, (fname, pIndex) => {
1 r) w6 M ^4 o6 d7 _ if (pIndex > 1) {
5 u4 |3 L+ G+ q/ y msg = `正在获取 【${fname}】 下第 ${pIndex} 页的内容...`;3 b0 W- [: @/ n4 [! e: I: U(欢迎访问老王论坛:laowang.vip)
} else {
& D& H& r6 g) H+ D; v) T4 z msg = `正在获取 【${fname}】 下的内容...`;
* J( v/ s. @; J8 X, ^$ X }* V+ Y$ f$ x- r+ `7 y h, d1 i(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, msg));
# ~" [. f {3 j% `7 h. _ });" ?1 ~5 G5 Z# ]' j(欢迎访问老王论坛:laowang.vip)
3 [% B; `( G9 f" M2 m5 V9 X for (let f of children) {- }* D/ C, d' e' p% S(欢迎访问老王论坛:laowang.vip)
f.paths.unshift(item.name);
7 T0 B) ?) t0 a files.push(f);
" a3 m# l3 O& K! \7 `8 f. F: y: O }
- d' u/ u) d% B# i4 L- T; C. Y! l/ [ ^. w& @9 i(欢迎访问老王论坛:laowang.vip)
0 o3 @3 p+ N. l(欢迎访问老王论坛:laowang.vip)
}
5 r9 ^8 y0 S! u; G0 @ }
" j! O+ M2 w: \) E8 c5 q2 G' ?# E2 b4 p4 e0 F5 b) P9 M(欢迎访问老王论坛:laowang.vip)
if (!files || files.length == 0) {
$ n5 ~. e% U9 K. a9 \+ Q, Q: D postSha1Messgae(createMessage(MessageType.END, `未选中任何内容???`));
$ a" r9 U( O$ d: o- C return;
- @; ^5 r7 e* H |5 `8 `; p# g& \ }: {4 O Q8 N& I(欢迎访问老王论坛:laowang.vip)
( E9 u0 L: `7 q(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, `获取到 【<b>${taskName}</b>】 的内容 ${files.length} 项`));
& H" o) b4 _- a% y await delay(100);
) i6 X) d6 D% e& K- n" b+ U if (getTaskCancelFlag()) {
0 V w% Z: ^. v% [ postSha1Messgae(createMessage(MessageType.END, "已经取消任务!"));
' f. g& S9 q, s9 F! t0 U } else InnerCreateSha1Links(files, taskName);
0 y$ p y: E% u" a Z8 t }2 d0 Q; K) B& p+ e y, l; _4 ~(欢迎访问老王论坛:laowang.vip)
* n$ d8 ~ ?1 B, X, X% |/ r' N4 n: i' B! J(欢迎访问老王论坛:laowang.vip)
async function CreateSha1Links(item) {2 `! J. l8 q+ Q4 s: S8 l6 w(欢迎访问老王论坛:laowang.vip)
//ui: 获取文件中...
6 d: y8 F5 c) Z+ d: S+ V var msg = "正在获取文件...";
4 x2 G3 i! A6 J/ u% }& I% Y2 o8 ]$ | postSha1Messgae(createMessage(MessageType.BEGIN, msg));
) c' f/ q& I$ t& I' }. ~, y0 C var files = new Array();
0 u' x5 z; b; O* N- F4 g" q5 V4 g, E4 S8 b(欢迎访问老王论坛:laowang.vip)
if (!item.isFolder) {
5 Y- E* `* \' \. v1 g; i" X. d* ~ files.push(item);+ i9 I4 v N4 M9 k$ n$ U5 I(欢迎访问老王论坛:laowang.vip)
} else {( T; d7 u, ^# A( s5 O5 L6 n, J(欢迎访问老王论坛:laowang.vip)
msg = `正在获取 ${item.name} 下的内容...`;9 c/ J' t! t* \) y$ ^, |- r(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, msg));
& e! ]4 m: x6 L% x9 @$ @8 B3 j/ P2 @: \. b(欢迎访问老王论坛:laowang.vip)
await getAllFiles(item.id, files, item.id, (fname, pIndex) => {
7 T( V3 [. [( E' M& I: R" ?( k if (pIndex > 1) {/ S/ n9 [6 A2 {! m(欢迎访问老王论坛:laowang.vip)
msg = "正在获取 【{0}】 下第 {1} 页的内容...".format(fname, pIndex);
0 V9 r7 B! Z6 d$ Q6 h } else {$ t" G1 V/ |7 o+ [ u. A+ }(欢迎访问老王论坛:laowang.vip)
msg = "正在获取 【{0}】 下的内容...".format(fname);% S0 M `9 U4 p( H(欢迎访问老王论坛:laowang.vip)
}
+ M' `9 A! W0 I4 ~ postSha1Messgae(createMessage(MessageType.PROCESSING, msg));
' f3 v* m% J1 p% E) M' n, C+ \ });1 o8 Z$ [, `/ h" E(欢迎访问老王论坛:laowang.vip)
- b1 y- e1 x+ j4 M2 ^ if (!files || files.length == 0) {
* y$ Y, P7 C a9 j postSha1Messgae(createMessage(MessageType.END, "【<b>{0}</b> 】空目录???".format(item.name)));; Q% Z! B& |" D( P: [+ k) @(欢迎访问老王论坛:laowang.vip)
return;
* ]. ^. e$ `4 P, G: F }9 X2 C8 p% S$ N/ m( Q2 E(欢迎访问老王论坛:laowang.vip)
} a5 U% Q3 _( n2 f$ \) D- {9 J2 ~(欢迎访问老王论坛:laowang.vip)
" r2 q/ k: E" F: t8 A$ B) o(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, "获取到 【<b>{0}</b>】 的内容 {1} 项".format(item.name, files.length)));! F! z* P6 G: W; p: o(欢迎访问老王论坛:laowang.vip)
await delay(100);
6 J+ B' p$ I- e9 z" A, m; F* U if (getTaskCancelFlag()) {! R \9 a1 a$ r7 z$ a8 E+ v(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.END, "已经取消任务!"));
7 e/ A( |: A+ B+ B } else InnerCreateSha1Links(files, item.name);
' q0 o; A$ Z% M+ P. X* L/ m1 s }3 A+ s% g, k/ l(欢迎访问老王论坛:laowang.vip)
+ j) Z+ l0 }) n) p/ ] const autoCreateRootFolderTips = {
+ w9 ^, Z; F, p' v1 T1 | msg: `sha1转存时,强制在保存处新建根目录`,
0 G4 Q3 r& m _$ B( N9 N details: `选择时:
1.新建根目录名来自sha1转存文件名或者json中的根元素。\
, z0 O* }( C9 U3 \" z 
2.如果没有,则当前时间为文件名生成。`
, o- M1 I9 w: q) F3 Z& v };0 J) S! }* W" S9 N" ](欢迎访问老王论坛:laowang.vip)
r3 ]; h/ _* K/ d9 q const autoCreateRootFolderString =
3 ]+ k$ b! F$ H2 J5 A! a1 S `<div class="linktask-quota" style="height: 40px;display: block">\
0 a- o6 s. ?) g E+ \( h <a>${autoCreateRootFolderTips.msg}</a>\2 }# @8 l. m" X: w. h0 s(欢迎访问老王论坛:laowang.vip)
<div class="help" title=" ${autoCreateRootFolderTips.details}"><a></a></div>\1 K2 X- c- M$ C( k( ^ j(欢迎访问老王论坛:laowang.vip)
<span> </span><div class="option-switch" style="top:10px;left:10px">\% D( b8 T* F; Z(欢迎访问老王论坛:laowang.vip)
<input type="checkbox" checked="true" id="neAutoCreateRootfolder" onclick="function f() {return false}">\
, o$ E. I4 y& z$ ^, e <label for><i>开启</i><s>关闭</s><b>切换</b></label></div>`;' D" e- l# ]9 Z8 R" O0 C0 g+ G(欢迎访问老王论坛:laowang.vip)
: s# N# j) Q0 O6 h# ~% ~9 K n const notCreateAnyChildFolderTips = {
+ b# g; Y7 i0 S# ] msg: `sha1转存时,不创建任何子目录`,
* _5 ~; S* Q8 f7 z details: `选中时,不会自动创建任何子目录。此项与根目录不会影响!`
2 j6 j8 A( x7 h( u* u6 V% v };7 |% @% Q) J4 ^5 B7 x(欢迎访问老王论坛:laowang.vip)
K4 q; j6 D) c h(欢迎访问老王论坛:laowang.vip)
const notCreateAnyChildFolderString =
$ h2 i# J/ x( R `<div id="neNotCreateAnyChildFolderParent" class="linktask-quota" style="height: 40px;display: block">\) q5 R+ D7 O7 Z7 `# {5 G(欢迎访问老王论坛:laowang.vip)
<a>${notCreateAnyChildFolderTips.msg}</a>\: G+ f% `+ y& f8 k(欢迎访问老王论坛:laowang.vip)
<div class="help" title=" ${notCreateAnyChildFolderTips.details}"><a></a></div>\( I% ~. P6 c' N+ G. D0 j: o# w* y(欢迎访问老王论坛:laowang.vip)
<span> </span><div class="option-switch" style="top:10px;left:10px">\
! ]) B* ?- w% H <input type="checkbox" checked="true" id="neNotCreateAnyChildFolder" onclick="function f() {return false}">\8 d9 A$ ^) Q( V% W" V(欢迎访问老王论坛:laowang.vip)
<label for><i>开启</i><s>关闭</s><b>切换</b></label></div>`;+ z) D. W/ G0 [' \* ~" j(欢迎访问老王论坛:laowang.vip)
( t: R) v( x: i2 S C* x(欢迎访问老王论坛:laowang.vip)
const selectFileTips = {
7 V$ a+ P7 q' j msg: `或者导入sha1链接文件(txt/json)`, X7 h5 }( f2 X$ D2 {(欢迎访问老王论坛:laowang.vip)
details: `如果不能正确显示选择文件按钮,可能是与其他脚本或者插件冲突!!`& ?* k% w: u- ?0 b/ ^* |! c(欢迎访问老王论坛:laowang.vip)
};: ]& @) [; p* t. E; C5 x9 f(欢迎访问老王论坛:laowang.vip)
const selectFileString = `<div id="neFile">& ^: ]2 x- J$ i+ M# _(欢迎访问老王论坛:laowang.vip)
<div id="neFileOnline">' \1 G6 {8 m$ |3 ~! ?* @(欢迎访问老王论坛:laowang.vip)
<span style="display:flex;margin-top: 10px;">已经选择在线文件:<p style="color:red" id="neOnlineFileName"></p></span>) @5 }8 l& l$ x- j1 J& S* l(欢迎访问老王论坛:laowang.vip)
</div>
! ~; {1 a. p$ w8 x l. f& V& c <div id="neFileUpload" >
: k1 e) E. ^ V$ E: u. A. o- t; \ <div class="linktask-quota" style="margin-top: 10px;">\' l7 Q% \) r7 O$ [# X( g(欢迎访问老王论坛:laowang.vip)
<a>${selectFileTips.msg}</a>\+ m% w' x* [/ ]6 p7 F3 b* _(欢迎访问老王论坛:laowang.vip)
<div class="help" title="${selectFileTips.details}"><a></a></div>\
7 q, X' l7 N p2 c: e* F- }* f/ ]4 N1 i <span> </span><input type="file" id="neSelectFile" accept=".txt,.json" style="display:block;color:#2777F8;visibility: visible;"></input></div>
4 P6 _- O% o v: P$ f </div>& u* K, y5 q3 d. W/ J* P6 n6 q(欢迎访问老王论坛:laowang.vip)
</div>`;
; s) d+ H9 @8 u9 y0 p/ I9 F: I( q! J- a) Q(欢迎访问老王论坛:laowang.vip)
const otherSettingString = `<div class="linktask-quota" style="margin-top: 10px;display:none;">\
. F" k% u8 S9 ]3 h5 f- e 分隔符或者其他选项:<a id="neSetting1" href="javascript:;" style="color:#2777F8">点此设置</a>。\0 c% v2 T% P2 f6 e! ]# Y9 | R(欢迎访问老王论坛:laowang.vip)
</div>`% M, k- v$ V ~% y/ l(欢迎访问老王论坛:laowang.vip)
- K5 m3 W0 I8 G* c# F5 O7 r% u8 b(欢迎访问老王论坛:laowang.vip)
const headerString = `<div id="ne115tipsforheader">${TIPS.VersionTips}(${TIPS.LastUpdateDate}),\& S7 F, m A% p0 n+ \" v, t E(欢迎访问老王论坛:laowang.vip)
<a style="color:red;" target="_blank" href=${TIPS.UpdateUrl}>更新&反馈点此!</a>\
9 X+ s! s8 T0 Z- j: m- ~/ ~7 @ <a href="javascript:;" style="color:#2777F8" id="neSetting2">分隔符等设置点此!</a></div>`;
$ h0 c: L; S' u# O, ]
; t" ^/ G5 s' v const beginUploadBySha1String = `<div class="con" id="downsha1"><a class="button" href="javascript:;">开始sha1转存</a></div>`;
1 q s8 Z j! Z, _0 r' X \* f. {
d( g, d+ l4 Q9 S3 g. J //当前页面所在的目录信息
) i- j0 G! w+ _6 k4 r function getCurrentFolderDisplayed() {
* z# ?- `: n5 O& w5 B let defaultFolder = {
! l2 T5 b. c) V \* I& a p id: "0",
$ I) ]3 g+ j- f1 t. g* J name: "根目录"% O, a+ Z% N( n1 t(欢迎访问老王论坛:laowang.vip)
};# _( R8 X7 L1 Q( |" Z+ f/ \& _8 t(欢迎访问老王论坛:laowang.vip)
let iframes = document.querySelectorAll('iframe') Z0 {: J4 s' h, y. R! [2 d( F(欢迎访问老王论坛:laowang.vip)
for (let item of iframes) {/ a, M4 V0 P0 [* \) C(欢迎访问老王论坛:laowang.vip)
let filePath = item.contentWindow.document.body.querySelector('[rel=header_page_local]');
7 H' g' z7 X, g6 M2 L4 D; H if (filePath) {, @: ]- m9 a. |! A+ s! A7 G' u8 b(欢迎访问老王论坛:laowang.vip)
let folders = filePath.querySelectorAll('.folder');' ?" [' e3 Q4 h$ z! {(欢迎访问老王论坛:laowang.vip)
let lastFolder = folders[folders.length - 1];" n# p& |# M" O3 K& [! h(欢迎访问老王论坛:laowang.vip)
defaultFolder.name = lastFolder.getAttribute('titletext');
' k+ q- V i& r, i! e$ i) d let search = new URLSearchParams(window.location.search);9 z- z: I) U& a' n: `(欢迎访问老王论坛:laowang.vip)
defaultFolder.id = search.get('cid');
" Z% X6 L4 C# u# m+ z; J$ w break;
% w* k: E$ V; R3 I v1 s }
4 ?5 z$ r9 y! _" e }
' N4 u3 s& Q/ e* {; R5 Y5 C) T) `9 _$ e6 R(欢迎访问老王论坛:laowang.vip)
return defaultFolder;9 F M0 J1 X& `(欢迎访问老王论坛:laowang.vip)
}
4 F# c) U; _: g: z( `. C/ b, S+ S8 w% t(欢迎访问老王论坛:laowang.vip)
//fix: v3.3 修复“添加任务弹窗可能无法关闭”
* v3 g: c ?1 T( J9 c function AddDownloadSha1Btn(jNode) {
S& M2 A" K% V5 R
/ N% F* L$ S! T$ U5 W( e0 M document.querySelector(`a[btn="close"]`).addEventListener('click', e => {( x/ S3 y/ j& f1 J(欢迎访问老王论坛:laowang.vip)
window.parent.document.tryUploadItem = null;. S b8 h! x! _/ T: t. j1 {" k(欢迎访问老王论坛:laowang.vip)
});
+ v) V* I8 L! J' B
0 ^2 g6 |1 Y0 u3 O1 f. ~5 M# l) i. W(欢迎访问老王论坛:laowang.vip)
" I; {/ d3 F5 N& R) _) ?6 s* ^/ h let onlineFile = null;
9 Y, M# B0 _, D; B5 m$ p& M
6 [4 v9 } X/ [ var file = "";
/ M+ |) l0 @9 t, `* P* A `
) P9 D: w* n# j. u2 W var dialog = document.getElementsByClassName("dialog-box dialog-mini offline-box window-current")[0];
$ y, e9 @1 B8 A+ m- k$ V ~1 B# P dialog.style.width = "720px";
; k/ E3 x+ ]7 Z- w! b" e dialog.style.top = "10px";, f' g8 }" }& ~: s. I(欢迎访问老王论坛:laowang.vip)
if (document.getElementById('ne115tipsforheader') == null) {
, u) h4 N# C9 p" I- Z# |+ y $(headerString).appendTo(".dialog-header[rel$='title_box']");
" e* R4 _0 I6 e; x/ Q5 J! c
- s1 E( I# T! h* x; y $('#neSetting2')[0].addEventListener('click', e => {
^3 c- ~' `) x( p# l document.querySelector(`a[btn="close"]`).click();
. }+ b5 U2 C1 s- ]" [ GM_config.open();2 d& F5 A' s% Y% k. M(欢迎访问老王论坛:laowang.vip)
});/ ^& l. a2 }$ o(欢迎访问老王论坛:laowang.vip)
}. z c. m! C! U2 Y6 K1 c8 e: m(欢迎访问老王论坛:laowang.vip)
) L( G6 }) ~& B7 a& C(欢迎访问老王论坛:laowang.vip)
var textArea=document.querySelector("#js_offline_new_add");
$ C" X6 x( K( @1 i6 B$ N `. c if(textArea){5 M: p8 Z3 V* ^/ _& o(欢迎访问老王论坛:laowang.vip)
textArea.style.height="100px";
+ D% s% F% F0 n9 G. \8 j }8 ~- S9 w5 h, A% M(欢迎访问老王论坛:laowang.vip)
; s% T' }# o3 f0 \- k e! Q2 R(欢迎访问老王论坛:laowang.vip)
if (document.getElementById('neSelectFile') == null) {8 D' `/ C" X) x9 i, G; U(欢迎访问老王论坛:laowang.vip)
var div = document.getElementsByClassName('dialog-input input-offline');
+ V) _. Y2 X; b- Y% O `8 i" ]( H0 y' I9 B3 i' g(欢迎访问老王论坛:laowang.vip)
console.log(div);. ^4 ]% I* }: m. u. Q% l* H. U(欢迎访问老王论坛:laowang.vip)
var $selectFile = $(selectFileString);
$ o. R7 ?- z1 i5 X( x6 P. B7 S var $autoCreateRootFolder = $(autoCreateRootFolderString);: ]* R& O' u4 w' E4 {- r& b(欢迎访问老王论坛:laowang.vip)
var $notCreateAnyChildFolder = $(notCreateAnyChildFolderString);5 A/ _# ]1 Q7 o' d+ A' E# t. h(欢迎访问老王论坛:laowang.vip)
var $otherSetting = $(otherSettingString);
. ]! F: Q% Y$ r div[0].style.display = 'grid';
( }' s5 [, W6 P* M9 Y5 G3 i) X div[0].appendChild($selectFile[0]);
) ~" R* E/ ?$ x div[0].appendChild($autoCreateRootFolder[0]);
; [, t" X4 L# W+ m
/ e+ r. b& o+ }- n, I4 O* f div[0].appendChild($notCreateAnyChildFolder[0]);6 O3 V) c7 v# T/ s/ a }( `2 j(欢迎访问老王论坛:laowang.vip)
div[0].appendChild($otherSetting[0]);
7 S8 x' \: a" \" N* h1 b& D' E; F+ s' R: W2 C: C( U(欢迎访问老王论坛:laowang.vip)
# Y" b& [) ^: n1 G( t ]3 R) ^ //界面选项设置2 d. o3 B9 \: \- d: @' U" o(欢迎访问老王论坛:laowang.vip)
//根目录自动创建默认值:
4 ?% d/ O$ X) Y document.getElementById('neAutoCreateRootfolder').checked = GM_config.get(currentConfig.createRootFolderDefaultValue);. c, a4 E* Q1 m4 r+ b1 R m(欢迎访问老王论坛:laowang.vip)
//是否显示不创建任何目录:5 M+ f6 b$ H; F4 i7 x* V(欢迎访问老王论坛:laowang.vip)
document.getElementById('neNotCreateAnyChildFolderParent').style.display = GM_config.get(currentConfig.createChildFolderVisible) === true ? 'block' : 'none';% \1 b: E( w5 [, H: v; z6 P(欢迎访问老王论坛:laowang.vip)
document.getElementById('neNotCreateAnyChildFolder').checked = false;) q6 j+ D5 k9 @1 O U(欢迎访问老王论坛:laowang.vip)
5 D* e0 G, Y; r: ]. `! S; G* Y(欢迎访问老王论坛:laowang.vip)
$selectFile[0].addEventListener('change', e => {9 O: P5 f* W7 F8 y8 v: V(欢迎访问老王论坛:laowang.vip)
console.log(e.target.files);/ w$ w" Q4 @7 z' ~* s(欢迎访问老王论坛:laowang.vip)
if (e.target.files) {, s6 h& ?2 Q3 B( q8 w+ D! |(欢迎访问老王论坛:laowang.vip)
file = e.target.files[0];) s2 _, t3 _4 ^7 U% O(欢迎访问老王论坛:laowang.vip)
} else {
9 F/ v6 P+ n; s3 l% R file = "";
- U5 _. P" S! U0 ^, t7 k/ [ }
, h2 r; t0 g, L2 z# f });
5 r6 }" I2 F: v( h1 k# \1 G, D# T1 {5 t) h( s" ]2 K(欢迎访问老王论坛:laowang.vip)
$('#neSetting1')[0].addEventListener('click', e => {
/ Y' i! ^( z) i# o/ ^/ g document.querySelector(`a[btn="close"]`).click();
! K o) u% o4 E8 y" p. h4 Z6 P6 O GM_config.open();( ]" b- i* J% i0 ]7 `. H0 `) S0 d' \. V(欢迎访问老王论坛:laowang.vip)
});0 q: T# \6 h) {1 B) E* S+ D* E# j(欢迎访问老王论坛:laowang.vip)
! Z& O8 r- {9 X, F! u# y% o! w. g% A" m(欢迎访问老王论坛:laowang.vip)
} else {
+ }! ^, S) \, O, t0 z, ^
- x1 t$ B; N! f: O9 ]6 F //界面选项设置3 X& e" _7 f/ p7 ?: d: E/ e(欢迎访问老王论坛:laowang.vip)
document.getElementById('neSelectFile').value = "";! C. `& l& ^: L0 z4 r* M% ~( N(欢迎访问老王论坛:laowang.vip)
file = "";# H3 k* Y7 Z: f! C+ j" n% K' Q(欢迎访问老王论坛:laowang.vip)
//根目录自动创建默认值:
+ t: p; M9 x E: p document.getElementById('neAutoCreateRootfolder').checked = GM_config.get(currentConfig.createRootFolderDefaultValue);/ J, f P$ F& I+ f' v3 u(欢迎访问老王论坛:laowang.vip)
//是否显示不创建任何目录:
. ]1 ^' R+ P% E l$ k document.getElementById('neNotCreateAnyChildFolderParent').style.display = GM_config.get(currentConfig.createChildFolderVisible) === true ? 'block' : 'none';
$ n( J; H2 x5 H8 o- _9 ^% u. v document.getElementById('neNotCreateAnyChildFolder').checked = false;0 n& u" A; o4 L$ ]$ f! O(欢迎访问老王论坛:laowang.vip)
}
! Z0 _2 G! p U/ H% `% o3 @" [: Z3 N& f) D1 ~1 j(欢迎访问老王论坛:laowang.vip)
, \1 u& ]7 Y" s5 H! [: W+ V1 k(欢迎访问老王论坛:laowang.vip)
if (document.getElementById('downsha1') == null) {+ r R3 J) v- i: W. K9 F" Y(欢迎访问老王论坛:laowang.vip)
~$ t8 j8 D* l3 @0 j3 p: A3 d(欢迎访问老王论坛:laowang.vip)
resetTaskCancelFlag();
9 P/ d' Q" ?0 y) N$ @6 y b# D" Q, b8 u9 g: ?- ~- }(欢迎访问老王论坛:laowang.vip)
var $btn = $(beginUploadBySha1String);
2 m0 i( L2 w8 f: P- M: D0 S jNode[0].appendChild($btn[0]);6 i+ C7 V p" a8 q(欢迎访问老王论坛:laowang.vip)
$btn[0].addEventListener('click', e => {
1 l6 L! S" H" V. ~4 A, t2 W
: y6 v Y/ F, ~ let cid = $(`li[rel="bts_select_item"][class="selected"]`).attr("file_id");
7 X- q# n0 h( X' O3 V4 }: N! ^1 T if (cid == "") {
$ b3 k) j3 l4 \# \" P4 m9 p6 V //目录不存在,比如把 “云下载” 目录删除
4 P. W& Q- {5 R# p7 B cid = '0';4 B8 J2 i. V5 D6 q: u4 j7 Z1 I! J(欢迎访问老王论坛:laowang.vip)
}
, r. X# x+ ^8 ^, B
1 T; M0 g' I1 {/ {! w let notCreateAnyChildFolder = document.getElementById('neNotCreateAnyChildFolder').checked;
% a' a) o0 d, u; E7 c1 C" { let autoCreateRootfolder = document.getElementById('neAutoCreateRootfolder').checked;
: u! d& T, W' t4 p4 v' a: Y& ~4 @, ^# r9 \8 w(欢迎访问老王论坛:laowang.vip)
let links = document.getElementById('js_offline_new_add').value;$ k8 g6 Q' X* z/ n# m- c, G(欢迎访问老王论坛:laowang.vip)
let config = {8 v- ?4 x! \: }: O" q4 N3 O(欢迎访问老王论坛:laowang.vip)
targetCid: cid,
$ B' {( ]# [ y3 X O text: "",
5 r6 g+ ^* U# c& m" g3 [ folderSetting: {
3 X; ]2 }$ s8 P6 R notCreateAnyChildFolder: notCreateAnyChildFolder,9 G$ Y" e. Z7 c9 @$ ?2 Q(欢迎访问老王论坛:laowang.vip)
sleepTime: GM_config.get(currentConfig.createFolderSleepTime),6 F9 s) } m. [( s(欢迎访问老王论坛:laowang.vip)
rootFolder: {
3 ~- Q5 c2 K; ^% H6 k% t; H* s needToCreate: autoCreateRootfolder,/ c7 T3 P7 w- J4 L3 u' m(欢迎访问老王论坛:laowang.vip)
folderName: ""
& K" ? T. G; Q5 Q, n9 C },1 ]6 ~0 h4 y7 n' G(欢迎访问老王论坛:laowang.vip)
}," j+ ~7 Q m+ C$ x" t0 u(欢迎访问老王论坛:laowang.vip)
itemNameSeparator: {7 t- H7 Z( z! Q. ^2 k- M$ V7 {(欢迎访问老王论坛:laowang.vip)
needToSeparate: GM_config.get(currentConfig.autoUseSeparator),# ^9 v9 _' N/ V$ E(欢迎访问老王论坛:laowang.vip)
needToRemoveSeparator: GM_config.get(currentConfig.autoUseSeparatorToRename),/ h, P7 M2 ?0 k' r5 p. Y1 R. {(欢迎访问老王论坛:laowang.vip)
separator: GM_config.get(currentConfig.separator)9 u% c2 g4 e0 f* l8 U# i- ~: x(欢迎访问老王论坛:laowang.vip)
},
7 m, r0 D4 }! p# O1 R upload: {
- G8 D1 i" \% x9 A$ u4 F" P, u workingNumber: GM_config.get(currentConfig.uploadNumber),+ y0 |4 L! m6 R: {) _(欢迎访问老王论坛:laowang.vip)
sleepTime: GM_config.get(currentConfig.uploadSleepTime),. s+ B0 o ^% e; P( g4 J# {(欢迎访问老王论坛:laowang.vip)
}
6 _! @5 S$ b' s3 o$ S9 G };
+ A# o! K* {0 V3 i6 N
6 J l1 [; R8 L/ ]$ h. I% X
6 c4 }0 [: ]0 ~% ^( K' p* ?( w onlineFile = window.parent.document.tryUploadItem. R. m+ R/ \8 `(欢迎访问老王论坛:laowang.vip)
if (onlineFile) {
# v f3 F' T: U) d2 s9 N8 ] document.querySelector(`a[btn="close"]`).click();7 k( j7 u# a) x5 ^0 A `(欢迎访问老王论坛:laowang.vip)
console.log("选择了在线文件:")
+ {4 o* B) L2 H. ]6 ^/ z3 B config.folderSetting.rootFolder.folderName = onlineFile.name.split(".").slice(0, -1).join('.');
! X/ A9 g2 N* _8 D3 L
) V% |+ W* {, o# W postSha1Messgae(createMessage(MessageType.FILEDOWNLOAD, {
# ?) t* j( v1 \+ F. N onlineFile: onlineFile,$ V* Z: k/ T6 `" V' n(欢迎访问老王论坛:laowang.vip)
config: config
9 n3 }2 r3 y, d5 @) Q: H2 a }));. D1 _# ]$ J% V(欢迎访问老王论坛:laowang.vip)
window.parent.document.tryUploadItem = null;
9 i: k" k- Y H5 ?0 p8 _
' d. J8 o+ q: f T8 X } else if (file) {% w2 j. s4 N4 H3 J4 Q e, f2 G(欢迎访问老王论坛:laowang.vip)
console.log("选择了文件:")% N+ y. e# H* W+ R: s(欢迎访问老王论坛:laowang.vip)
console.log(file);
; y% d( j% ?$ N) Q% A+ F( F let reader = new FileReader();
9 C1 R" f( C* ?( G0 w* @ reader.addEventListener('load', function (t) {
# \; |# s1 o, h; N6 D& g //fix: v3.3 导入的文件名带"."
2 r/ x& L$ F: R8 s config.folderSetting.rootFolder.folderName = file.name.split(".").slice(0, -1).join('.');& e5 N" ], |& T f/ l( w(欢迎访问老王论坛:laowang.vip)
config.text = t.target.result;
5 x0 M& ?' T0 n$ Z0 c: F( L file = "";9 C# [2 L8 V* f# Y+ k- i* u% P8 w(欢迎访问老王论坛:laowang.vip)
UploadFilesBySha1Links(config);
: n9 R2 u U% [+ Z0 A });( R, ]0 O! B* q' P0 }(欢迎访问老王论坛:laowang.vip)
reader.readAsText(file);, w3 `& P# u# o(欢迎访问老王论坛:laowang.vip)
document.querySelector(`a[btn="close"]`).click();
) _4 m9 U$ A# b //(document.getElementsByClassName('close')[2].click());
! Q4 X2 k5 c6 L0 h( |3 }- {3 u- j
9 g$ l' R6 x3 \8 [1 N( ~ O# n } else if (links) {4 f) D. c; |) t9 ?/ l2 q; ~: ~(欢迎访问老王论坛:laowang.vip)
8 r4 X) ^3 c2 P R) n8 ~(欢迎访问老王论坛:laowang.vip)
console.log("选择了文本框中输入:")
2 G3 `* {& E- i* q2 I& T // var text = { FileName: "", Content: links };
! R4 ?+ ^# @" _3 T( y1 o config.folderSetting.rootFolder.folderName = "";, Y# ^9 {( T$ q8 O, l( v(欢迎访问老王论坛:laowang.vip)
config.text = links;
) ~( l x3 x! f: y! v
* p4 b+ H( N y( C document.querySelector(`a[btn="close"]`).click();% c* U9 i. f0 p$ v(欢迎访问老王论坛:laowang.vip)
//closeButton.click();
# y! y( E8 Q$ C9 J% W3 ^8 ^3 y UploadFilesBySha1Links(config);
/ u% C; A) p1 `) l* s) d/ Z
; p4 ^5 n) t; }3 f) L* {! J' S9 {+ V4 J! ~(欢迎访问老王论坛:laowang.vip)
m) s, M. ~) `# R6 Z }& E4 I6 g$ G3 S0 Q b(欢迎访问老王论坛:laowang.vip)
7 k Z, Z* G7 M4 j4 a2 g3 I
. f; J& a1 ?$ c+ ^' h0 D2 t, Q$ b# _- R" G% B0 y3 {1 w4 j+ W(欢迎访问老王论坛:laowang.vip)
});
0 j2 }, x1 E% z0 N& C; J }
1 o1 o9 N5 I' J* |- T: Q) n6 P G$ C6 c* B. A- F& \; {(欢迎访问老王论坛:laowang.vip)
let save = document.querySelector('.bt-task-safe')
/ v5 a' T$ z- c8 d0 Q d if (save != null && document.querySelector('#saveTip') == null) {6 C- y. {! f: }# W0 y% f, Y(欢迎访问老王论坛:laowang.vip)
save.insertAdjacentHTML('afterend', `<div id="saveTip"><p style="margin-left:20px;margin-top:-20px;">转存也在此处选择位置。<span style="color:red;">因115页面结构以及接口调整,暂时下线【默认保存至当前位置】</span></p></div>`)
& X, F3 {* E( W }
' z5 s9 A% N! @. `) v$ l, Q, t0 z' R2 i3 o& r& m+ [(欢迎访问老王论坛:laowang.vip)
& V! R, j; Y* g1 X' I* N1 J B(欢迎访问老王论坛:laowang.vip)
if (window.parent.document.tryUploadItem) {/ L4 ^% f) \' }% A; ?(欢迎访问老王论坛:laowang.vip)
document.getElementById('neFileOnline').style.display = "block";
9 I, I& `/ ^- s9 }; ~8 M4 Y* h document.getElementById('neFileUpload').style.display = "none";8 b5 X8 K& t( F- f(欢迎访问老王论坛:laowang.vip)
document.getElementById('neOnlineFileName').innerText = window.parent.document.tryUploadItem.name;; m+ \* t2 q1 x+ a. A X3 _$ E9 d(欢迎访问老王论坛:laowang.vip)
} else {
8 f' V% X/ z' [7 x1 p% A document.getElementById('neFileOnline').style.display = "none";, P" f C5 ^- l(欢迎访问老王论坛:laowang.vip)
document.getElementById('neFileUpload').style.display = "block";2 H6 i$ ~ h' f7 c(欢迎访问老王论坛:laowang.vip)
}+ u- S3 [# X6 b# Z3 j5 s' b(欢迎访问老王论坛:laowang.vip)
7 D X. C$ C5 ~5 o" D6 j2 j$ k; V# e let currentFolder = getCurrentFolderDisplayed(); H* k- y5 L+ E; l1 K; `* Y2 h(欢迎访问老王论坛:laowang.vip)
console.log(currentFolder);4 Y2 y% x7 F- u9 g4 ](欢迎访问老王论坛:laowang.vip)
( B1 r/ J' h' ^3 y3 |(欢迎访问老王论坛:laowang.vip)
/*
4 i' D& Z3 l0 U7 {' z1 r t let ul = document.querySelector('ul[rel="select_item_ul"]');
( _# k6 b$ W0 E1 P7 w7 [( T- {- q if (ul) {& k0 l) ]+ q9 [" t/ D(欢迎访问老王论坛:laowang.vip)
//弹窗时可能数据还在获取,延迟修改
# ?: R M) i. n1 L2 J' b5 H //fix: v3.3.1 优化”脚本修改比自带的快“% _* O2 \! \" f: X(欢迎访问老王论坛:laowang.vip)
//fix: v3.4 再次延长,优化”脚本修改比自带的快“4 I' N. m# q2 d, }(欢迎访问老王论坛:laowang.vip)
delay(1000).then(t => {) U. W+ k8 f% x- d5 f* e(欢迎访问老王论坛:laowang.vip)
const lis = ul.querySelectorAll("li");
5 ?* p0 M) p: w s, u" S+ e let folderIncluded = null;6 T# F# h* S) x% C; S# X(欢迎访问老王论坛:laowang.vip)
# \6 f5 A" e$ S* Z' s: |/ x for (const li of lis) {
J+ F: E9 R; Z3 C3 z
- O3 K% r5 B7 n& Y if(li.className&&li.className.includes("selected"))
- |& H" }; G- m5 W s/ t& G, d% }: g {+ H1 ]2 D o5 V) l" y7 ^. D(欢迎访问老王论坛:laowang.vip)
li.classList.remove("selected")
9 Q- m/ \8 |' z3 W4 j. f# i+ V0 D }+ m" V9 z. s \; i; h(欢迎访问老王论坛:laowang.vip)
. d( V2 F8 U( I9 A- Q2 v console.log(li.attributes['file_id'])6 I& `4 O: `! ?; G(欢迎访问老王论坛:laowang.vip)
if (li.attributes['file_id'].value == currentFolder.id) {
- o. {* Z4 w- V) B$ g$ j+ H folderIncluded = li;' W. C" X$ q: W2 ^# ~8 E4 F(欢迎访问老王论坛:laowang.vip)
}0 V# B* ~" I8 H S(欢迎访问老王论坛:laowang.vip)
};7 C7 w8 K, d$ r(欢迎访问老王论坛:laowang.vip)
# L, G2 T1 a# ~7 u' T9 h: k console.log(folderIncluded)7 W+ n! h, s0 a$ {3 D(欢迎访问老王论坛:laowang.vip)
if(folderIncluded){
, H" ~! t8 n |% c folderIncluded.classList.add("selected");
6 k& r/ b. [- i9 e9 B' S }5 v/ S6 d: |8 R; @(欢迎访问老王论坛:laowang.vip)
else{
# d( B) _+ l' t2 n* F const li = `<li rel="bts_select_item" class="selected" file_id="${currentFolder.id}"><a href="javascript:;"><span>${currentFolder.name}</span></a></li>`;$ c3 a- _2 F3 \, K# h(欢迎访问老王论坛:laowang.vip)
ul.insertAdjacentHTML("afterbegin", li);3 h1 Y$ k) I$ I' M6 T9 T+ [(欢迎访问老王论坛:laowang.vip)
}& `0 t ~# a7 x5 K0 q' b(欢迎访问老王论坛:laowang.vip)
9 F4 {4 u3 q1 @$ F) H7 M$ @3 i1 G( F ~# `6 B/ g(欢迎访问老王论坛:laowang.vip)
8 w9 G6 S5 A! }3 g/ `3 r+ }% | const em= document.querySelector('em[rel="downFileResult"]');
: _$ z6 x2 q+ O1 L" f' D if(em){
) L" \/ P0 G3 [; `$ O. r em.textContent=currentFolder.name;
1 H" s( Q- ~$ q4 \2 O3 |* {/ ? }8 F: K5 {% U% q. D u( U! x* z(欢迎访问老王论坛:laowang.vip)
});. Z1 S- j2 N+ j: l J; {$ i9 e* I(欢迎访问老王论坛:laowang.vip)
! o; Y% f) C+ K2 O5 g9 M X9 X(欢迎访问老王论坛:laowang.vip)
}4 B9 C a& H/ E" ]; K1 m; W(欢迎访问老王论坛:laowang.vip)
*/) }1 w3 K0 B" x6 w/ c6 C3 q(欢迎访问老王论坛:laowang.vip)
; K; g }" d3 U$ _1 T& G6 f& e% E5 v- F; t(欢迎访问老王论坛:laowang.vip)
- t9 s- d9 U$ i: r* b+ q3 F" t
' \$ L2 G6 c" E4 \: k$ k7 Y% _/ [# C" D8 @* {, d(欢迎访问老王论坛:laowang.vip)
3 N1 g2 o' H; R6 X2 t! j }
! f$ p4 p$ C: w. g: ^# i* V) U7 s% ?+ X0 s: }(欢迎访问老王论坛:laowang.vip)
2 L! Q5 _5 ]2 ]% \4 z$ A(欢迎访问老王论坛:laowang.vip)
// function formatCommonToJson(children, root) {
* y2 O- j% b% u // let childFiles = children.filter(f => f.Paths.length == 0);7 }3 g9 ~8 H, u# E8 P(欢迎访问老王论坛:laowang.vip)
// root.files = Array();
! F+ j3 A" x; ?! S2 u% r // root.dirs = Array();6 [$ E" v. c6 m8 R(欢迎访问老王论坛:laowang.vip)
// childFiles.forEach(c => root.files.push({ Name: c.Name }));/ f. {' \" y6 k, H- x(欢迎访问老王论坛:laowang.vip)
, H! T, {; p& [+ s% k // let selectedChildren = children.filter(f => f.Paths.length > 0);
, ^2 Z/ n* J6 q' g% v+ m/ \4 E9 o, ~( c" r(欢迎访问老王论坛:laowang.vip)
// let childFolders = selectedChildren.map(q => q.Paths[0]).filter((v, i, a) => a.indexOf(v) === i);
# [! L+ }3 \$ l( g7 o1 t // childFolders.forEach(f => root.dirs.push({ dir_name: f }));
: i9 V; V4 {9 G) p* `* z; Q a C& [(欢迎访问老王论坛:laowang.vip)
// root.dirs.forEach(d => {! A1 t, w p% ^# \% ?1 F0 Q; A(欢迎访问老王论坛:laowang.vip)
// let newChildren = selectedChildren.filter(f => f.Paths[0] == d.dir_name)
/ ~% i& z1 X- K6 G2 A // .map(c => {
& V! i( |1 S0 w4 Z7 Z$ G% k* C // let a = { Name: c.Name, Paths: c.Paths.slice(1) };
: ^( \0 n% }# o: Q // return a;
( q2 a+ |) S+ F3 \ // })+ ]& T$ C& J: r( _(欢迎访问老王论坛:laowang.vip)
// ConverterAdvanced(newChildren, d);0 A+ m' w& T/ ~, M3 g* h(欢迎访问老王论坛:laowang.vip)
// });# A* Q) _% ]+ f: L(欢迎访问老王论坛:laowang.vip)
// }) u" n$ Y! }1 G' n(欢迎访问老王论坛:laowang.vip)
: I8 q' T+ s" Q; Z/ N( R' g$ a$ ]1 \& N$ \" l) C! ](欢迎访问老王论坛:laowang.vip)
4 R! p" e% V- g% P! A function AddCeateSha1ButtonInGrid(jNode) {
, ?2 _! o! F" m1 V# W- I7 Y4 u //add: v3.4 增加设置是否显示 缩略图模式下获取sha19 L; h6 _& C1 `$ b1 Z" A! E(欢迎访问老王论坛:laowang.vip)
if (!GM_config.get(currentConfig.createItemSha1InThumb)) return;/ A8 z- B# O0 `! i4 ^+ H; k(欢迎访问老王论坛:laowang.vip)
let $li = jNode.find('[class~="file-thumb"]');& o5 M! q. s* O2 ?; p5 u. `) O(欢迎访问老王论坛:laowang.vip)
//fix: v3.3.1 修正文件夹如果设置封面,获取sha1链接按钮会覆盖的bug7 ^0 T+ M d- ~* a! R(欢迎访问老王论坛:laowang.vip)
let $button = $('<button class="btnInGrid" title="获取sha1链接"><i class="icon-operate-light ifol-download" style="height:14px;width:14px;position:inherit"></i></button>');4 W6 @: r3 @9 e2 E(欢迎访问老王论坛:laowang.vip)
$button.appendTo($li);
4 b1 y. k- Y9 Y2 D* B $button.click(function (e) {
9 [1 t C1 A/ S: a. y e.stopPropagation();
& L$ s. Y( G" O9 W let pItem = GetFileItemByliNode(jNode[0]);/ k) G$ T9 {2 S/ G+ J0 L(欢迎访问老王论坛:laowang.vip)
console.log("生成sha1");
. j: p. s8 Z9 p+ t2 C M console.log(pItem);
/ J4 L/ [" P7 |( Y //生成sha1
! e0 U# @: U- c0 O0 q: W1 [; D resetTaskCancelFlag();$ F# E" q. U; X5 A) r5 d(欢迎访问老王论坛:laowang.vip)
CreateSha1Links(pItem);6 x" [( Z5 C) p T, _* ?$ A(欢迎访问老王论坛:laowang.vip)
});
( u& z( a; h; P8 S& P |% J9 L7 l- d8 M: N(欢迎访问老王论坛:laowang.vip)
}5 ?6 L' F9 ~* [& z& s(欢迎访问老王论坛:laowang.vip)
5 O5 t# _" I, j(欢迎访问老王论坛:laowang.vip)
8 n. r4 d s' L) u9 B* w function renameInToolTip(element, pItem) {
4 m" H0 C- B9 f: {0 o var $btn1 = $('<a><i></i><span>去除分隔符</span></a>');
' p" |, ?/ T$ \ $btn1.prependTo(element);' p5 ? g! o9 o5 V(欢迎访问老王论坛:laowang.vip)
$btn1[0].addEventListener('click', async e => {
* P0 I5 X* _# p* w! i let separator = GM_config.get(currentConfig.separator);
2 v0 Z: v' ?! N }2 Z let sleepTime = GM_config.get(currentConfig.createFolderSleepTime);
W6 y) X2 x8 ^$ j& d postSha1Messgae(createMessage(MessageType.BEGIN4UPLOAD, ""));
& v1 ^" C4 B' C, ^% D postSha1Messgae(createMessage(MessageType.PROCESSING, `即将开始重命名 【${pItem.name}】 下所有文件:<br><br>去除分隔符:${separator}`));6 q1 k1 g2 V. @) j6 H% n(欢迎访问老王论坛:laowang.vip)
await delay(1000);
9 K$ q; n; j( H await processRename(pItem.id, separator, sleepTime, result => {) \+ O& n9 F. ?5 M; P7 x4 ](欢迎访问老王论坛:laowang.vip)
if (result.state === true) {& ?5 w. `7 ^/ x* p( a8 l' X(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, result.msg));" }% N' ]+ ^5 E- ?5 A" x- r(欢迎访问老王论坛:laowang.vip)
} else {
+ B$ H6 H8 _+ }, ?2 [ b | postSha1Messgae(createMessage(MessageType.ERROR, result.msg));( H8 ?5 Y' k6 F, I- v1 Z6 ?(欢迎访问老王论坛:laowang.vip)
}
B- _0 n g" A6 [ });- J2 j; p& X. U1 [! P(欢迎访问老王论坛:laowang.vip)
( T' q- P1 V# B. z5 O( i* H(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.END4UPLOAD, `对目录 【${pItem.name}】下的文件重命名完成!\. \9 ~5 ^* u! b7 {(欢迎访问老王论坛:laowang.vip)
<br><br>获取最新版,或者遇到问题去此反馈,感谢 !点击->\
% K6 i3 a* w- U, U* I <a href="${TIPS.UpdateUrl}" target="_blank">${TIPS.VersionTips}</a>`, pItem.id));* C: A P; [; x; g(欢迎访问老王论坛:laowang.vip)
})" p6 o5 D8 O2 w( X. b! J(欢迎访问老王论坛:laowang.vip)
}
( D$ ?$ f2 i4 p& m! O- V: d; }+ h2 a5 o& F9 d0 b$ @(欢迎访问老王论坛:laowang.vip)
function createSha1InToolTip(toopTip, pItem) {
, e8 T" K$ y! ]# n' c: b; N2 y var $btn = $('<a ><i></i><div style="background:white"><span>获取SHA1链接</span></div></a>');
' Z5 u% C2 L2 H, J
' p; K5 J4 c7 n G' _ $btn.prependTo(toopTip);3 v. l4 _2 u# a2 J+ E3 @* C0 y0 s(欢迎访问老王论坛:laowang.vip)
$btn[0].addEventListener('click', e => {6 h) W. O; @6 F! |" A(欢迎访问老王论坛:laowang.vip)
console.log("生成sha1");
& ` A7 J) O8 D5 d console.log(pItem);
; o/ P; y8 E6 S3 D }4 `7 {9 i //生成sha1
! y: `6 r: V) g" X resetTaskCancelFlag();
7 M( @5 h3 k) K3 m6 {7 } CreateSha1Links(pItem);
7 L+ M! {' ^6 ]: D3 N9 W2 |" W }); C5 f7 a! R: n9 y! f, S(欢迎访问老王论坛:laowang.vip)
}
2 l- T4 x7 T4 _( ^% F8 j) E
2 |9 n8 u9 e% J ]" z# K function usingOnlineFileToUploadInToolTip(toopTip, pItem) {) a T9 e6 ]' N) z c* t3 l(欢迎访问老王论坛:laowang.vip)
; _8 c1 a8 I) U3 l% _( j0 L let temps = pItem.name.split('.');! }# I' ?/ F/ q3 {& t& x(欢迎访问老王论坛:laowang.vip)
let extension = temps[temps.length - 1].toLowerCase(); P2 V' C5 C/ b8 t% q) t9 e(欢迎访问老王论坛:laowang.vip)
if (extension == "json" || extension == "txt") {; ?! [( A+ S' d* h9 ^7 }(欢迎访问老王论坛:laowang.vip)
let $btn1 = $('<a menu="offline_task" title="暂不支持大于2MB的文本文件操作"><i></i><div style="background:white"><span>尝试转存</span></div></a>');% v$ b) U9 R# c2 C(欢迎访问老王论坛:laowang.vip)
$btn1.prependTo(toopTip);
$ ^/ X. [0 i: t8 g0 M //尝试转存 M$ A* ~& }/ e( n9 `(欢迎访问老王论坛:laowang.vip)
$btn1[0].addEventListener('click', e => {0 C$ ^8 u' N& {$ ?9 h5 Q7 M" K(欢迎访问老王论坛:laowang.vip)
window.parent.document.tryUploadItem = pItem;2 z. ?$ E4 D7 R% x3 U$ x2 S(欢迎访问老王论坛:laowang.vip)
})) l$ x- I! w8 I(欢迎访问老王论坛:laowang.vip)
}
$ W( K( |. O! J$ h }5 }5 O* l2 y( b. ?8 i/ d8 |(欢迎访问老王论坛:laowang.vip)
; D2 M: e/ i; V: U( o0 a9 c //fix:v3.3 修复在回收站显示提取的bug N/ L. c! o0 T( b(欢迎访问老王论坛:laowang.vip)
function AddShareSHA1Btn(jNode) {( F* S- {" C( }8 M% {(欢迎访问老王论坛:laowang.vip)
7 I/ ^9 d; M4 b. l2 y) |6 C(欢迎访问老王论坛:laowang.vip)
var parentNode = jNode[0].parentNode;6 A9 ` C9 `' a I: ]- L. O6 _1 \/ l* M(欢迎访问老王论坛:laowang.vip)
var pItem = GetFileItemByliNode(parentNode);! T7 M) y. Y3 F' B6 Y* k6 H(欢迎访问老王论坛:laowang.vip)
if (!pItem.name) return;
2 s8 \3 `8 V! @9 S: F |+ @' z& U5 `. M5 O O& m# \(欢迎访问老王论坛:laowang.vip)
) q; d5 ?' |! u+ D jNode[0].style.left = "180px";+ o' S9 k& m( I" A" M, }$ w(欢迎访问老王论坛:laowang.vip)
//目录,去除分隔符
5 H( o" J6 k" u; e$ |" L+ O if (pItem.isFolder && GM_config.get(currentConfig.advancedRename)) {
+ D6 z+ X" N; P renameInToolTip(jNode[0], pItem);
2 v3 @9 _) P4 f% {" y. \ }8 T& u: k3 u2 j; t3 ]. E( x(欢迎访问老王论坛:laowang.vip)
! u) }3 c$ |8 S/ d: s1 W(欢迎访问老王论坛:laowang.vip)
//add: v3.4 增加设置是否显示 列表模式下获取sha17 o. M0 g5 [$ o1 F# e% u/ v(欢迎访问老王论坛:laowang.vip)
if (GM_config.get(currentConfig.createItemSha1)) {
, s# N0 \1 D8 Y1 a createSha1InToolTip(jNode[0], pItem);
2 a- G1 {2 o& X( f. I* y/ Z, t& F4 R }
7 q, C% |4 \' s( o9 a; ~6 f5 M& m `' _2 ]% C2 Z- R8 k# a(欢迎访问老王论坛:laowang.vip)
8 I) H: C9 S5 @1 A(欢迎访问老王论坛:laowang.vip)
if (!pItem.isFolder) {
- V' E: m; T# I* d! Z9 y D usingOnlineFileToUploadInToolTip(jNode[0], pItem);% I$ x7 m. G* s5 q4 C(欢迎访问老王论坛:laowang.vip)
}
5 P" L0 x* j# V3 J) C+ r
0 q; \: i" d# X& Q ]$ X! Q& S; G. H: g4 a4 W4 G% Q(欢迎访问老王论坛:laowang.vip)
7 {7 X6 O" N( Q- o //生成json格式) u1 f* d% t7 u' o(欢迎访问老王论坛:laowang.vip)
// if(pItem.isFolder), g0 t' D9 Z5 b9 M7 Y i% Q(欢迎访问老王论坛:laowang.vip)
// {) V5 c) I7 a( T2 Q! o& B(欢迎访问老王论坛:laowang.vip)
// var $btn1 = $('<a><i></i><span>获取SHA1(json)</span></a>');; G {4 Z0 ?1 V) C7 P(欢迎访问老王论坛:laowang.vip)
// $btn1.prependTo(jNode[0]);
- a" t% k' P/ @, i // $btn1[0].addEventListener('click', e => {
. m& H5 G8 O3 S; e. A( } // console.log(pItem);
' b, M" R' u+ ^* A q& j9 \ // //生成sha1
+ M0 ?/ i7 |, m! ~0 O- f2 y // resetTaskCancelFlag();; ]9 x. }* U. Y7 d: c# o(欢迎访问老王论坛:laowang.vip)
// CreateSha1Links(pItem);3 y% c$ k5 ]2 {3 z, T" z(欢迎访问老王论坛:laowang.vip)
// })& R6 P) F6 W% n6 B2 Q- u(欢迎访问老王论坛:laowang.vip)
// }
* H( I* } `# q$ S9 V) y4 L3 E& n4 o- F1 T3 y- R1 ?, a(欢迎访问老王论坛:laowang.vip)
2 k: t9 W. ?# p6 d: m+ J7 _ }
/ u* i0 q3 i) x( N3 f% k' g L E+ O$ M$ H" q% r0 g& H(欢迎访问老王论坛:laowang.vip)
async function GetSearchList(isOnlySelected) {
3 M3 G! B" }5 W resetTaskCancelFlag();2 @* y# }: I1 ~3 {0 t& x(欢迎访问老王论坛:laowang.vip)
0 C% P5 `# b0 Y( }; ?4 k& e# J; E' S: j(欢迎访问老王论坛:laowang.vip)
var msg = "正在获取文件...";
8 h; b! ~3 Z$ W& u. S postSha1Messgae(createMessage(MessageType.BEGIN, msg));
7 g8 W& h1 f2 \ ]7 x% ]) l6 P# ~. s' M8 q# R: Y9 |- f(欢迎访问老王论坛:laowang.vip)
var doc = document.getElementsByClassName('search-iframe')[0];
' W6 S1 Y ~* f$ }7 g' Q) C if (!doc) doc = document;: k+ z& a/ q I( J; E, [: n0 S9 C(欢迎访问老王论坛:laowang.vip)
var lis = doc.querySelectorAll('.list-cell.lstc-search > .list-contents > ul > li');
, a" k* p1 W6 j/ U j' S" X if (!lis) return;
e3 X) N' f8 u8 @ console.log(lis);
" t5 E6 S0 a, ~- J6 {" n& p var files = new Array();3 M. Q9 r7 k. c" L: R% j1 a. r(欢迎访问老王论坛:laowang.vip)
for (var li of lis) {0 t1 L* u" r, d" R(欢迎访问老王论坛:laowang.vip)
var fileItem = GetFileItemByliNode(li);% S0 h. `$ a8 k* k(欢迎访问老王论坛:laowang.vip)
files.push(fileItem);; h9 r, M4 R3 e/ B9 ~5 V! V(欢迎访问老王论坛:laowang.vip)
}
* l9 P. j7 \% F( i console.log("0: search items{0}".format(files.length));: h$ a- D. L4 K* f' b(欢迎访问老王论坛:laowang.vip)
if (isOnlySelected) {
. q) d& o- u2 f' e- l6 b" q0 S$ `# p6 k console.log("search items onlySelected")
+ i% t" v4 a3 f# j0 D4 K files = files.filter(q => q.selected);
; N6 u5 {) H/ g m& T }/ M/ E3 _) b. e y7 t8 L8 }(欢迎访问老王论坛:laowang.vip)
c4 o9 P/ P8 W: v) h(欢迎访问老王论坛:laowang.vip)
console.log("1: search items{0}".format(files.length));
! t I7 F7 Y# S' J; G9 r& o) w# g P( R: z7 _, F& W(欢迎访问老王论坛:laowang.vip)
console.log(document.URL);
+ s; U! O/ Y' \( g' N% V% v) y var url = new URL(document.URL);8 X$ k. r/ I% b2 T+ R) Q(欢迎访问老王论坛:laowang.vip)
var key = url.searchParams.get("search_value");
# x0 K5 P% R1 d- q key = key ? key : "搜索结果";2 Q T1 m/ s6 K ?% ~(欢迎访问老王论坛:laowang.vip)
files = files.filter(q => !q.isFolder);0 D- r. ~2 Y) j5 f; r; X! `(欢迎访问老王论坛:laowang.vip)
msg = "获取到符合搜索的文件数:{0}".format(files.length);% U* w8 b& d+ v6 z7 w7 v(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.PROCESSING, msg));* P5 _ @* `% ?+ ?2 i& J(欢迎访问老王论坛:laowang.vip)
await delay(200);
9 ^0 q9 o7 [( e! a. F% ^5 l await InnerCreateSha1Links(files, key)
0 D F' {: H* o- \: d3 ^, ~
f$ V0 w# d8 ] `( [ }
0 `! T4 r! `: Z! r8 G1 D- R: d U; g, z5 ]! Z(欢迎访问老王论坛:laowang.vip)
function CreateSha1ButtonForSelectedItems(element) {3 [5 I1 P. Z" Q6 ]5 e' x(欢迎访问老王论坛:laowang.vip)
if (document.getElementById('my115CreateSha1ForSelected')) return;+ y0 @& `- ]2 F( A" X(欢迎访问老王论坛:laowang.vip)
& m' n% r6 A. U; c* S) g; A. Q let div = `<div id="my115CreateSha1ForSelected" style="margin-left:20px;cursor:pointer">4 \9 T8 ~( b' e" W8 Y% m(欢迎访问老王论坛:laowang.vip)
<a hef="javascript=:;" class="button btn-line">
# w M; B* l+ U' x" q* v- [7 W8 _ <i class="icon-operate ifo-share"></i>0 D8 v# y, a. C/ n. F0 N: T(欢迎访问老王论坛:laowang.vip)
<span>获取选中项的SHA1链接</span>& m/ b: z6 _3 ?* l# N5 ]" h6 P(欢迎访问老王论坛:laowang.vip)
</a>
' K- Z0 \% K1 I4 h) H </div>`
, r5 H+ ?/ w C1 C element[0].insertAdjacentHTML('beforeend', div);
4 v0 g! |8 o1 K+ S( X% n% W4 j document.getElementById('my115CreateSha1ForSelected').addEventListener('mousedown', async e => {
# N6 e! I, B) c( @1 b' u e.stopPropagation();
$ L/ J; p9 ^' q# e0 `) ? let seletedElements = new Array();
+ A/ U: M1 H4 x3 e5 l. C //列表模式下: z" u, X: P4 K4 s(欢迎访问老王论坛:laowang.vip)
let selectedItemsInList = document.querySelectorAll('.list-contents > ul > li')
/ f, U+ L& I% G* F/ h console.log(`列表模式下,选中:${selectedItemsInList.length}`);
8 S" @7 I( ^4 c) B$ e1 ~ selectedItemsInList.forEach(ele => seletedElements.push(ele));
# C. N _& @9 J9 Z- Y0 Q2 P1 B- j, t //缩略图模式下:
' k" g* c3 U6 s4 Y, j9 r1 T* O selectedItemsInList = document.querySelectorAll('.list-thumb > ul > li')1 t$ V7 P% X4 T6 b% z6 I(欢迎访问老王论坛:laowang.vip)
console.log(`缩略图模式下,选中:${selectedItemsInList.length}`);8 J: B+ l9 z. S$ m( L(欢迎访问老王论坛:laowang.vip)
selectedItemsInList.forEach(ele => seletedElements.push(ele));
& o5 P1 |* O0 ]1 }9 ?& h$ W
9 U7 i$ }7 o/ a+ O; F console.log(`选中:${seletedElements.length}`);
( u6 a! P) J" ^+ Y5 t2 {/ c8 m B let items = new Array();2 Z5 x4 E$ V! i0 P( F1 n4 U(欢迎访问老王论坛:laowang.vip)
for (let item of seletedElements) {
8 E* B8 r( N4 Y: j2 a' A( j let sItem = GetFileItemByliNode(item);
$ U( o1 f0 @& \ m. [/ v4 e3 h/ N if (sItem.selected) items.push(sItem);- o% b9 v6 w# X(欢迎访问老王论坛:laowang.vip)
}
3 m J1 r0 z4 p& M. V
2 E# \7 o4 {7 h+ H* w if (items.length == 0) return;
. \+ k- C$ n, _* V if (items.length == 1) {
2 w" W. E* v- m* m, N. h" V) h await CreateSha1Links(items[0])
9 K# W. p. B" V/ t$ k4 b } else {
^% \/ t. i0 e% Y' s await CreateSha1LinksAll(items, `${items[0].name}等${items.length}个`)
9 t3 C, R w7 |0 Y' l! K7 M; X }
$ o4 u: v+ ~ l/ k, u& E# {, C
& j. Y& `, e: x4 l/ B4 S });
, y; p; G. {9 K! ]" ?$ l& H5 n+ O% v(欢迎访问老王论坛:laowang.vip)
- B. Z$ [' g& P9 W& }+ } }7 L7 S, H/ A# [! c$ N U' l/ i(欢迎访问老王论坛:laowang.vip)
) N4 f/ _" J* M( r6 G% W6 ^' J(欢迎访问老王论坛:laowang.vip)
+ q L" B* N) C* T5 z, g1 b# [& \' T" t) E6 L+ P9 P5 y(欢迎访问老王论坛:laowang.vip)
function AddShareButtonForSearchItem(node) {
$ w1 H, E0 e5 p
& E- ^9 h& ^* Q5 \2 l+ A2 Q, S document.getElementById('my115Dropdown').style.display = 'none';
( G2 a' g8 M, u4 e1 E6 _
7 r- G2 f6 N. w- y! P5 E0 G9 o8 ^ //每一项
. Y$ s. E, J4 a% q% Y; q var lis = node[0].getElementsByTagName('li');" t0 ?6 S% P5 o) {7 T; m(欢迎访问老王论坛:laowang.vip)
for (var li of lis) {
2 p o( r h5 v0 A var pItem = GetFileItemByliNode(li);
% T6 M/ C3 q6 z9 b$ z4 m var $btn = $('<div class="file-opr" style="left:200px"></div>');
r& o( y3 ?# A3 j) i. L4 H $btn.appendTo(li);
! |2 s: ]: f. @ }* B# m3 H/ D$ q9 v4 y% }(欢迎访问老王论坛:laowang.vip)
z1 w* B8 G( M //针对当前页面
! |5 Y+ F3 Y4 D' `% H $(".left-tvf > a.btn-upload").css("top", "10px");
/ Y" V4 P3 T: O/ n% o if (document.getElementById('btn_selected_sha1') == null) {& q" a* \+ g0 b; T; w(欢迎访问老王论坛:laowang.vip)
var $btn_selected = $(`<a href="javascript:;" id="btn_selected_sha1" class="button btn-line" style="top:10px">
2 o6 ~) @( S" T7 U- ~ <i class="icon-operate ifo-share"></i>* D# }' P7 b( F(欢迎访问老王论坛:laowang.vip)
<span>提取本页选中文件(不包括文件夹)</span>
' w/ L& T- @# s( R1 v. n+ V <em style="display:none;" class="num-dot"></em>
7 K4 Z/ t9 R t9 a @1 q </a>`);
L6 X- _! w6 b2 ] $(".left-tvf").eq(0).append($btn_selected);0 D& L! C/ w- ~(欢迎访问老王论坛:laowang.vip)
( @/ w/ w- j; C1 c* u(欢迎访问老王论坛:laowang.vip)
$btn_selected[0].addEventListener('click', e => {* L; V* C; f9 L, ]9 k9 n4 F(欢迎访问老王论坛:laowang.vip)
GetSearchList(true);! s! i2 f: |6 S$ u* Z/ F2 Z(欢迎访问老王论坛:laowang.vip)
});3 F- ]/ l% ?, V# O3 b(欢迎访问老王论坛:laowang.vip)
}' Y- z3 u& b9 z( m(欢迎访问老王论坛:laowang.vip)
' G$ S! [6 F) D(欢迎访问老王论坛:laowang.vip)
if (document.getElementById('btn_all_sha1') == null) {
5 R+ D5 i) X5 T* k# `! _: | var $btn_all = $(`<a href="javascript:;" id="btn_all_sha1" class="button btn-line" style="top:10px">
, t4 ?% ~ I4 j) b- @' k& U$ n4 z& Z0 s; v <i class="icon-operate ifo-share"></i>4 _0 n4 l6 V) L @& z" f(欢迎访问老王论坛:laowang.vip)
<span>提取本页所有文件(不包括文件夹)</span>
9 d, V& F6 g7 |, C& k0 O; w <em style="display:none;" class="num-dot"></em>
) e' q: Z0 s; m8 \* B$ ^ </a>`);/ y0 V) a, I/ f6 ?- j/ o(欢迎访问老王论坛:laowang.vip)
$(".left-tvf").eq(0).append($btn_all);/ S( L" q) K, d: x& |9 V(欢迎访问老王论坛:laowang.vip)
/ G1 p& l# H8 ?' j9 [& ^- M $btn_all[0].addEventListener('click', e => {8 ^0 Q: I- M. ?0 S8 s/ @(欢迎访问老王论坛:laowang.vip)
GetSearchList(false);
8 I- f# o1 W# \' _5 O+ w T0 x });
0 \1 K2 t9 d! y/ g }
. L6 R F6 ?5 I a4 t
2 e% e% r+ I/ y% F2 y& \% K4 M; B9 i7 i" W3 b+ [/ @4 I+ |% u(欢迎访问老王论坛:laowang.vip)
}
0 \# e$ C3 G6 K. v, J% {" I* U
: j5 R, p T3 U' h# S# ?
- N4 s& U' k8 k4 P0 j! _0 G, _% T: p- t) h6 Y(欢迎访问老王论坛:laowang.vip)
function ContinuedTask(taskJsonFileName) {+ U- D- ~8 `8 m) L8 g2 Y(欢迎访问老王论坛:laowang.vip)
console.log("ContinuedTask");: a- `* L, w& H/ m `( X(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.BEGIN, "正在继续任务..."));
' N( L' v$ O" S0 i/ z resetTaskCancelFlag();
' @0 T4 D$ [1 r+ P let reader = new FileReader();
' J$ l1 v x+ T" y) f7 }2 O$ C' ?' f reader.addEventListener('load', function (t) {
" B; ]8 [; l1 z1 z3 Z4 i try {
& k& W& t6 j; n3 ?3 f' r- a) I
?! r' Q' \! S. U s postSha1Messgae(createMessage(MessageType.PROCESSING, "正在解析继续任务配置..."));
& k) ~: u8 ?/ a# i e let taskJson = JSON.parse(t.target.result);, F# N, ?+ w2 O2 |; y; }(欢迎访问老王论坛:laowang.vip)
# P% w2 _# P# V3 G(欢迎访问老王论坛:laowang.vip)
console.log(`${taskJson.taskType}, ${taskJson.fileName}, ${taskJson.data.length}`);# o2 v7 Y- P3 h9 U: q P(欢迎访问老王论坛:laowang.vip)
let canContinued = true;4 u& T. K6 [, t7 \2 X) G$ w(欢迎访问老王论坛:laowang.vip)
if (taskJson.data.length > 0) {3 U4 \9 u0 t, S' _, S" D# ~(欢迎访问老王论坛:laowang.vip)
: J3 D1 H2 M _8 \ } else {
# ]* r) t' g$ n5 M canContinued = false;( o3 U' _+ Y6 X( Z(欢迎访问老王论坛:laowang.vip)
}0 n8 i' A) g$ ~. T(欢迎访问老王论坛:laowang.vip)
if (canContinued) {
, u5 Z; k2 @/ O$ f! t if (taskJson.taskType == TaskType.DOWNLOAD) {
! F- F. U* Q: E. I; T) h postSha1Messgae(createMessage(MessageType.PROCESSING, `正在开始对【${taskJson.fileName}】继续提取...请稍等!`));
9 d! N T8 M C2 C/ ?) q `9 V$ _# Q0 j; W! L% U(欢迎访问老王论坛:laowang.vip)
提取:
5 T0 b$ Q3 o }2 t: _7 T) n: Z, j let tempFile=[( I' a9 l& w' ]- `, `, p: J(欢迎访问老王论坛:laowang.vip)
f.id,f.parentID,f.name,f.size,f.paths,f.pickCode,f.sha1,f.preid,- r' `* e; k5 \" q(欢迎访问老王论坛:laowang.vip)
];
8 n. n4 E' D& f- K `
, h7 z( Q5 c8 X, Q2 s let allFiles = taskJson.data.map(f => {2 r7 @: D# m4 e1 T+ {(欢迎访问老王论坛:laowang.vip)
return {
, {; n3 P! C: c. h& p2 S id: f[0],
2 J7 r# C/ o! h# i d: p4 @ parentID: f[1],
4 ]. U0 v0 S5 X% q1 Y name: f[2],' N& d% A8 ^- k(欢迎访问老王论坛:laowang.vip)
size: f[3],
; Q' j& B$ {9 i q, `, }- } paths: f[4],
8 `: x! N V5 r8 E) a4 I% C% P pickCode: f[5],
: w$ G* _8 ^0 M3 {- p sha1: f[6],. O1 `8 V8 c0 P: b1 D* }# M(欢迎访问老王论坛:laowang.vip)
preid: f[7],; p" i+ Q& R# [5 C% y6 I3 Y(欢迎访问老王论坛:laowang.vip)
}3 ]% C) u2 B- e& h" J# u0 Z(欢迎访问老王论坛:laowang.vip)
});
8 o" B; s8 [. {1 q) H2 T3 ]8 v, u InnerCreateSha1Links(allFiles, taskJson.fileName);& y3 e( y, K6 _(欢迎访问老王论坛:laowang.vip)
} else if (taskJson.taskType == TaskType.UPLOAD) { _9 l; V* @5 Y' p* N' [$ ?(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.BEGIN4UPLOAD, "正在解析sha1链接..."));
# P3 d# Z. U+ y4 c( ]$ k- b8 x# L* G `转化格式
9 Q x( J( e8 N 转存:
2 D& s& B7 v! `) G" ~ let tempFile = [
! E" L2 q: m2 Z8 k& l f.parentID,f.name, f.formatedName, f.size, f.sha1, f.preid,f.state
! d) s* S5 I# p C1 ~+ L4 q ]% u, M0 p) l2 x8 t! X4 y: w(欢迎访问老王论坛:laowang.vip)
`% f4 E5 U" j7 A8 z4 D! c5 D4 }. N(欢迎访问老王论坛:laowang.vip)
let allFiles = taskJson.data.map(f => {2 s' r6 D9 i! }3 S(欢迎访问老王论坛:laowang.vip)
return {
1 I. i6 K) L0 _% Z5 ~, E8 T id: '',
g+ r$ F3 d6 K q% B* e parentID: f[0],
& B. \; m: t2 ^ name: f[1],
. y9 S, ?% y! `# `6 O+ L, X# i formatedName: f[2],7 y4 P: K2 ~9 i! E+ q/ G(欢迎访问老王论坛:laowang.vip)
size: f[3],
: k5 p/ K3 v* }8 u' V) H pickCode: '',
8 K- x T3 ]' j6 N9 s. R0 [! X$ t5 s- ? sha1: f[4],
4 w/ g/ e4 r$ u8 Z- P+ l preid: f[5],
, R. { l# g0 f+ K' k$ _, R state: f[6]* `% H C( F; C7 S) ?0 R) T(欢迎访问老王论坛:laowang.vip)
}
5 J. y; s' L) t$ R6 W" A });
/ y+ |" A8 h1 ]* ]9 ~
: @8 G/ b8 ]1 w% t' p" ] taskJson.data = allFiles;
- G. ^7 h) I3 a1 ~( h: _9 j3 @5 i6 _$ q7 L9 b7 h, j) K- z(欢迎访问老王论坛:laowang.vip)
UploadFilesBySha1Links(null, taskJson);6 g4 u$ o" D& P% p) j( J0 @(欢迎访问老王论坛:laowang.vip)
7 s$ H: u, M, _, C+ A7 U1 y0 q7 B/ b) S) X: s. _(欢迎访问老王论坛:laowang.vip)
}; o" J! r% U2 H- U% A(欢迎访问老王论坛:laowang.vip)
} else {5 l( g0 m3 K" Q8 A0 v(欢迎访问老王论坛:laowang.vip)
let msg = `) t! B! u) E# _4 _+ D(欢迎访问老王论坛:laowang.vip)
获取的继续任务:【 <b>${taskJson.fileName}</b> 】,配置有误!<br>* B* o N/ |; W/ Z3 j4 }/ j0 p(欢迎访问老王论坛:laowang.vip)
可能不是正确的配置文件, 或者不适用于此版本的配置! A0 G, ^ ~ P( d% H4 H4 Q1 w2 }- F(欢迎访问老王论坛:laowang.vip)
`;5 A+ z# }2 l S(欢迎访问老王论坛:laowang.vip)
postSha1Messgae(createMessage(MessageType.END, msg));
* }- H! J" S1 x, o M5 |# ? }9 I7 _% f0 l/ m5 r! T(欢迎访问老王论坛:laowang.vip)
7 r6 k! G! d: z8 {) S. B(欢迎访问老王论坛:laowang.vip)
% R/ p- }$ |1 ]& ?" n(欢迎访问老王论坛:laowang.vip)
} catch (error) {+ M4 A* k# X; B8 g* y5 @2 {(欢迎访问老王论坛:laowang.vip)
console.error(error);
8 G3 i* j# v' w" k1 u6 | }' d Q) ~3 q5 I1 f(欢迎访问老王论坛:laowang.vip)
4 y' c9 S# {4 h0 z/ W3 `2 @(欢迎访问老王论坛:laowang.vip)
});
7 f9 R, [4 i: j9 s" A/ M reader.readAsText(taskJsonFileName);
" A1 `6 y, F2 N
3 ~- r; i; L9 t2 K0 J
9 n) K3 y) a$ i) f8 }
4 @5 @0 ?# `% r, ]6 x6 | }' E7 |1 W& q5 k. ^ S(欢迎访问老王论坛:laowang.vip)
1 \3 g6 G( z" v% C* K. X' A
/ e2 y0 [9 O4 a5 U4 S/ B1 J' ~3 Q) D+ _' \1 F7 w r(欢迎访问老王论坛:laowang.vip)
3 p$ T. j6 f" d o1 x2 _/ B(欢迎访问老王论坛:laowang.vip)
})(); |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?免费注册
x
|