From f78b87783b2c2090c3230f3da860ab4d2f4aebef Mon Sep 17 00:00:00 2001 From: ZiuChen <457353192@qq.com> Date: Sat, 17 Sep 2022 22:39:56 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=94=B9=E5=96=84=E5=89=AA?= =?UTF-8?q?=E8=B4=B4=E6=9D=BF=E7=9B=91=E5=90=AC=E6=80=A7=E8=83=BD=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=A7=E5=9B=BE=E5=8D=A1=E9=A1=BF=E4=B8=8E?= =?UTF-8?q?CPU=E9=AB=98=E5=8D=A0=E7=94=A8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- package.json | 1 + pnpm-lock.yaml | 17 +++---- public/node_modules/clipboard-event/LICENSE | 21 ++++++++ public/node_modules/clipboard-event/index.js | 29 +++++++++++ .../platform/clipboard-event-handler-darwin | Bin 0 -> 75664 bytes .../platform/clipboard-event-handler-linux | Bin 0 -> 12928 bytes .../clipboard-event-handler-win32.exe | Bin 0 -> 8696 bytes public/preload.js | 46 ++++-------------- public/time.js | 2 - public/time.worker.js | 2 - 11 files changed, 70 insertions(+), 50 deletions(-) create mode 100644 public/node_modules/clipboard-event/LICENSE create mode 100644 public/node_modules/clipboard-event/index.js create mode 100644 public/node_modules/clipboard-event/platform/clipboard-event-handler-darwin create mode 100644 public/node_modules/clipboard-event/platform/clipboard-event-handler-linux create mode 100644 public/node_modules/clipboard-event/platform/clipboard-event-handler-win32.exe delete mode 100644 public/time.js delete mode 100644 public/time.worker.js diff --git a/.gitignore b/.gitignore index a0dddc6..bc9dec1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ .DS_Store -node_modules +/node_modules /dist # local env files diff --git a/package.json b/package.json index 9b2bcd6..1850c81 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "build": "vue-cli-service build" }, "dependencies": { + "clipboard-event": "^1.6.0", "core-js": "^3.6.4", "crypto": "^1.0.1", "less": "^4.1.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 536a2b1..a7e6329 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,10 +2,10 @@ lockfileVersion: 5.4 specifiers: '@vue/cli-service': ^5.0.8 + clipboard-event: ^1.6.0 copy-webpack-plugin: ^6.0.2 core-js: ^3.6.4 crypto: ^1.0.1 - deepmerge: ^4.2.2 less: ^4.1.3 less-loader: ^11.0.0 licia: ^1.23.0 @@ -15,6 +15,7 @@ specifiers: webpack: 4.37.0 dependencies: + clipboard-event: registry.npmmirror.com/clipboard-event/1.6.0 core-js: registry.npmmirror.com/core-js/3.24.1 crypto: registry.npmmirror.com/crypto/1.0.1 less: registry.npmmirror.com/less/4.1.3 @@ -25,7 +26,6 @@ dependencies: devDependencies: '@vue/cli-service': registry.npmmirror.com/@vue/cli-service/5.0.8_rd7zcyopzq3edztmqqbboasfsu copy-webpack-plugin: registry.npmmirror.com/copy-webpack-plugin/6.4.1_webpack@4.37.0 - deepmerge: registry.npmmirror.com/deepmerge/4.2.2 less-loader: registry.npmmirror.com/less-loader/11.0.0_less@4.1.3+webpack@4.37.0 uglifyjs-webpack-plugin: registry.npmmirror.com/uglifyjs-webpack-plugin/2.2.0_webpack@4.37.0 vue-template-compiler: registry.npmmirror.com/vue-template-compiler/2.7.8 @@ -2056,6 +2056,12 @@ packages: engines: {node: '>=6'} dev: true + registry.npmmirror.com/clipboard-event/1.6.0: + resolution: {integrity: sha512-a69QYimd43xM+5hcHkucs0V/QoiZz1fqEFRTnewOITVQOtypRLbCx76Q91Djn6h7O24817dQw44sFUxRYWIuYA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clipboard-event/-/clipboard-event-1.6.0.tgz} + name: clipboard-event + version: 1.6.0 + dev: false + registry.npmmirror.com/clipboardy/2.3.0: resolution: {integrity: sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clipboardy/-/clipboardy-2.3.0.tgz} name: clipboardy @@ -2849,13 +2855,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - registry.npmmirror.com/deepmerge/4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deepmerge/-/deepmerge-4.2.2.tgz} - name: deepmerge - version: 4.2.2 - engines: {node: '>=0.10.0'} - dev: true - registry.npmmirror.com/default-gateway/6.0.3: resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz} name: default-gateway diff --git a/public/node_modules/clipboard-event/LICENSE b/public/node_modules/clipboard-event/LICENSE new file mode 100644 index 0000000..1b0701b --- /dev/null +++ b/public/node_modules/clipboard-event/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Sudhakar R + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/public/node_modules/clipboard-event/index.js b/public/node_modules/clipboard-event/index.js new file mode 100644 index 0000000..ebf9448 --- /dev/null +++ b/public/node_modules/clipboard-event/index.js @@ -0,0 +1,29 @@ +const { EventEmitter } = require('events'); +const path = require('path'); +const { execFile } = require('child_process'); + +class ClipboardEventListener extends EventEmitter { + constructor() { + super(); + this.child = null; + } + startListening() { + const { platform } = process; + const file = `platform/clipboard-event-handler-${platform}${platform === 'win32' ? '.exe' : ''}` + if(platform !== 'win32' && platform !== 'darwin' && platform !== 'linux') { + throw new Error(`ClipboardEventListener is not supported on ${platform}`); + } + this.child = execFile(path.join(__dirname, file)); + this.child.stdout.on('data', (data) => { + if (data.trim() === 'CLIPBOARD_CHANGE') { + this.emit('change'); + } + }); + } + stopListening() { + const res = this.child.kill(); + return res; + } +} + +module.exports = new ClipboardEventListener(); \ No newline at end of file diff --git a/public/node_modules/clipboard-event/platform/clipboard-event-handler-darwin b/public/node_modules/clipboard-event/platform/clipboard-event-handler-darwin new file mode 100644 index 0000000000000000000000000000000000000000..d0eee8eb5f314f74a082d07fb3575ce78ef286bb GIT binary patch literal 75664 zcmeHQ30zah*1riLiy)|=xS$c2;sUv06I@v(C;}Q$)Y=e|3q(T_lOSTX1#DD|R9sMN zYadqI+SV#sSKOdltF~(0TD8^MKK0>KtJStHRr$`$+(3we^?Tp%{l52pGe76foHOT~ zIrE>HbMM?Fa{S@VC(aBba9|il2)PI3+wKfwW<*e9m=2Jokmd5!=!EzQ@uO1^w{a3Q zCZ9^7oZCGhr8@6@1JWrdi z)~e)cZI%ui?Cn+Z_Rtzf3DH*Dgwyzn)^P+ZFu6P~dQ7xDHYHg`R&x}Y2L?)<>`Ju1 ztl10da(T9{VU$hVi@?U<5=Hc_BwBBtRszbWack^fL=^FFIf$XRkpSYG|G0=IXRoroDd^ppW9G$SMG( ztv%Fcn;Py9Nr}lL;^Pv@ZeW;dVh7=mQ#C2d_`rkg*xK@Em_inbRFhcm0;SZZI512(PdLNpAk1Dx3;_y5ctKaKC)ooi6G-K3cxGK zsE&u^q7e3hy6r>YsNOoPHuARcCb zyF>zhwP^>N$bN*aedaPyf`+lecu^z>iVlKN zt23byCwo1?Aa{Vdu^w?TD8^P3>7_%qjwjFiDs0I>rkU|X>-8hlre}|Zv=MuSQ8soN zH?%5j{K2;=G<&$h+iVyT_|sUQ`5dOIN&Q%jE>DHLvRXjnvhBaOu+p(PeVu`;*9BFC zhh6_@r8M0?=*K}|sJDUi(LKzHE7Jn4wr2Hh)`@i##E(XH@TzOpPJ%(9&rvIl^}ayI z<~h{Ygak8mp0~#)F>%oAo0}rzESsVKiiYM-hL>{z1+)jZ2)u08a~6Cx~97c@YM{ zv^Jx!HtH27Wlp^X`*p!E-p%PhH78H6i)L|5OtD>*&+uR1(5(JQ&ZN-PJO2!QH1=l3 zpOQJ5Q<~J%xLDrE3;I7QPhl|4h;7&%Pw5Mq?LR%$+A(;E5{mgK&WhkZfu2=*^EA3| zpyUS`$Kf9srfdXe(F;X@B0v$K2v7tl0u%v?07ZZzKoOt_Py{Ff6ak6=MSvne5ugZA z1SkR&0g3=cfFeKPTLWmNxF9-mI3p6;h7qaI~?4Y_7+i}6Q zat4YzpS^hKX3VpcA|B}7e}anA+fZC@FR3o6!S0pYvSB1<)GoD@5;p3umgrrAqV`Al z5dbuzy0m2EZK#sgk@uyuXMx|oQcL`8K<=m%$;ID?>Jg}3?;$N6TmmldMc-nsLSLn= zO-H6moYo-85}&nLVGpuaYl4=2qSek!?Mx(7>X8qPl9MIhqLG%4JPQ+i7CUgPN(7d` z2}G8dPa|as_Ru2^*(;p|vZaR*yB}fq#NC8FNkE+*ue}4m9RPJCA&so@EcHUmsnp36 z^>-L8rP8f>01tOl`yCc`x`T8r9(Rcez^58%mz3^6-Rwg$rF)PPv{WM2W~|0bnKMv} z#f*eOAO}+(3$ZP-x=PnUQ=N~aGw$UkcDrHeRbai+6p;gqH#=t|7# zs3;|{mhwy#0a9@f$3Pp^YJY`aHH3oT9;7zUoPu~C0S`EMMoP?4h_wt@ar1F=+&uG8 zU|n~URP!}vKIW_wU<7knJ|AWQ;K-7EQkajk-Shxf1tGv%iy<%bq)yXorjcet#P}KSKBjzvK zp@@ppPM~Vbu=QE_5lN&IanKuMFwXgSJ6)eqIZy%@=E9{4o$sz z9dgtYTk!Z81F;n~N=uS`r6nz-C1YJ`XJc#T3d}BFffULR%d!V4OD$V*i=`B`NK4Ag zZ~?KSCdpz(MD6E98rRR0I<|7G!3vhCeHAfaK`n>!y6`%4ow*kNu&yr4vnxP|@7JY+ z*MYBl(J;t80R3oh(tgjbQPy_YQMT=&joWA6@RC{*T%;wl?xT*9pcQ5pZaoLQChf25 zxh|Sv>Uw^Ruj}!31HM+`>t=l2g0I`~bqBsy;p=XE-HWf)`1(1%9)N37soxbSqGfeG z^91m7jhsxlUb_m*I%gWH{eWr~R6B`kV^Hl7s`Y{?xwaS8z*FYh7F6qvY9FH-!s}WE zsvSbLWvF%o)fS+dKeAGcYFkllI;tH*H7%;$LNyhtd7?fhKrNfoat4JaRRO=x%hV|h zDn^;3&}MV7@UuJ!SBjZLUp9)4w_zA8*v*dnEDU9L^(S+{fD_s z-K7Xn1SkR&0g3=cfFeKEE$u(qM!_EGX4Mwu*`DZKy0#u>zujWUi)Wx%r@#sYmZQ|8;8 zZJmLOQp`m zDC_(j!6coMcfbY;zh;!;6o!15;KJ$#1C&6F`lm#$=WO4tUV z;zPpad0M4Tt5TySq|j&zVhn0kHaE0jytLM6!%*wOCp9unEYb7r)+vCGyNX zwZ^2@5`iSOi8ClPlKy$7tcX~hic8a~O|h_0P5srzXjyDxqD&T}m&fGCs3mffGAkAt z^CiZn8fBwK&(OpNbDU0HAj_OC%a%vSm`H~rEMpArF9%Q2sza8+wpyW4&)`(i27{uY zK&B{|o*<9Wn_}`c!;s|wq7|lxIAM}U8achfpfKqS5*FOdRclebpg^yZ%YtPltiiU8 zl4oUU@{Bo1Kf)TTa*f$CPOCz^C@W8=H_45hCJQm8R;B^gi&`6<2Zl*_Q;p_Kc?RuR zg(i>6l244QS=?q!zc+;YSelhXXV^9PHSR@3PII@ zsn#%zP{Qi#!>~*z3APQ(vD5Sn7sgC+WGae4MW{q`FH-~8EHEmjaVnV%>K1_`vkuxF znMx!@QnjYiQzT-TyN(RgMNr7x9?UQTXzK1nXfOW%bCK~h%hRtQ+PRQf&;P$JGZ5`o z$V5aD{f#^w#nV@LTFTRYEr@(7Pp9&9I!{}8I)kUHc{+!uAMmuEr~5h+d((M(B2O3c zbQw?22*B)Hqfm+8D>Qx8SlqH2Qv)wSnrbo1ykzE zFe+5x(;++h6wp}?f_iy`c@SKp!il}rZVc1IhDPl@AXkE)C?Pr-F19q%x6a>(yuOvT z>Wh#vB&)s%Q-ntP*7^R9*SFGtRo}WkoLdtAt+Z9&-=;t0zm;wS@>XAvNRS<^w4+zr z(I@O^NB73|hT734JNi>Q`bRt3)1$GyI6Hcl9bIWhU$vusTQ#3r$^Y)W9?{@9lh3${>F~}j?fULNV;W5y8!?KCJLeqNqq?oQG%poLc=a4 zX)2*%7m~D+(6H)Bsv$J2Dw3`c8de2K?hd%WdVB&24YNd2DxvG~$|E!Z97M_q-P$U@ zmC$Xh^m#(JwbFHj_O{Y~fCNAQT#|Yc8oVSa#Ey=!qf_nZNp^G*q3h>!sU5x1jy`Nh zpC@#^e?QyN(coqbn(V`5wX z`qL#glZ=40p2JYJ=_gHSeW7PeB>z{RE{+4`h!X1_bgTlpBHS2rcNu*IHy=y&p4qxvx)RY&N~gK66<;7 zsh2!2u${7^SvlI*e|7t1MN6 zI(k0?uZ-+ZNKGp>EUy<*YgjNZq((Nx3#p({{V$!2<9F8!_h*d~FQka~;0tNMUU?yT zYrK3hCBV-bs$NKuym5RX6*N~kbiR-l4o)wm(GZEAsfM>MyjGb8Z(hQJ(^&Xk?4&dkwH z)lAmFdx^=@H3ho-%!28;Q^hgxmPsW})S~w`oJtM78iTYt^lEszy`doVMoI-;W#(l! z(MGnGF;J^BU8nd7I$pekqwx7e$n2jUP|8>m%w;v|aA=V~6yy#xdFzq43>t~We zp@8=U4k?7^h|c(sorLIx0+gYkgW5YWLQugx0XmjvKt{6gj^hVLBxLH}g#b?vxrr2I z{UthmDU3c(WR<+}ICr(TerldR7&D=6`hWY#+i?pQQhtF$2 z+a-O&bawcTMQ=K&l>ub%R0ntT2|L;v)JBVJxLYR!edHQUoJ zectV0k0Y^vU%k@hXGiX2n~Tr0|F5?1SUCUMhRM!zC7mV9F83G{?Ah9>Yjt_h< zZz{UgcH^!k*~X%*bE&7iwLt@h%o`Sct!Ktw*cxaJ?|_U-2gu&QgMvYGk9g>nBWxeW z(|(!rZRnLClCi#8bTj7R4>E&dlYvWYNZ=V&!-@C@xm@@xXn@F|%hW|kLZYeI3X;HBASeW> zOe%lqhFEXp4sca!rD=$p>!2xI!4NRP8#BVEW(KvXASjzN1)3DbDS_xi$^1cLBnHwZ zLmnpvZ81?FB*w;vxWUj3F!W$a0NcyG+jH#+1cHYbQJ`wGfGup{ih=YHI14KZ*+QW} zAn{~9TDWG+kqS5mN1?!pu@wTXisDvpv&D}7Y_Wq|g@aHa6uJm5?miHiTj7Nid2<3M zP|TFHWL;Z0q&c=|D@>C~+On+?;nvoTOn#zP86@e&_CU;*ZT$!{7En}YsmT`rMDPwF zM~5(xv}3)IoI_g=A~#y6Gl^oO*)HupBq3}t+do(m8WGxmLVJ&3TaqnW_G~BIZJp@H z_Q6iLcPGZj=?ofGzFJkkKskd5J~G8$N-#>|*cj}J`@p{-Eox#wY_Y)K7B2wWp;+L_ z0N+hmED$h9BF231)!2^@^@x;STky*b`Ht6nE!rI_n{jNWvQUw)dgXoR?%N`tqz3wo zP1gs$c0gM*+&n~l`{ElNSC2cq@m1ft$q#+nB>K2?SpV_&eS&W;Q|65J8N6WrjeS#m z%P%>s7tC7jlzps~xxD}6o37h7WFH-+`rE;mPwXD2%?>M^7QS|Fkv3xC*}gu>ul77U zVPEp>n$nX?&UBo*HRGLCA<1bE+N8VB+0o9U=1P8iX{xlUZ{X#n=AUX0tU8$Ue&w1+ z*{|uVgyTo#$1IB6`TNnIl5SNGlrH$-O1DXmCr{q>VY{%5lUF~zJFNHN+WnSm1=W)k z**=?ZKfaQ)J5#Pb{?>(Cos>@&bDs#|vqQm}q7T@jHLM@t?bph&oul`>m)g62w9Ple za^rf{9|_~X7(HgqcGeR$w-pHL9GzGPDA=xu(cRIPZCB{s_ZxM>(rKiw5*Or2l6MdRu2(-oq`E{GCqNR$u=?J)Xxg$FjA4Gj*1 z@W6(ILwE=YgJ==Slm8YUp10F4FZ#%}>!R2OZ`SO(+^Nt0uI2B}a9^8XnRvQg|B$Z^ zc#b^gtv+$MgW>l{t2IE`n8htO zb!!)7Iy1=Q`^+9ZmYF;dUH1f zgJ*8-=kEPt0lE$Oi5!asF3_VRWQMn^5K+b!J(CagK5>+$pT6WjGaddC0s(ve?t zr{Da?*7oh!{qUN9*pZ%R&Ut=2<@9?!y0^Z!di_FUQO3be6J5oNH{Xww-p+`4*XQ@a zy|P8~LnhzzC_aAi`Wo>A+2o0;YGp|Ny#dbs#$G?~*{#+2Dr1L~t>?mDubG>6?!&is z2FLt)_RQ3GUt2wTd#621VtTac^QEWXwvq3=qC7OBuzl*s^Us{W{OB83=l+#>dEMAz zr_B(;R`L%yh9lczogcq?*A}Xl5cvP!K48F;QLu!S1cyo>yutfFj#-`m3XslkU=;1 zmcz*#T~QLpHF`LMo!I;{(Yb!cz2E2uN1gXORbcLYvFiGo&z5&_Kl|!THu7lx{hwd@ z(z2J$Ju*k!`|HFX)}P*fM8Lh#?r$SYV;-gl`=?FXnY5sN!0Fv7^HayYw7=7iF=b=k zyy)99J! znNLYWt#L{qa13E3tk_Dkf;rv!#~+>2sJD6kK_nXzn4hmQNFrf&aOg#W(;Emc$nK2- z=M(#2=>DG>48yI+K=|+T%rjp@MCBCLBZ`=9hbE*adP;O>-K;ho9Bdw6H+{P(@@U&+ z`Mqe@KG`e(Xy-e1&icl8Jm*5TZNtN*01jkz`1#V7>277(oVOqp;i$d*8_n9fc&3}j z?`{v@8967;>0{lE@I7++4^GDg51ECRrf8!-p zp+PmJ_@|#QM4YblzP){C!uaKf`rViKmG_xhrS9!^e)-L%WlI;vl;o{E_G(q|_?ZK{ z?(W%dvbS+%f!Ca~9cLwO+&9>HrfbHqwlzh!R;Hk2du`^=eSdl;I~j_U^Nyf6(_YR|XY-ntW`|8~1Ls zf9w7)pwF)y_!cWZeIEB;-oJg#8quw`*V*k&h&|V6gh5+@X?o- z+UN@f$G?0mDR%e}J#+$a=;ZMKH98AjZ0{#Fr|pVj!D)!f)^oJ0gQR6W;VfV~*AuQz z5>FE0VKawG!q~_Ou%+wu93}paqR_m|e=a!j+ohCK-D^&T7IZsaee3kVw?c!QBLDVq z?7CmQ*+IO5QspX?h}l4!ga2R9E*A7|&=*LG1sx$YwENF{1Eb1O7;`vd{fia_`r0?V zad904KZH=AO0smUI$SqnbYx0QDqD~m!_F8TmZ%g*_m3Pk7|Drw!9ikP_ohidJ3B5~TORo7(W<~OkG=`v?QiUN?e_aWMYDzv754GCTRv&GN&4Egr1*0c z-O3JqbwLu@@8w?ZVO{o~&e)c(j=Xn6*(K1lW#GxLyQLofwrfk}6xbvOXYxeoKW7Fcz>@Oc|RfIUKzMv8Yl%FYD zE|O`EeVf#N!)HDJoKdzuF`K;6qgRRmMSvne5ugZA1SkR&0g3=cfFeK%cHbg%7~lvGlg}HlQ?~u(lmqw!l1l3@k?XPu|4~_ zO)9h%g>)EW=q8H#$ELA?*pQ~F2yFtUX(^pL*v3{i0nuR4F*+qsMEEMD8}-h)?;Pj( z#a=gwzb0Sn`P}on=bU@*dH3D-?!D)mzV_AK2$tBNa4$kupFUMT1xX z|5u8YVm|QmBxaU3ngmMCbdF3jEhpRw6!jWPOu$Z8k{nZRA<|MR%SWOv6J;udA_3IH zwsu}AS)hu{FrA=woFvM6$f8~!>GhEwQ#Z*o<^Eyc@am>=J8gk7OiWQ0Q|DfJpf(f?Cq`;V8aCH%-sp)( zJnLn@(LT!V=;)C(;r%94vU~~fh++8ye|+Q}|07>6yT`Nd)!)5$`p#9IBiCaY+rWO^ zJ)t;6Y3BmOE`w_+Ts2qTyRymm;+bFk{X2I|e!X|)Q|b3yZ~ysS8UY}XC!sr)JovkS zEzX1gv;h8G0sO-PcojG!pZ$RX@^=-$*8;A)xpa^q9UU7&r7-_s-@}B&>J)`$M|Wv^~R-uogG`F+C4@Sam;b;PCkwrHo^w_9x#L&ZWC=sAO zV0LYAFqDW736P9KSN!p~4&4~^2SXxm1R|iXX#*pEY@0t6+>hNwUFzWb4m88o_)R%b7X&}|B-(UvOMo3Rs`VJm~Us@B_`fW^DW~u^j<2bal$zBlhuk;#5sdZOa7Dvx6YGO7Mx5=`56n&Q!o~s zv*49d(){D`iSH)vBbMAv@@0_c`490!798g~PDd;_&+S2KwH#w#lz4J|w-2278dF8u*eb?Z4bdD^%f zT=Z3B!9^9jGp7bUmDM=o3$gn+dS#XelR*?rZ|aw3)?NU8_1Fccnw(LOO>I{lC)5`% z7*$~KDl)hb4HmL@U>k~w#5#3s+s8{G*Msd@sHV1^2X3kYx;&-A--*&sfOlYX4nVWS z2gkuA^asUvPY;3w=F~gS;8Uh1e^~{Hn*5ntlEdXd0%~gBni^15lfHBH6KX1rsG1r_ z(WlX-n*4*B{LR$p1ymic!P4~M)sm!@Sy>W$|IBDu_>R-Zw zC!ioD@zgjrZtF9Nm(}#RDcIPcZj~KK9EY}yU|X)1Z7Kc95=Gj*3)r_Gl|CCgduz%9c+53n37MR@Xum zPhw@y(f#w@?7gWi`Legi3uAXp$09j2YmwgQO@7*zJlnqZw0wq-ed?TAhnB|QF_ijO zcs#Wy&$lPfwj|&6W|q9FjvaTXTmPDP3!m{@cYAO1?)Kj9)s7#U9lsyIqc82zEa0G7 za3BI1tif=GUZWAn$9gCSblhuT?%Tm9&0;Tt_Ari^L?eRy4P_ zbvEttcC~2Ds<&f@Zx%o=2ywID7#PaFQsEtOh4XqC)&eJl=szHae{iXdlq) zz=2S-Q~`M* zR+IeX`Ap_0+H|>FT~%MHymVjr0kM6>_1A1zy$WHpi|y_MyEu7qs)EdIaP>pmH)7ko zF89Hb<_equ6}U#=+7JD?18BCaWFNE^0n_Gpflh*qjzE*keSb-ltLi?d&!wd2HMwf; zEmd802j{De_(E~*f6g^P% zK+yw54-`F6^gz)AMGq7`Q1rn6l?Qm=n)j(`dmy_P&HVSN*UZ00Jnymcxd!h&^LfVQ zB***ZR}jy804s>+eRJGg9y@5y1G}v`NqHo+LTmqv!fRM>xyDc8KgBG*?2f z{UCX{0}QgTWy9rCbB6fMRNp7Wb3e%ZXGZwk*lzG3b>Kmwj}rYk(Gx^pBKi-aXNk@y z$1Gz9*(K7m=85+*vxu3)?w5ey`fUEhQv$>vvf)<|&hxZsMTjksalpBC6}1!V!_*3w zBaa`30Z02h@1rcHQMeosslfBJ1mW)pT>0Anq?C7y8M=>^q)@28FG%^tB4j;$Bb|Kq zUzcT<&AE>_FFRlsx8KK4NZ#K5h0-B&$5l1pjy(5$6X1*SzEHpT@%90($U1WW{D9|+ z8(08}N}lnP0Qr1z3Ez^qOI$}UFu4~FRXtch{_z6%3BdEkD{PnYbDziO3)q<|fR{nP z(7ye-SOR#yeqCJvuao}C^(AuK0bf+IT=4wP677gX%{*_=>tEbj!2Y1bU1Ekl0OZ*K z7~5Mw{+TU%UJh zfGezQq0dV@7J#y^0KRH2ETU3A&pba6GvY>Ka1hR}W+O{9V^|x&*b)rJ2t>3!p-8_! zqy>yfEUx(zBVr&j91ZD)9`J10ytN^}kPIZz{IQsS6aq1f*r*tc`G<8akQg2w1r-aY zVN6Pn=*7<2G_AAC*WG=K*4oq2+}*aTL(@E)Hg3SCw03!S`ZQlh3x>huS`G-U<(3Zb z&bH><5*alE5JYupK9ww}EnPy}(Y~w6+pg_uZN1Ugt#x~w+I?tM2A>SX6K1f?e~Qa7 z!&e#`tzjq_<&uloj`#l8IGSwiizRR-w}LtGGWKE&o}sWATR>1w_>VozNDIUxnt2Ec zF-N<=LLeB{5^+6X4KcDfOhzA>(LT9NutpqNgLur~9u0z>_?}`ERNm00+}Nbth@srd zgeN{aZ20?u8Zna&aW06FPf_6sM-1KLZECAE{CkMo6Ha*g6G4a`3`B8y#(U2iL(kULudiF$sH6S)icw`)wCl--mO&)!S z9+;s37-7y-HJ=<)gY!^>e>gY*ZNjK14+KRC4?MNQ81eNPBwWA2s{y_t%*5ZzOnLoA z#Zs2@NUw$q*G#O>-_=YND6=M>=NYSqj8&h%znQLPL85m37QoNKnu+V@?{ubLB0XMb z+CPIkpd6=g)}N#dQ#bLrJVQURKCl070u0w`tk2*5OnKc3A~K;3Yq}j6TobZBuMe1B zOTyfKmSg%gD91G>^SsVvs*t|D{RE5skU^iaKCd^JPLd$kZ}0zIq~Anxye?tN>u%Iv z2A5s`KETi?wEWG+Q}X@;ug^h5Cj0$Q0&3Ogbq-S*!$7)7+>~ef0Pt3QUJo(l_L5q* z{fvLlrqACGOxN2M@?0<5d)TJW`z%at%LaL`SQqJIq|f({zo(eqZxx0-x0~U|ZTi{u z8m-Up`LZUv|1pvX{m1q5x{fJ^3R#oA{^y_&mk{hG{@&+!aJxM7OkV_DT&u7?uM>MI zUY_MZL?-5${tZwZd#umv5RSLEKL2Qd_4q#GdJ4P9`n>NHtww2xvouNepY@r(1tnJf z?02|gs&GAQfc2Q4fed0?KYw?+6;tA3`X7N9)?a6eXa8A$Z5A;zD2vHT`QDo)=6|DN y(sJ5R!}ko%W!!$AKXH6>+f5DgU;TnfKeid?dRcZ6Wb)~6zs8ifz=A~W`u_%jR3Lc( literal 0 HcmV?d00001 diff --git a/public/node_modules/clipboard-event/platform/clipboard-event-handler-win32.exe b/public/node_modules/clipboard-event/platform/clipboard-event-handler-win32.exe new file mode 100644 index 0000000000000000000000000000000000000000..63411831d18fcea49eda748e113ba7a32d090d6d GIT binary patch literal 8696 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 { // image const image = clipboard.readImage() // 大图卡顿来源 const data = image.toDataURL() - globalImageOversize = data.length > 3e5 if (!image.isEmpty()) { return { type: 'image', @@ -142,24 +135,6 @@ const pbpaste = () => { } } -const watchClipboard = async (db, fn) => { - let prev = db.dataBase.data[0] || {} - function loop() { - time.sleep(250).then(loop) - const item = pbpaste() - if (!item) return - item.id = crypto.createHash('md5').update(item.data).digest('hex') - if (item && prev.id != item.id) { - // 剪切板元素 与最近一次复制内容不同 - prev = item - fn(item) - } else { - // 剪切板元素 与上次复制内容相同 - } - } - loop() -} - const copy = (item, isHideMainWindow = true) => { switch (item.type) { case 'text': @@ -221,9 +196,12 @@ const focus = (isBlur = false) => { const toTop = () => (document.scrollingElement.scrollTop = 0) const resetNav = () => document.querySelectorAll('.clip-switch-item')[0]?.click() -watchClipboard(db, (item) => { - // 此函数不断执行 +listener.startListening() + +listener.on('change', () => { + const item = pbpaste() if (!item) return + item.id = crypto.createHash('md5').update(item.data).digest('hex') if (db.updateItemViaId(item.id)) { // 在库中 由 updateItemViaId 更新 updateTime return @@ -235,10 +213,6 @@ watchClipboard(db, (item) => { }) utools.onPluginEnter(() => { - if (globalImageOversize) { - utools.copyText('ImageOverSized') - globalImageOversize = false - } toTop() resetNav() }) diff --git a/public/time.js b/public/time.js deleted file mode 100644 index d25c03a..0000000 --- a/public/time.js +++ /dev/null @@ -1,2 +0,0 @@ -// time.js author: inu1255 -const path=require("path");function newPromise(fn){let a,b;var tmp={resolve(x){if(this.pending){a(x);this.resolved=true;this.pending=false}},reject(e){if(this.pending){b(e);this.rejectd=true;this.pending=false}},pending:true,resolved:false,rejected:false};var pms=new Promise(function(resolve,reject){a=resolve;b=reject;if(fn)fn(tmp.resolve,tmp.reject)});return Object.assign(pms,tmp)}let cbIdx=1;const cbMap=new Map;function getWorker(){if(getWorker.worker)return getWorker.worker;const worker=new Worker(path.join(__dirname,"time.worker.js"));getWorker.worker=worker;worker.onmessage=e=>{if(e.data&&cbMap.has(e.data.cb)){cbMap.get(e.data.cb).apply(null,e.data.args)}};return worker}function call(method,args){const cb=cbIdx++;let pms=newPromise();cbMap.set(cb,function(err,data){if(err)pms.reject(err);else pms.resolve(data)});getWorker().postMessage({method:method,args:args,cb:cb});return pms}function sleep(ms){return call("sleep",[ms])}exports.sleep=sleep; \ No newline at end of file diff --git a/public/time.worker.js b/public/time.worker.js deleted file mode 100644 index 97b632d..0000000 --- a/public/time.worker.js +++ /dev/null @@ -1,2 +0,0 @@ -// time.worker.js author: inu1255 -const apis={sleep(ms){return new Promise(resolve=>setTimeout(resolve,ms))}};onmessage=event=>{const data=event.data;if(!data)return;const{cb,method,args}=data;if(!apis[method]){postMessage({cb:cb,err:"no such method"});return}apis[method].apply(null,args).then(res=>postMessage({cb:cb,data:res}),err=>postMessage({cb:cb,err:err}))}; \ No newline at end of file