-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
1424 lines (1221 loc) · 133 KB
/
index.html
File metadata and controls
1424 lines (1221 loc) · 133 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html><html lang="en" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>才学浅</title><meta name="author" content="ChengZC"><meta name="copyright" content="ChengZC"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#f7f9fe"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-touch-fullscreen" content="yes"><meta name="apple-mobile-web-app-title" content="才学浅"><meta name="application-name" content="才学浅"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="#f7f9fe"><meta property="og:type" content="website">
<meta property="og:title" content="才学浅">
<meta property="og:url" content="https://chengzc.club/index.html">
<meta property="og:site_name" content="才学浅">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230401/Misaka.jpg">
<meta property="article:author" content="ChengZC">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230401/Misaka.jpg"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://chengzc.club/"><link rel="preconnect" href="//npm.elemecdn.com"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><meta name="google-site-verification" content="xxx"/><meta name="baidu-site-verification" content="code-xxx"/><meta name="msvalidate.01" content="xxx"/><link rel="stylesheet" href="https://npm.elemecdn.com/hexo-butterfly-tag-plugins-plus@1.0.17/lib/assets/font-awesome-animation.min.css"><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://npm.elemecdn.com/@fortawesome/fontawesome-free@6.3.0/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://npm.elemecdn.com/node-snackbar@0.1.16/dist/snackbar.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://npm.elemecdn.com/@fancyapps/ui@4.0.31/dist/fancybox.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
friends_vue_info: {"apiurl":"https://friend.chengzc.club/"},
navMusic: true,
changeMainColorPost: true,
algolia: undefined,
localSearch: {"path":"/search.xml","preload":true,"languages":{"hits_empty":"We didn't find any results for the search: ${query}"}},
translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"简","rightMenuMsgToTraditionalChinese":"转为繁体","rightMenuMsgToSimplifiedChinese":"转为简体"},
noticeOutdate: {"limitDay":365,"position":"top","messagePrev":"It has been","messageNext":"days since the last update, the content of the article may be outdated."},
highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":330},
copy: {
success: 'Copy successfully',
error: 'Copy error',
noSupport: 'The browser does not support'
},
relativeDate: {
homepage: false,
post: false
},
runtime: 'days',
date_suffix: {
just: 'Just',
min: 'minutes ago',
hour: 'hours ago',
day: 'days ago',
month: 'months ago'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: {"chs_to_cht":"Traditional Chinese Activated Manually","cht_to_chs":"Simplified Chinese Activated Manually","day_to_night":"Dark Mode Activated Manually","night_to_day":"Light Mode Activated Manually","bgLight":"#3b70fc","bgDark":"#1f1f1f","position":"top-center"},
source: {
justifiedGallery: {
js: 'https://npm.elemecdn.com/flickr-justified-gallery@2.1.2/dist/fjGallery.min.js',
css: 'https://npm.elemecdn.com/flickr-justified-gallery@2.1.2/dist/fjGallery.css'
}
},
isPhotoFigcaption: false,
islazyload: true,
isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: '才学浅',
isPost: false,
isHome: true,
isHighlightShrink: false,
isToc: false,
postUpdate: '2023-07-06 15:20:51'
}</script><noscript><style type="text/css">
#nav {
opacity: 1
}
.justified-gallery img {
opacity: 1
}
#recent-posts time,
#post-meta time {
display: inline !important
}
</style></noscript><script>(win=>{
win.saveToLocal = {
set: function setWithExpiry(key, value, ttl) {
if (ttl === 0) return
const now = new Date()
const expiryDay = ttl * 86400000
const item = {
value: value,
expiry: now.getTime() + expiryDay,
}
localStorage.setItem(key, JSON.stringify(item))
},
get: function getWithExpiry(key) {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = new Date()
if (now.getTime() > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = url => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
document.head.appendChild(script)
})
win.getCSS = (url,id = false) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onerror = reject
link.onload = link.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
link.onload = link.onreadystatechange = null
resolve()
}
document.head.appendChild(link)
})
win.activateDarkMode = function () {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#18171d')
}
}
win.activateLightMode = function () {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#f7f9fe')
}
}
const t = saveToLocal.get('theme')
const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches
const isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches
const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified
if (t === undefined) {
if (isLightMode) activateLightMode()
else if (isDarkMode) activateDarkMode()
else if (isNotSpecified || hasNoSupport) {
const now = new Date()
const hour = now.getHours()
const isNight = hour <= 6 || hour >= 18
isNight ? activateDarkMode() : activateLightMode()
}
window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) {
if (saveToLocal.get('theme') === undefined) {
e.matches ? activateDarkMode() : activateLightMode()
}
})
} else if (t === 'light') activateLightMode()
else activateDarkMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><!-- hexo injector head_end start -->
<style>#recent-posts{margin-top:-1rem;align-content:flex-start;display:flex;flex-wrap:wrap;justify-content:space-between}#recent-posts>.recent-post-item{margin-top:1rem;display:inline-block;height:auto;width:49%}#recent-posts>.recent-post-item .post_cover{width:100%;height:200px}#recent-posts>.recent-post-item .post_cover img.post_bg{width:100%;height:100%}#recent-posts>.recent-post-item>.recent-post-info>.content{display:none}#recent-posts>.recent-post-item{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}#recent-posts>.recent-post-item .left_radius{border-radius:8px 8px 0 0}#recent-posts>.recent-post-item .right_radius{border-radius:8px 8px 0 0}.recent-post-item{height:auto!important}.recent-post-info{padding:0 40px;margin-top:1em;width:100%!important}#recent-posts>.recent-post-item>.recent-post-info>.article-title{-webkit-line-clamp:1;margin-top:.3rem;margin-bottom:.3rem;color:var(--text-highlight-color);font-size:1.2em;line-height:1.4}#recent-posts>.recent-post-item>.recent-post-info>.article-meta-wrap{margin-bottom:1rem}@media screen and (max-width:768px){#recent-posts>.recent-post-item{width:100%}}#recent-posts > .recent-post-item >.recent-post-info > .article-meta-wrap > .tags:before {content:"\A";
white-space: pre;}#recent-posts > .recent-post-item >.recent-post-info > .article-meta-wrap > .tags > .article-meta__separator{display:none}</style>
<!-- hexo injector head_end end --><meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/atom.xml" title="才学浅" type="application/atom+xml">
</head><body data-type="anzhiyu"><div id="web_bg"></div><div id="an_music_bg"></div><div id="loading-box" onclick="document.getElementById("loading-box").classList.add("loaded")"><div class="loading-bg"><img class="loading-img nolazyload" alt="加载头像" src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230401/Misaka.jpg"/><div class="loading-image-dot"></div><div id="loading-percentage">0%</div></div></div><script>const loadingPercentage = document.getElementById("loading-percentage");
let loadingPercentageTimer = setInterval(function() {
var progressBar = document.querySelector(".pace-progress");
if (!progressBar) return
var currentValue = progressBar.getAttribute("data-progress-text");
if (currentValue !== loadingPercentage.textContent) {
loadingPercentage.textContent = currentValue;
if (currentValue === "100%") {
clearInterval(loadingPercentageTimer);
}
}
}, 100);
const preloader = {
endLoading: () => {
document.body.style.overflow = 'auto';
document.getElementById('loading-box').classList.add("loaded")
Pace.restart()
},
initLoading: () => {
document.body.style.overflow = '';
document.getElementById('loading-box').classList.remove("loaded")
}
}
window.addEventListener('load',()=> { preloader.endLoading() })
if (true) {
document.addEventListener('pjax:send', () => { preloader.initLoading() })
document.addEventListener('pjax:complete', () => { preloader.endLoading() })
}</script><link rel="stylesheet" href="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/progress_bar/progress_bar.css"/><script async="async" src="https://npm.elemecdn.com/pace-js@1.2.4/pace.min.js" data-pace-options="{ "restartOnRequestAfter":false,"eventLag":false}"></script><div id="web_box"><div id="web_container"><div id="menu-mask"></div><div class="page" id="body-wrap"><header class="not-top-img" id="page-header"><nav id="nav"><div id="nav-group"><span id="blog_name"><div class="back-home-button"><i class="anzhiyufont anzhiyu-icon-grip-vertical"></i><div class="back-menu-list-groups"><div class="back-menu-list-group"><div class="back-menu-list-title">网页</div><div class="back-menu-list"><a class="back-menu-item" href="https://chengzc.club/" title="博客" target="_blank"><img class="back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230401/Misaka.jpg" alt="博客"/><span class="back-menu-item-text">博客</span></a><a class="back-menu-item" href="https://doc.chengzc.club/" title="文档管理" target="_blank"><img class="back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230402/Entypo_2712%280%29.ico" alt="文档管理"/><span class="back-menu-item-text">文档管理</span></a><a class="back-menu-item" href="https://fly.chengzc.club/" title="同步文件" target="_blank"><img class="back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230402/favicon-96x96.png" alt="同步文件"/><span class="back-menu-item-text">同步文件</span></a><a class="back-menu-item" href="https://chatai.chengzc.club/" title="Chagpt Ai" target="_blank"><img class="back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230402/favicon.svg" alt="Chagpt Ai"/><span class="back-menu-item-text">Chagpt Ai</span></a><a class="back-menu-item" href="https://img.chengzc.club/" title="Lsky图床" target="_blank"><img class="back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://img.chengzc.club/favicon.ico" alt="Lsky图床"/><span class="back-menu-item-text">Lsky图床</span></a></div></div><div class="back-menu-list-group"><div class="back-menu-list-title">项目</div><div class="back-menu-list"><a class="back-menu-item" href="https://github.com/GriMu/uni-bimitv" title="uni-bimitv" target="_blank"><img class="back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230402/github.svg" alt="uni-bimitv"/><span class="back-menu-item-text">uni-bimitv</span></a><a class="back-menu-item" href="https://github.com/GriMu/bimi-api" title="bimi-api" target="_blank"><img class="back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230402/github.svg" alt="bimi-api"/><span class="back-menu-item-text">bimi-api</span></a></div></div></div></div><a id="site-name" href="/" accesskey="h"><div class="title">才学浅</div><i class="anzhiyufont anzhiyu-icon-house-chimney"></i></a></span><div class="mask-name-container"><div id="name-container"><a id="page-name" href="javascript:anzhiyu.scrollToDest(0, 500)">PAGE_NAME</a></div></div><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 文章</span></a><ul class="menus_item_child" style="left:-79px;"><li><a class="site-page child faa-parent animated-hover" href="/archives/"><i class="anzhiyufont anzhiyu-icon-box-archive faa-tada" style="font-size: 0.9em;"></i><span> 隧道</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/categories/"><i class="anzhiyufont anzhiyu-icon-shapes faa-tada" style="font-size: 0.9em;"></i><span> 分类</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/tags/"><i class="anzhiyufont anzhiyu-icon-tags faa-tada" style="font-size: 0.9em;"></i><span> 标签</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 友链</span></a><ul class="menus_item_child" style="left:-79px;"><li><a class="site-page child faa-parent animated-hover" href="/link/"><i class="anzhiyufont anzhiyu-icon-link faa-tada" style="font-size: 0.9em;"></i><span> 友人帐</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/fcircle/"><i class="anzhiyufont anzhiyu-icon-artstation faa-tada" style="font-size: 0.9em;"></i><span> 朋友圈</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/comments/"><i class="anzhiyufont anzhiyu-icon-envelope faa-tada" style="font-size: 0.9em;"></i><span> 留言板</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 我的</span></a><ul class="menus_item_child" style="left:-79px;"><li><a class="site-page child faa-parent animated-hover" href="/music/?id=8295035317&server=netease"><i class="anzhiyufont anzhiyu-icon-music faa-tada" style="font-size: 0.9em;"></i><span> 音乐馆</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/bangumis/"><i class="anzhiyufont anzhiyu-icon-bilibili faa-tada" style="font-size: 0.9em;"></i><span> 追番页</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/album/"><i class="anzhiyufont anzhiyu-icon-images faa-tada" style="font-size: 0.9em;"></i><span> 相册集</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 关于</span></a><ul class="menus_item_child" style="left:-79px;"><li><a class="site-page child faa-parent animated-hover" href="/about/"><i class="anzhiyufont anzhiyu-icon-paper-plane faa-tada" style="font-size: 0.9em;"></i><span> 关于本人</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/essay/"><i class="anzhiyufont anzhiyu-icon-lightbulb faa-tada" style="font-size: 0.9em;"></i><span> 闲言碎语</span></a></li><li><a class="site-page child faa-parent animated-hover" href="javascript:toRandomPost()"><i class="anzhiyufont anzhiyu-icon-shoe-prints1 faa-tada" style="font-size: 0.9em;"></i><span> 随便逛逛</span></a></li></ul></div></div></div><div id="nav-right"><div class="nav-button only-home" id="travellings_button" title="随机前往一个开往项目网站"><a class="site-page" onclick="anzhiyu.totraveling()" title="随机前往一个开往项目网站" href="javascript:void(0);" rel="external nofollow" data-pjax-state="external"><i class="anzhiyufont anzhiyu-icon-train"></i></a></div><div class="nav-button" id="randomPost_button"><a class="site-page" onclick="toRandomPost()" title="随机前往一个文章" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-dice"></i></a></div><div class="nav-button" id="search-button"><a class="site-page social-icon search" href="javascript:void(0);" title="搜索🔍" accesskey="s"><i class="anzhiyufont anzhiyu-icon-magnifying-glass"></i><span> Search</span></a></div><input id="center-console" type="checkbox"/><label class="widget" for="center-console" title="中控台" onclick="anzhiyu.switchConsole();"><i class="left"></i><i class="widget center"></i><i class="widget right"></i></label><div id="console"><div class="console-card-group-reward"><ul class="reward-all console-card"><li class="reward-item"><a href="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/wechat_pay.jpeg" target="_blank"><img class="post-qr-code-img" alt="wechat" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/wechat_pay.jpeg"/></a><div class="post-qr-code-desc">wechat</div></li><li class="reward-item"><a href="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/alipay.jpeg" target="_blank"><img class="post-qr-code-img" alt="alipay" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/alipay.jpeg"/></a><div class="post-qr-code-desc">alipay</div></li></ul></div><div class="console-card-group"><div class="console-card-group-left"><div class="console-card" id="card-newest-comments" onclick="anzhiyu.hideConsole()"><div class="card-content"><div class="author-content-item-tips">互动</div><span class="author-content-item-title"> <span>Newest Comments</span></span></div><div class="aside-list"><span>loading...</span></div></div></div><div class="console-card-group-right"><div class="console-card tags" onclick="anzhiyu.hideConsole()"><div class="card-content"><div class="author-content-item-tips">兴趣点</div><span class="author-content-item-title">寻找你感兴趣的领域</span><div class="card-tags"><div class="item-headline"></div><div class="card-tag-cloud"><a href="/tags/JAVA/" style="font-size: 1.05rem; color: rgb(48, 118, 131);">JAVA<sup>2</sup></a><a href="/tags/Jenkins/" style="font-size: 1.05rem; color: rgb(83, 114, 26);">Jenkins<sup>1</sup></a><a href="/tags/Linux/" style="font-size: 1.05rem; color: rgb(177, 144, 116);">Linux<sup>2</sup></a><a href="/tags/Markdown/" style="font-size: 1.05rem; color: rgb(123, 37, 50);">Markdown<sup>2</sup></a><a href="/tags/Play/" style="font-size: 1.05rem; color: rgb(167, 94, 18);">Play<sup>1</sup></a><a href="/tags/RocketMq/" style="font-size: 1.05rem; color: rgb(13, 104, 126);">RocketMq<sup>1</sup></a><a href="/tags/chatgpt/" style="font-size: 1.05rem; color: rgb(110, 195, 45);">chatgpt<sup>4</sup></a><a href="/tags/git/" style="font-size: 1.05rem; color: rgb(39, 79, 39);">git<sup>4</sup></a><a href="/tags/hexo/" style="font-size: 1.05rem; color: rgb(111, 160, 129);">hexo<sup>1</sup></a><a href="/tags/java/" style="font-size: 1.05rem; color: rgb(78, 175, 18);">java<sup>2</sup></a><a href="/tags/nginx/" style="font-size: 1.05rem; color: rgb(9, 23, 5);">nginx<sup>1</sup></a><a href="/tags/php/" style="font-size: 1.05rem; color: rgb(190, 182, 44);">php<sup>1</sup></a><a href="/tags/python/" style="font-size: 1.05rem; color: rgb(143, 183, 133);">python<sup>1</sup></a><a href="/tags/spring-boot/" style="font-size: 1.05rem; color: rgb(106, 169, 135);">spring-boot<sup>1</sup></a><a href="/tags/ssl/" style="font-size: 1.05rem; color: rgb(37, 41, 120);">ssl<sup>1</sup></a><a href="/tags/tomcat/" style="font-size: 1.05rem; color: rgb(161, 200, 41);">tomcat<sup>1</sup></a><a href="/tags/%E5%90%8C%E6%AD%A5/" style="font-size: 1.05rem; color: rgb(126, 26, 52);">同步<sup>1</sup></a><a href="/tags/%E5%9F%9F%E5%90%8D/" style="font-size: 1.05rem; color: rgb(170, 134, 20);">域名<sup>1</sup></a><a href="/tags/%E5%A3%B0%E5%8D%A1/" style="font-size: 1.05rem; color: rgb(115, 13, 77);">声卡<sup>1</sup></a><a href="/tags/%E5%B7%A5%E5%85%B7/" style="font-size: 1.05rem; color: rgb(200, 187, 141);">工具<sup>1</sup></a><a href="/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 1.05rem; color: rgb(95, 116, 17);">数据库<sup>1</sup></a><a href="/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/" style="font-size: 1.05rem; color: rgb(167, 101, 11);">服务器<sup>2</sup></a><a href="/tags/%E7%A0%81%E4%BA%91/" style="font-size: 1.05rem; color: rgb(111, 99, 183);">码云<sup>1</sup></a><a href="/tags/%E7%AC%94%E8%AE%B0/" style="font-size: 1.05rem; color: rgb(13, 183, 146);">笔记<sup>1</sup></a><a href="/tags/%E7%BC%96%E8%AF%91/" style="font-size: 1.05rem; color: rgb(45, 113, 60);">编译<sup>1</sup></a></div></div><hr/></div></div><div class="console-card history" onclick="anzhiyu.hideConsole()"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-box-archiv"></i><span>文章</span></div><div class="card-archives"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-archive"></i><span>Archives</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/05/"><span class="card-archive-list-date">May 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">1</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/04/"><span class="card-archive-list-date">April 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">6</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2020/04/"><span class="card-archive-list-date">April 2020</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">1</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2019/03/"><span class="card-archive-list-date">March 2019</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">5</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2019/02/"><span class="card-archive-list-date">February 2019</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">1</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2019/01/"><span class="card-archive-list-date">January 2019</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">6</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2018/10/"><span class="card-archive-list-date">October 2018</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">1</span><span>篇</span></div></a></li></ul></div><hr/></div></div></div><div class="button-group"><div class="console-btn-item"><a class="darkmode_switchbutton" onclick="anzhiyu.switchDarkMode()" title="显示模式切换" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-moon"></i></a></div><div class="console-btn-item" id="consoleHideAside" onclick="anzhiyu.hideAsideBtn()" title="边栏显示控制"><a class="asideSwitch"><i class="anzhiyufont anzhiyu-icon-arrows-left-right"></i></a></div><div class="console-btn-item on" id="consoleCommentBarrage" onclick="anzhiyu.switchCommentBarrage()" title="热评开关"><a class="commentBarrage"><i class="anzhiyufont anzhiyu-icon-message"></i></a></div><div class="console-btn-item" id="consoleMusic" onclick="anzhiyu.musicToggle()" title="音乐开关"><a class="music-switch"><i class="anzhiyufont anzhiyu-icon-music"></i></a></div><div class="console-btn-item" id="consoleKeyboard" onclick="anzhiyu.keyboardToggle()" title="快捷键开关"><a class="keyboard-switch"><i class="anzhiyufont anzhiyu-icon-keyboard"></i></a></div></div><div class="console-mask" onclick="anzhiyu.hideConsole()" href="javascript:void(0);"></div></div><div class="nav-button" id="nav-totop"><a class="totopbtn" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i><span id="percent" onclick="anzhiyu.scrollToDest(0,500)">0</span></a></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-bars"></i></a></div></div></div></nav></header><div class="bbTimeList container" id="bbTimeList"><i class="anzhiyufont anzhiyu-icon-jike bber-logo fontbold" onclick="pjax.loadUrl("/essay/")" title="即刻短文" aria-hidden="true"></i><div class="swiper-container swiper-no-swiping essay_bar_swiper_container" id="bbtalk" tabindex="-1"><div class="swiper-wrapper" id="bber-talk" onclick="pjax.loadUrl("/essay/")"><div class="li-style swiper-slide">23年龙灵山之行 [图片]</div><div class="li-style swiper-slide">歌曲推荐</div><div class="li-style swiper-slide">追番凡人修仙传 [图片]</div></div></div><i class="bber-gotobb anzhiyufont anzhiyu-icon-circle-arrow-right" onclick="pjax.loadUrl("/essay/")" title="查看全文"></i></div><script src="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/swiper/swiper.min.js"></script><link rel="stylesheet" href="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/swiper/swiper.min.css" onload="this.media='all'"><div id="home_top"><div class="swiper_container_card" style="height: auto;width: 100%"><div id="bannerGroup"><div id="random-banner"><div class="banners-title"><div class="banners-title-big">谋定而动</div><div class="banners-title-big">厚积薄发。</div><div class="banners-title-small">chengzc.club</div></div><div id="skills-tags-group-all"><div class="tags-group-wrapper"><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Java" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1184e9.jpg" size="60px"></div><div class="tags-group-icon" style="background: #57b6e6"><img class="no-lightbox" title="Docker" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b0f0abe.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #4082c3"><img class="no-lightbox" title="Photoshop" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c240e.png" size="60px"></div><div class="tags-group-icon" style="background: #333"><img class="no-lightbox" title="Node" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.1.1/img/svg/node-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #2e3a41"><img class="no-lightbox" title="Webpack" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b68026c.png" size="60px"></div><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Pinia" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.0.8/img/svg/pinia-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Python" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1230f7.png" size="60px"></div><div class="tags-group-icon" style="background: #937df7"><img class="no-lightbox" title="Vite" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.0.8/img/svg/vite-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #4499e4"><img class="no-lightbox" title="Flutter" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1055c2.png" size="60px"></div><div class="tags-group-icon" style="background: #b8f0ae"><img class="no-lightbox" title="Vue" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b6788bd.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #222"><img class="no-lightbox" title="React" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMS41IC0xMC4yMzE3NCAyMyAyMC40NjM0OCI+CiAgPHRpdGxlPlJlYWN0IExvZ288L3RpdGxlPgogIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIyLjA1IiBmaWxsPSIjNjFkYWZiIi8+CiAgPGcgc3Ryb2tlPSIjNjFkYWZiIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIi8+CiAgICA8ZWxsaXBzZSByeD0iMTEiIHJ5PSI0LjIiIHRyYW5zZm9ybT0icm90YXRlKDYwKSIvPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIiB0cmFuc2Zvcm09InJvdGF0ZSgxMjApIi8+CiAgPC9nPgo8L3N2Zz4K" size="60px"></div><div class="tags-group-icon" style="background: #2c51db"><img class="no-lightbox" title="CSS3" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c251e.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #f7cb4f"><img class="no-lightbox" title="JS" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b121f02.png" size="60px"></div><div class="tags-group-icon" style="background: #e9572b"><img class="no-lightbox" title="HTML" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c241c.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #df5b40"><img class="no-lightbox" title="Git" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b10ccdd.webp" size="60px"></div><div class="tags-group-icon" style="background: #e65164"><img class="no-lightbox" title="Apifox" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2022/11/19/6378d6458c6b6.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Java" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1184e9.jpg" size="60px"></div><div class="tags-group-icon" style="background: #57b6e6"><img class="no-lightbox" title="Docker" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b0f0abe.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #4082c3"><img class="no-lightbox" title="Photoshop" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c240e.png" size="60px"></div><div class="tags-group-icon" style="background: #333"><img class="no-lightbox" title="Node" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.1.1/img/svg/node-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #2e3a41"><img class="no-lightbox" title="Webpack" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b68026c.png" size="60px"></div><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Pinia" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.0.8/img/svg/pinia-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Python" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1230f7.png" size="60px"></div><div class="tags-group-icon" style="background: #937df7"><img class="no-lightbox" title="Vite" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.0.8/img/svg/vite-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #4499e4"><img class="no-lightbox" title="Flutter" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1055c2.png" size="60px"></div><div class="tags-group-icon" style="background: #b8f0ae"><img class="no-lightbox" title="Vue" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b6788bd.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #222"><img class="no-lightbox" title="React" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMS41IC0xMC4yMzE3NCAyMyAyMC40NjM0OCI+CiAgPHRpdGxlPlJlYWN0IExvZ288L3RpdGxlPgogIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIyLjA1IiBmaWxsPSIjNjFkYWZiIi8+CiAgPGcgc3Ryb2tlPSIjNjFkYWZiIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIi8+CiAgICA8ZWxsaXBzZSByeD0iMTEiIHJ5PSI0LjIiIHRyYW5zZm9ybT0icm90YXRlKDYwKSIvPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIiB0cmFuc2Zvcm09InJvdGF0ZSgxMjApIi8+CiAgPC9nPgo8L3N2Zz4K" size="60px"></div><div class="tags-group-icon" style="background: #2c51db"><img class="no-lightbox" title="CSS3" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c251e.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #f7cb4f"><img class="no-lightbox" title="JS" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b121f02.png" size="60px"></div><div class="tags-group-icon" style="background: #e9572b"><img class="no-lightbox" title="HTML" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c241c.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #df5b40"><img class="no-lightbox" title="Git" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b10ccdd.webp" size="60px"></div><div class="tags-group-icon" style="background: #e65164"><img class="no-lightbox" title="Apifox" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://bu.dusays.com/2022/11/19/6378d6458c6b6.png" size="60px"></div></div></div></div><a id="random-hover" href="javascript:toRandomPost()"><i class="anzhiyufont anzhiyu-icon-paper-plane" style="margin-left:10px"></i><div style="margin-left:10px">随便逛逛<i class="anzhiyufont anzhiyu-icon-arrow-right" style="margin-left:10px"></i></div></a></div><div class="categoryGroup"><div class="categoryItem" style="box-shadow:var(--anzhiyu-shadow-blue)"><a class="categoryButton blue" onclick="pjax.loadUrl("/categories/原创/");" href="javascript:void(0);"><span class="categoryButtonText">原创</span><i class="anzhiyufont anzhiyu-icon-dove"></i></a></div><div class="categoryItem" style="box-shadow:var(--anzhiyu-shadow-red)"><a class="categoryButton red" onclick="pjax.loadUrl("/categories/转载/");" href="javascript:void(0);"><span class="categoryButtonText">转载</span><i class="anzhiyufont anzhiyu-icon-fire"></i></a></div><div class="categoryItem" style="box-shadow:var(--anzhiyu-shadow-green)"><a class="categoryButton green" onclick="pjax.loadUrl("/categories/生活/");" href="javascript:void(0);"><span class="categoryButtonText">生活</span><i class="anzhiyufont anzhiyu-icon-book"></i></a></div></div></div><div class="topGroup"><div class="recent-post-item"><div class="post_cover left_radius"><a href="posts/2702640281/" title="python自带的mail函数发送邮件"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000232.jpg" alt="" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000232.jpg"></a></div><div class="recent-post-info"><a class="article-title" href="posts/2702640281/" title="python自带的mail函数发送邮件">python自带的mail函数发送邮件</a></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="posts/300622489/" title="nginx使用php出现502的问题"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000199.jpg" alt="" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000199.jpg"></a></div><div class="recent-post-info"><a class="article-title" href="posts/300622489/" title="nginx使用php出现502的问题">nginx使用php出现502的问题</a></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="posts/3402318135/" title="如何快速搭建hexo博客"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000463.jpg" alt="" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000463.jpg"></a></div><div class="recent-post-info"><a class="article-title" href="posts/3402318135/" title="如何快速搭建hexo博客">如何快速搭建hexo博客</a></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="posts/2561287811/" title="备案顶级域名和二级域名分别启用ssl"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000496.jpg" alt="" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000496.jpg"></a></div><div class="recent-post-info"><a class="article-title" href="posts/2561287811/" title="备案顶级域名和二级域名分别启用ssl">备案顶级域名和二级域名分别启用ssl</a></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="posts/2071970418/" title="spring-boot"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000265.jpg" alt="" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000265.jpg"></a></div><div class="recent-post-info"><a class="article-title" href="posts/2071970418/" title="spring-boot">spring-boot</a></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="posts/1243066710/" title="Hello World"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="/img/default_cover.jpg" alt="" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/img/default_cover.jpg"></a></div><div class="recent-post-info"><a class="article-title" href="posts/1243066710/" title="Hello World">Hello World</a></div></div><a class="todayCard" id="todayCard" target="_blank" rel="noopener" href="https://chatai.chengzc.club/" style="z-index: 1;"><div class="todayCard-info"><div class="todayCard-tips">ChatGpt Ai</div><div class="todayCard-title">我的Ai助手</div></div><div class="todayCard-cover" style="background: url(https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/64215d46a1ca6.webp) no-repeat center /cover"></div><div class="banner-button-group"><div class="banner-button" onclick="event.stopPropagation();event.preventDefault();anzhiyu.hideTodayCard();"><i class="anzhiyufont anzhiyu-icon-arrow-circle-right"></i><span class="banner-button-text">更多推荐</span></div></div></a></div><link rel="stylesheet"></div></div><link rel="stylesheet" onload="this.media='all'"><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div id="categoryBar"><div class="category-bar" id="category-bar"><div id="catalog-bar"><div id="catalog-list"><div class="catalog-list-item" id="首页"><a href="/">首页</a></div>
<div class="catalog-list-item" id="/categories/生活/">
<a href="/categories/生活/">
生活
</a>
</div>
<div class="catalog-list-item" id="/categories/原创/">
<a href="/categories/原创/">
原创
</a>
</div>
<div class="catalog-list-item" id="/categories/转载/">
<a href="/categories/转载/">
转载
</a>
</div>
</div><div class="category-bar-next" id="category-bar-next" onclick="anzhiyu.scrollCategoryBarToRight()"><i class="anzhiyufont anzhiyu-icon-angle-double-right"></i></div><a class="catalog-more" href="/categories/">更多</a></div></div></div><div class="recent-post-item lastestpost-item"><div class="article-meta__categories__box"><a class="article-meta__categories" href="/categories/%E5%8E%9F%E5%88%9B/">原创</a><a class="unvisited-post" href="/posts/3671369038/" title="反编译第三方jar包" style="left: 95px;">未读</a></div><div class="post_cover left"><a href="/posts/3671369038/" title="反编译第三方jar包"><img class="post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405898521/300000298.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="反编译第三方jar包"></a></div><div class="recent-post-info"><span class="newPost">最新文章</span><a class="article-title" href="/posts/3671369038/" title="反编译第三方jar包">反编译第三方jar包</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">Created</span><time class="post-meta-date-created" datetime="2023-05-09T06:15:46.000Z" title="Created 2023-05-09 14:15:46">2023-05-09</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">Updated</span><time class="post-meta-date-updated" datetime="2023-05-09T06:15:48.000Z" title="Updated 2023-05-09 14:15:48">2023-05-09</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/java/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>java</span></a><a class="article-meta__tags" href="/tags/%E7%BC%96%E8%AF%91/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>编译</span></a></span></div><div class="content">修改一个已经编译好的第三方jar包的class文件,需要先反编译jar包,将其转化成可编辑的Java源码文件。可以使用一些反编译工具如jad、jd-gui、procyon等来实现反编译。这里以jd-gui为例,具体步骤如下:
下载并安装JD-GUI 1.6.6软件;
打开jd-gui软件,选择“File”→“Open”,在弹出的窗口中找到需要修改的jar包,然后点击“OK”;
在jd-gui中找到需要修改的类文件,右键点击该文件,选择“Save All Source”,将该jar包输出到本地目录。
使用IDEA或者其他开发工具打开项目目录,配置class文件输出目录
根据编译器提示,导入需要的包,保证项目编译通过
修改对应的Java源码文件,生成class文件;
将修改后的class文件替换原来的class文件,放到项目中测试。
</div></div></div><div class="recent-post-item"><div class="article-meta__categories__box"><a class="article-meta__categories" href="/categories/%E5%8E%9F%E5%88%9B/">原创</a><a class="unvisited-post" href="/posts/712115305/" title="使用自建RocketMq消息队列调试服务">未读</a></div><div class="post_cover right"><a href="/posts/712115305/" title="使用自建RocketMq消息队列调试服务"><img class="post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405898521/300000265.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="使用自建RocketMq消息队列调试服务"></a></div><div class="recent-post-info"><a class="article-title" href="/posts/712115305/" title="使用自建RocketMq消息队列调试服务">使用自建RocketMq消息队列调试服务</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">Created</span><time class="post-meta-date-created" datetime="2023-04-24T09:25:24.000Z" title="Created 2023-04-24 17:25:24">2023-04-24</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">Updated</span><time class="post-meta-date-updated" datetime="2023-04-24T16:32:39.000Z" title="Updated 2023-04-25 00:32:39">2023-04-25</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/RocketMq/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>RocketMq</span></a><a class="article-meta__tags" href="/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>服务器</span></a></span></div><div class="content">一 背景公司很多服务都用到消息队列,不过之前只有正式的mq,和测试分不开,之前的crm补丁用的Play,服务在接收测试消息时影响到正式服务,还有一方面,因为网站端把注册,登录,推广,提醒消息都往一个mq里面发,这样会导致消息积累,注册数据进入CRM有延时,所以之前自建了一个mq,将消息进行转发,防止消息积累,也可以方便自己测试,和查看mq运行情况
二 安装环境
公网服务器一台
安装JDK环境
安装MAVEN环境
三 RocketMQ下载
从Apcehe下载
从GitHup上下载
下载rocketmq管理可视化页面
下载完成,解压文件
![]
四 配置文件修改
进入rocket4.7.1/conf,修改broker.conf配置文件
注意:默认服务端口是9876,在防火墙我们不仅需要放开9876端口,同时还要放开10911, 10912, 10909这三个端口才行,不然连接服务会报错。
10911是remotingServer使用的监听端口,remotingServer主要处理以下三类消息
producer发送的消息
conumser在消费失败或者消费超时发送的 ...</div></div></div><div class="recent-post-item"><div class="article-meta__categories__box"><a class="article-meta__categories" href="/categories/%E5%8E%9F%E5%88%9B/">原创</a><a class="unvisited-post" href="/posts/1361951458/" title="PlayFramework请求堵塞">未读</a></div><div class="post_cover left"><a href="/posts/1361951458/" title="PlayFramework请求堵塞"><img class="post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405898521/300000232.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="PlayFramework请求堵塞"></a></div><div class="recent-post-info"><a class="article-title" href="/posts/1361951458/" title="PlayFramework请求堵塞">PlayFramework请求堵塞</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">Created</span><time class="post-meta-date-created" datetime="2023-04-24T09:20:35.000Z" title="Created 2023-04-24 17:20:35">2023-04-24</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">Updated</span><time class="post-meta-date-updated" datetime="2023-04-24T09:20:34.000Z" title="Updated 2023-04-24 17:20:34">2023-04-24</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/chatgpt/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>chatgpt</span></a><a class="article-meta__tags" href="/tags/Play/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>Play</span></a><a class="article-meta__tags" href="/tags/Linux/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>Linux</span></a></span></div><div class="content">我playframework请求堵塞
ChatGPTPlay框架是一种异步的Web框架,它使用非阻塞I/O模型来处理请求。这意味着每个请求都不会阻塞线程,而是在异步的执行上下文中处理。
然而,如果您的应用程序中存在某些阻塞操作(如数据库查询或网络请求),它们可能会导致请求堵塞。这样做会使应用程序的性能变差,因为它会占用服务器上的线程,从而减少可用的线程池大小。
为了避免这种情况,您可以使用Play框架提供的异步API。这些API允许您将阻塞操作委托给另一个执行上下文,从而使请求不会被阻塞。
例如,如果您需要执行一个数据库查询,您可以使用Play的异步API来执行该查询并在完成后返回结果。这样,您的线程将在查询执行期间保持空闲状态,从而允许其他请求使用该线程。
总之,为了避免Play框架请求堵塞,您应该尽可能使用异步API,并避免在请求处理期间执行阻塞操作。
我异步api示例
ChatGPT以下是一个使用Play框架异步API的示例
我异步api示例
ChatGPT以下是一个使用Play框架异步API的示例:
1234567891011121314151617public cl ...</div></div></div><div class="recent-post-item"><div class="article-meta__categories__box"><a class="article-meta__categories" href="/categories/%E5%8E%9F%E5%88%9B/">原创</a><a class="unvisited-post" href="/posts/2340987232/" title="数据库表结构导出">未读</a></div><div class="post_cover right"><a href="/posts/2340987232/" title="数据库表结构导出"><img class="post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405898521/300000199.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="数据库表结构导出"></a></div><div class="recent-post-info"><a class="article-title" href="/posts/2340987232/" title="数据库表结构导出">数据库表结构导出</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">Created</span><time class="post-meta-date-created" datetime="2023-04-24T09:18:03.000Z" title="Created 2023-04-24 17:18:03">2023-04-24</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">Updated</span><time class="post-meta-date-updated" datetime="2023-04-24T16:52:48.000Z" title="Updated 2023-04-25 00:52:48">2023-04-25</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/chatgpt/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>chatgpt</span></a><a class="article-meta__tags" href="/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>数据库</span></a></span></div><div class="content">数据库表结构导出来自你的消息:mysqldump导出数据库的表结构,不需要数据
来自 ChatGPT 的消息:,可以使用以下命令:
1mysqldump -u [用户名] -p[密码] --no-data [数据库名] > [导出的文件名].sql
其中,--no-data参数表示不导出数据,只导出表结构。 [用户名]、[密码]和[数据库名]分别为你的数据库的用户名、密码和数据库名,[导出的文件名].sql为你想要导出的文件名。
例如:
1mysqldump -u root -p --no-data testdb > testdb_structure.sql
这个命令将testdb数据库的表结构导出为testdb_structure.sql文件,不包含数据。
来自你的消息:解释下mysqldump -h localhost -u u_app -pczbRp~wd123 –skip-lock-tables -d caizhaobang > caizhaobang.sql
来自 ChatGPT 的消息:这个命令是使用mysqldump工具从远程的MySQL服务器 lo ...</div></div></div><div class="recent-post-item"><div class="article-meta__categories__box"><a class="article-meta__categories" href="/categories/%E5%8E%9F%E5%88%9B/">原创</a><a class="unvisited-post" href="/posts/1579996637/" title="Git删除远程已提交文件,保留本地副本">未读</a></div><div class="post_cover left"><a href="/posts/1579996637/" title="Git删除远程已提交文件,保留本地副本"><img class="post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405898521/300000166.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Git删除远程已提交文件,保留本地副本"></a></div><div class="recent-post-info"><a class="article-title" href="/posts/1579996637/" title="Git删除远程已提交文件,保留本地副本">Git删除远程已提交文件,保留本地副本</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">Created</span><time class="post-meta-date-created" datetime="2023-04-24T09:01:26.000Z" title="Created 2023-04-24 17:01:26">2023-04-24</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">Updated</span><time class="post-meta-date-updated" datetime="2023-04-24T09:08:05.000Z" title="Updated 2023-04-24 17:08:05">2023-04-24</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/git/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>git</span></a><a class="article-meta__tags" href="/tags/chatgpt/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>chatgpt</span></a></span></div><div class="content">不想推送文件来自你的消息:git commit的文件不想push到远程库,怎么解决
来自 ChatGPT 的消息:可以使用git的忽略文件机制来解决这个问题。
在仓库根目录下创建一个名为.gitignore的文件。
在该文件中列出您想忽略的文件和/或文件夹的名称。例如,如果您想忽略文件“temp.txt”,则可以这样编写:
temp.txt
如果您想忽略整个文件夹“logs”,则可以这样编写:
logs/
执行git add和git commit命令以将.gitignore文件添加到本地仓库中。
提交更改后,git将不会跟踪列在.gitignore文件中的文件和文件夹。
请注意,如果.gitignore文件中列出的文件/文件夹已经被git跟踪,那么您需要使用git rm –cached命令将它们从git跟踪列表中删除,然后再添加到.gitignore文件中。
来自你的消息:git rm –cached 怎么删除指定的文件
来自 ChatGPT 的消息:可以使用以下命令删除指定文件:
1git rm --cached <filename> ...</div></div></div><div class="recent-post-item"><div class="article-meta__categories__box"><a class="article-meta__categories" href="/categories/%E5%8E%9F%E5%88%9B/">原创</a><a class="unvisited-post" href="/posts/2912589436/" title="服务器CPU占用异常问题查找">未读</a></div><div class="post_cover right"><a href="/posts/2912589436/" title="服务器CPU占用异常问题查找"><img class="post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405898521/300000133.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="服务器CPU占用异常问题查找"></a></div><div class="recent-post-info"><a class="article-title" href="/posts/2912589436/" title="服务器CPU占用异常问题查找">服务器CPU占用异常问题查找</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">Created</span><time class="post-meta-date-created" datetime="2023-04-23T15:51:14.000Z" title="Created 2023-04-23 23:51:14">2023-04-23</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">Updated</span><time class="post-meta-date-updated" datetime="2023-04-24T08:54:16.000Z" title="Updated 2023-04-24 16:54:16">2023-04-24</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>服务器</span></a></span></div><div class="content">背景:阿里云app相关服务器,频繁报警,提示cpu占用异常困难&问题:没有相关云资源权限,无法查看报警提示,不知道服务器上运行哪些服务解决步骤:
开通服务器权限,登录服务器,查看当前服务器使用情况
top命令:查看占用比较多的应用
jps:查看运行的java服务
ll /proc/19703/cwd 查看对应pid运行的服务路径
crontab -l 查看服务定时启动脚本
top -p 21972 -H 查看该java应用所用线程占用情况
出CPU消耗较多的线程id,如22055,将22055转换为16进制0x5627,注意是小写
使用jstack 21972|grep -A 10 0x5627来查询出具体的线程状态
分析负载高的线程栈都是什么业务操作,优化程序并处理问题
</div></div></div><div class="recent-post-item"><div class="article-meta__categories__box"><a class="article-meta__categories" href="/categories/%E7%94%9F%E6%B4%BB/">生活</a><a class="unvisited-post" href="/posts/2367184701/" title="Git使用子模块">未读</a></div><div class="post_cover left"><a href="/posts/2367184701/" title="Git使用子模块"><img class="post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405898521/300000100.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Git使用子模块"></a></div><div class="recent-post-info"><a class="article-title" href="/posts/2367184701/" title="Git使用子模块">Git使用子模块</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">Created</span><time class="post-meta-date-created" datetime="2023-04-03T03:12:00.000Z" title="Created 2023-04-03 11:12:00">2023-04-03</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">Updated</span><time class="post-meta-date-updated" datetime="2023-04-13T17:32:15.328Z" title="Updated 2023-04-14 01:32:15">2023-04-14</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/git/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>git</span></a><a class="article-meta__tags" href="/tags/chatgpt/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>chatgpt</span></a></span></div><div class="content">我git如何创建子模块关联远程仓库,然后进行拉取和提交
ChatGPT
创建子模块并关联远程仓库
在父仓库中执行以下命令:
1git submodule add <远程仓库地址> <子模块目录>
例如:
1git submodule add https://github.com/user/repo.git submodules/repo
这将在父仓库中创建一个子模块,并将其关联到远程仓库的地址。
拉取子模块
在父仓库中执行以下命令:
1git submodule update --init --recursive
这将拉取子模块的代码,并将其更新到父仓库中。
提交子模块
在父仓库中进行修改后,需要将子模块的修改提交到子模块的仓库中。可以进入子模块目录,使用普通的git命令进行提交。
例如:
1234cd submodules/repogit add .git commit -m "修改了子模块"git push origin master
完成子模块的提交后,返回到父仓库,使用普通的git命令提交父仓库的修改即可。
例如:
...</div></div></div><div class="recent-post-item"><a class="unvisited-post" href="/posts/207851142/" title="Jenkins持续化管理工具配置">未读</a><div class="post_cover right"><a href="/posts/207851142/" title="Jenkins持续化管理工具配置"><img class="post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000133.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Jenkins持续化管理工具配置"></a></div><div class="recent-post-info"><a class="article-title" href="/posts/207851142/" title="Jenkins持续化管理工具配置">Jenkins持续化管理工具配置</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">Created</span><time class="post-meta-date-created" datetime="2020-04-11T11:14:19.000Z" title="Created 2020-04-11 19:14:19">2020-04-11</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">Updated</span><time class="post-meta-date-updated" datetime="2023-04-13T17:28:02.863Z" title="Updated 2023-04-14 01:28:02">2023-04-14</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/JAVA/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>JAVA</span></a><a class="article-meta__tags" href="/tags/Jenkins/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>Jenkins</span></a><a class="article-meta__tags" href="/tags/%E5%B7%A5%E5%85%B7/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>工具</span></a></span></div><div class="content">准备工作1. 准备 Git 仓库
1.1. 通过网站右上角的「+」号,选择「新建仓库」,进入新建仓库页面
1.2. 新建仓库
1.3. 打开项目并点击菜单栏上的【CVS】–》【Import into version control】–》【Create Git Repository】创建本地仓库
1.4. 在打开的【Create Git Repository】对话框内选择本地仓库的位置,这里我选择项目的根目录。
1.5. 右击项目点击【Git】–》【Add】,接着点击【Git】–》【Commit Directory】在打开的窗口中选择要上传到本地仓库的代码并添加注释后提交到本地仓库内。
1.6. 右击项目点击【Git】–》【Repository】–》【Remotes…】。在打开的【Git Remotes】窗口中添加码云的远程仓库。码云的远程仓库地址可以在码云仓库内找到。
1.7. 点击【OK】后接着输入码云的账号密码。
1.8. 上传代码到码云,右击项目点击【Git】–》【Repository】–》【Push…】在打开的【Push commits】内可以看到已提 ...</div></div></div><div class="recent-post-item"><div class="article-meta__categories__box"><a class="article-meta__categories" href="/categories/%E8%BD%AC%E8%BD%BD/">转载</a><a class="unvisited-post" href="/posts/2702640281/" title="python自带的mail函数发送邮件">未读</a></div><div class="post_cover left"><a href="/posts/2702640281/" title="python自带的mail函数发送邮件"><img class="post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000232.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="python自带的mail函数发送邮件"></a></div><div class="recent-post-info"><a class="article-title" href="/posts/2702640281/" title="python自带的mail函数发送邮件">python自带的mail函数发送邮件</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">Created</span><time class="post-meta-date-created" datetime="2019-03-01T15:32:12.000Z" title="Created 2019-03-01 23:32:12">2019-03-01</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">Updated</span><time class="post-meta-date-updated" datetime="2023-04-13T17:28:01.785Z" title="Updated 2023-04-14 01:28:01">2023-04-14</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/python/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>python</span></a></span></div><div class="content">
smtplib与email模块(实现邮件的发送)SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。
smtplib模块smtplib模块定义了一个简单的SMTP客户端,可以用来在互联网上发送邮件。
定义的类有如下:
123class smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])class smtplib.SMTP_SSL([host[, port[, local_hostname[, keyfile[, certfile[, timeout]]]]]])class smtplib.LMTP([host[, port[, local_hostname]]])
还有一些已经定义好的异常
123456789exception smtplib.SMTPExceptionexception smtplib.SMTPServerDisconnec ...</div></div></div><div class="recent-post-item"><div class="article-meta__categories__box"><a class="article-meta__categories" href="/categories/%E5%8E%9F%E5%88%9B/">原创</a><a class="unvisited-post" href="/posts/2727272333/" title="ssh连接失败">未读</a></div><div class="post_cover right"><a href="/posts/2727272333/" title="ssh连接失败"><img class="post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230414/1681405751001/900000298.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="ssh连接失败"></a></div><div class="recent-post-info"><a class="article-title" href="/posts/2727272333/" title="ssh连接失败">ssh连接失败</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">Created</span><time class="post-meta-date-created" datetime="2019-03-01T11:32:12.000Z" title="Created 2019-03-01 19:32:12">2019-03-01</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">Updated</span><time class="post-meta-date-updated" datetime="2023-04-21T08:16:50.000Z" title="Updated 2023-04-21 16:16:50">2023-04-21</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/Markdown/" tabindex="-1"><span> <i class="anzhiyufont anzhiyu-icon-hashtag"></i>Markdown</span></a></span></div><div class="content">
使用面板出现ssh连接失败如何处理
查看sshd运行情况升级完php和面板出现了ssh连接失败的问题,按照百度提示方法,查看端口占用,替换端口
在服务器上逐条执行下:
12pip install paramiko==2.0.2bt reload
如果第一种没有解决,就逐条执行下一面的每条命令:
123ssh-keygen -q -t rsa -P "" -f /root/.ssh/id_rsacat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keyschmod 600 /root/.ssh/authorized_keys
到此基本能解决您的ssh连接失败的问题。倘若问题不能解决,请尝试使用putty或者xshell连接下试试。
然而,执行上面的命令均无用 尝试使用
1systemctl status sshd.service;
得到日志如下
根据连接异常进行处理从日志就可以很明确的看出登录ssh失败的原因了,就是权限的问题,本来我没有动过.ssh文件夹的权限,但是不知为何变为damen 75 ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><a class="page-number" href="/page/3/#content-inner">3</a><a class="extend next" rel="next" href="/page/2/#content-inner"><div class="pagination_tips_next">下页</div><i style="font-weight: inherit; font-size: 1rem;" class="anzhiyufont anzhiyu-icon-chevron-right fa-fw"></i></a><div class="toPageGroup"><input id="toPageText" oninput="value=value.replace(/[^0-9]/g,'')" maxlength="3" onkeyup="this.value=this.value.replace(/[^u4e00-u9fa5w]/g,'')" aria-label="toPage"><a id="toPageButton" onclick="anzhiyu.toPage()"><i class="anzhiyufont anzhiyu-icon-angles-right" style="font-weight: inherit; font-size: 1rem;"></i></a></div></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="author-info-top"> <div class="card-info-avatar"><div class="author-status-box"><div class="author-status"><g-emoji class="g-emoji" alias="writing_hand" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/270d.png">✍️</g-emoji><span>on Studying</span></div></div></div></div><div class="author-info__sayhi" id="author-info__sayhi"></div><h1 class="author-info__name">ChengZC</h1><div class="author-info__description"><div style="line-height:1.38;margin:0.6rem 0;text-align:justify;color:rgba(255, 255, 255, 0.8);">这有关于<b style="color:#fff">产品、设计、开发</b>相关的问题和看法,还有<b style="color:#fff">文章翻译</b>和<b style="color:#fff">分享</b>。</div><div style="line-height:1.38;margin:0.6rem 0;text-align:justify;color:rgba(255, 255, 255, 0.8);">相信你可以在这里找到对你有用的<b style="color:#fff">知识</b>和<b style="color:#fff">教程</b>。</div></div><div class="banner-button-group"><a class="banner-button" onclick="pjax.loadUrl("/about/")"><span class="banner-button-text">了解更多</span><i class="anzhiyufont anzhiyu-icon-arrow-circle-right" style="font-size: 1.5rem"></i></a></div><div class="card-info-social-icons is-center"><a class="social-icon faa-parent animated-hover" href="https://github.com/GriMu" target="_blank" title="Github"><i class="anzhiyufont anzhiyu-icon-github"></i></a><a class="social-icon faa-parent animated-hover" href="https://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=2366314738@qq.com" target="_blank" title="Email"><i class="anzhiyufont anzhiyu-icon-envelope"></i></a><a class="social-icon faa-parent animated-hover" href="/atom.xml" target="_blank" title="RSS"><i class="anzhiyufont anzhiyu-icon-rss"></i></a><a class="social-icon faa-parent animated-hover" href="https://space.bilibili.com/3999900" target="_blank" title="BiliBili"><i class="anzhiyufont anzhiyu-icon-bilibili"></i></a><a class="social-icon faa-parent animated-hover" href="tencent://Message/?Uin=2366314738&amp;websiteName=local.edu.com:8888=&amp;Menu=yes" target="_blank" title="QQ"><i class="anzhiyufont anzhiyu-icon-qq"></i></a></div></div><div class="card-widget anzhiyu-right-widget" id="card-wechat" onclick="null"><div id="flip-wrapper"><div id="flip-content"><div class="face" style="background: url(https://img.chengzc.club/i/2023/04/21/6441db5fe6397.png) center center / 100% no-repeat"></div><div class="back face" style="background: url(https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230413/gzh.png) center center / 100% no-repeat"></div></div></div></div><div class="sticky_layout"><div class="card-widget"><div class="card-tags"><div class="item-headline"></div><div class="card-tag-cloud"><a href="/tags/JAVA/" style="font-size: 1.05rem; color: rgb(48, 118, 131);">JAVA<sup>2</sup></a><a href="/tags/Jenkins/" style="font-size: 1.05rem; color: rgb(83, 114, 26);">Jenkins<sup>1</sup></a><a href="/tags/Linux/" style="font-size: 1.05rem; color: rgb(177, 144, 116);">Linux<sup>2</sup></a><a href="/tags/Markdown/" style="font-size: 1.05rem; color: rgb(123, 37, 50);">Markdown<sup>2</sup></a><a href="/tags/Play/" style="font-size: 1.05rem; color: rgb(167, 94, 18);">Play<sup>1</sup></a><a href="/tags/RocketMq/" style="font-size: 1.05rem; color: rgb(13, 104, 126);">RocketMq<sup>1</sup></a><a href="/tags/chatgpt/" style="font-size: 1.05rem; color: rgb(110, 195, 45);">chatgpt<sup>4</sup></a><a href="/tags/git/" style="font-size: 1.05rem; color: rgb(39, 79, 39);">git<sup>4</sup></a><a href="/tags/hexo/" style="font-size: 1.05rem; color: rgb(111, 160, 129);">hexo<sup>1</sup></a><a href="/tags/java/" style="font-size: 1.05rem; color: rgb(78, 175, 18);">java<sup>2</sup></a><a href="/tags/nginx/" style="font-size: 1.05rem; color: rgb(9, 23, 5);">nginx<sup>1</sup></a><a href="/tags/php/" style="font-size: 1.05rem; color: rgb(190, 182, 44);">php<sup>1</sup></a><a href="/tags/python/" style="font-size: 1.05rem; color: rgb(143, 183, 133);">python<sup>1</sup></a><a href="/tags/spring-boot/" style="font-size: 1.05rem; color: rgb(106, 169, 135);">spring-boot<sup>1</sup></a><a href="/tags/ssl/" style="font-size: 1.05rem; color: rgb(37, 41, 120);">ssl<sup>1</sup></a><a href="/tags/tomcat/" style="font-size: 1.05rem; color: rgb(161, 200, 41);">tomcat<sup>1</sup></a><a href="/tags/%E5%90%8C%E6%AD%A5/" style="font-size: 1.05rem; color: rgb(126, 26, 52);">同步<sup>1</sup></a><a href="/tags/%E5%9F%9F%E5%90%8D/" style="font-size: 1.05rem; color: rgb(170, 134, 20);">域名<sup>1</sup></a><a href="/tags/%E5%A3%B0%E5%8D%A1/" style="font-size: 1.05rem; color: rgb(115, 13, 77);">声卡<sup>1</sup></a><a href="/tags/%E5%B7%A5%E5%85%B7/" style="font-size: 1.05rem; color: rgb(200, 187, 141);">工具<sup>1</sup></a><a href="/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 1.05rem; color: rgb(95, 116, 17);">数据库<sup>1</sup></a><a href="/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/" style="font-size: 1.05rem; color: rgb(167, 101, 11);">服务器<sup>2</sup></a><a href="/tags/%E7%A0%81%E4%BA%91/" style="font-size: 1.05rem; color: rgb(111, 99, 183);">码云<sup>1</sup></a><a href="/tags/%E7%AC%94%E8%AE%B0/" style="font-size: 1.05rem; color: rgb(13, 183, 146);">笔记<sup>1</sup></a><a href="/tags/%E7%BC%96%E8%AF%91/" style="font-size: 1.05rem; color: rgb(45, 113, 60);">编译<sup>1</sup></a></div></div><hr/><div class="card-archives"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-archive"></i><span>Archives</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/05/"><span class="card-archive-list-date">May 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">1</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/04/"><span class="card-archive-list-date">April 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">6</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2020/04/"><span class="card-archive-list-date">April 2020</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">1</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2019/03/"><span class="card-archive-list-date">March 2019</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">5</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2019/02/"><span class="card-archive-list-date">February 2019</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">1</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2019/01/"><span class="card-archive-list-date">January 2019</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">6</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2018/10/"><span class="card-archive-list-date">October 2018</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">1</span><span>篇</span></div></a></li></ul></div><hr/><div class="card-webinfo"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-chart-line"></i><span>Info</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">Article :</div><div class="item-count">21</div></div><div class="webinfo-item"><div class="item-name">Run time :</div><div class="item-count" id="runtimeshow" data-publishDate="2018-10-17T16:00:00.000Z"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></div></div><div class="webinfo-item"><div class="item-name">Total Count :</div><div class="item-count">62.1k</div></div><div class="webinfo-item"><div class="item-name">UV :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></div></div><div class="webinfo-item"><div class="item-name">PV :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></div></div><div class="webinfo-item"><div class="item-name">Last Push :</div><div class="item-count" id="last-push-date" data-lastPushDate="2023-07-06T07:20:50.716Z"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></div></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div id="footer_deal"><a class="deal_link" href="mailto:2366314738@qq.com" title="email"><i class="anzhiyufont anzhiyu-icon-envelope"></i></a><a class="deal_link" target="_blank" rel="noopener" href="https://weibo.com/u/3453541994" title="微博"><i class="anzhiyufont anzhiyu-icon-weibo"></i></a><img class="footer_mini_logo" title="返回顶部" onclick="anzhiyu.scrollToDest(0, 500)" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230401/Misaka.jpg" size="50px"/><a class="deal_link" target="_blank" rel="noopener" href="https://github.com/GriMu" title="Github"><i class="anzhiyufont anzhiyu-icon-github"></i></a><a class="deal_link" target="_blank" rel="noopener" href="https://space.bilibili.com/3999900" title="Bilibili"><i class="anzhiyufont anzhiyu-icon-bilibili"></i></a></div><div id="anzhiyu-footer"><div class="footer-group"><div class="footer-title">服务</div><div class="footer-links"><a class="footer-item" title="Chagpt Ai" target="_blank" href="https://chatai.chengzc.club/">Chagpt Ai</a><a class="footer-item" title="文档管理" target="_blank" href="https://doc.chengzc.club/">文档管理</a><a class="footer-item" title="开往" target="_blank" href="https://github.com/travellings-link/travellings">开往</a></div></div><div class="footer-group"><div class="footer-title">主题</div><div class="footer-links"><a class="footer-item" title="文档" target="_blank" href="https://blog.anheyu.com/docs/">文档</a><a class="footer-item" title="源码" target="_blank" href="https://github.com/anzhiyu-c/hexo-theme-anzhiyu">源码</a><a class="footer-item" title="更新日志" target="_blank" href="https://blog.anheyu.com/update/">更新日志</a></div></div><div class="footer-group"><div class="footer-title">导航</div><div class="footer-links"><a class="footer-item" title="即刻短文" target="_blank" href="/essay/">即刻短文</a><a class="footer-item" title="友链文章" target="_blank" href="/fcircle/">友链文章</a><a class="footer-item" title="留言板" target="_blank" href="/comments/">留言板</a></div></div><div class="footer-group"><div class="footer-title">协议</div><div class="footer-links"><a class="footer-item" title="隐私协议" target="_blank" href="/privacy/">隐私协议</a><a class="footer-item" title="Cookies" target="_blank" href="/cookies/">Cookies</a><a class="footer-item" title="版权协议" target="_blank" href="/copyright/">版权协议</a></div></div><div class="footer-group"><div class="footer-title-group"><div class="footer-title">友链</div><a class="random-friends-btn" id="footer-random-friends-btn" href="javascript:addFriendLinksInFooter();" title="换一批友情链接"><i class="anzhiyufont anzhiyu-icon-arrow-rotate-right"></i></a></div><div class="footer-links" id="friend-links-in-footer"></div></div></div><div class="copyright">©2020 - 2023 By ChengZC</div><div id="workboard"><img class="workSituationImg boardsign" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230402/ChengZC-%E4%B8%8A%E7%8F%AD%E6%91%B8%E9%B1%BC%E4%B8%AD.svg" alt="距离月入25k也就还差一个大佬带我~" title="距离月入25k也就还差一个大佬带我~"/><div id="runtimeTextTip"></div></div><p id="ghbdages"><a class="github-badge" target="_blank" href="https://hexo.io/" style="margin-inline:5px" data-title="博客框架为Hexo_v5.4.0" title="博客框架为Hexo_v5.4.0"><img src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.1.5/img/badge/Frame-Hexo.svg" alt="博客框架为Hexo_v5.4.0"/></a><a class="github-badge" target="_blank" href="https://cloud.tencent.com/" style="margin-inline:5px" data-title="本站使用腾讯云为静态资源提供CDN加速" title="本站使用腾讯云为静态资源提供CDN加速"><img src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230402/CDN-%E8%85%BE%E8%AE%AF%E4%BA%91-3693F3.svg" alt="本站使用腾讯云为静态资源提供CDN加速"/></a><a class="github-badge" target="_blank" href="https://beian.miit.gov.cn/" style="margin-inline:5px" data-title="本站已在鄂进行备案" title="本站已在鄂进行备案"><img src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230403/%E9%84%82ICP%E5%A4%8719005094%E5%8F%B7-1.svg" alt="本站已在鄂进行备案"/></a><a class="github-badge" target="_blank" href="https://github.com/" style="margin-inline:5px" data-title="本站项目由Github托管" title="本站项目由Github托管"><img src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.1.5/img/badge/Source-Github.svg" alt="本站项目由Github托管"/></a><a class="github-badge" target="_blank" href="http://creativecommons.org/licenses/by-nc-sa/4.0/" style="margin-inline:5px" data-title="本站采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可" title="本站采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可"><img src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.2.0/img/badge/Copyright-BY-NC-SA.svg" alt="本站采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可"/></a></p></div></footer></div></div></div><div id="sidebar"><div id="sidebar-menus"><div class="avatar-img is-center"><img src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230401/Misaka.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/" title="archive"><div class="headline">Articles</div><div class="length-num">21</div></a><a href="/tags/" title="tag"><div class="headline">Tags</div><div class="length-num">25</div></a><a href="/categories/" title="category"><div class="headline">Categories</div><div class="length-num">3</div></a></div><div class="menus_items"><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 文章</span></a><ul class="menus_item_child" style="left:-79px;"><li><a class="site-page child faa-parent animated-hover" href="/archives/"><i class="anzhiyufont anzhiyu-icon-box-archive faa-tada" style="font-size: 0.9em;"></i><span> 隧道</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/categories/"><i class="anzhiyufont anzhiyu-icon-shapes faa-tada" style="font-size: 0.9em;"></i><span> 分类</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/tags/"><i class="anzhiyufont anzhiyu-icon-tags faa-tada" style="font-size: 0.9em;"></i><span> 标签</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 友链</span></a><ul class="menus_item_child" style="left:-79px;"><li><a class="site-page child faa-parent animated-hover" href="/link/"><i class="anzhiyufont anzhiyu-icon-link faa-tada" style="font-size: 0.9em;"></i><span> 友人帐</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/fcircle/"><i class="anzhiyufont anzhiyu-icon-artstation faa-tada" style="font-size: 0.9em;"></i><span> 朋友圈</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/comments/"><i class="anzhiyufont anzhiyu-icon-envelope faa-tada" style="font-size: 0.9em;"></i><span> 留言板</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 我的</span></a><ul class="menus_item_child" style="left:-79px;"><li><a class="site-page child faa-parent animated-hover" href="/music/?id=8295035317&server=netease"><i class="anzhiyufont anzhiyu-icon-music faa-tada" style="font-size: 0.9em;"></i><span> 音乐馆</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/bangumis/"><i class="anzhiyufont anzhiyu-icon-bilibili faa-tada" style="font-size: 0.9em;"></i><span> 追番页</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/album/"><i class="anzhiyufont anzhiyu-icon-images faa-tada" style="font-size: 0.9em;"></i><span> 相册集</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 关于</span></a><ul class="menus_item_child" style="left:-79px;"><li><a class="site-page child faa-parent animated-hover" href="/about/"><i class="anzhiyufont anzhiyu-icon-paper-plane faa-tada" style="font-size: 0.9em;"></i><span> 关于本人</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/essay/"><i class="anzhiyufont anzhiyu-icon-lightbulb faa-tada" style="font-size: 0.9em;"></i><span> 闲言碎语</span></a></li><li><a class="site-page child faa-parent animated-hover" href="javascript:toRandomPost()"><i class="anzhiyufont anzhiyu-icon-shoe-prints1 faa-tada" style="font-size: 0.9em;"></i><span> 随便逛逛</span></a></li></ul></div></div></div></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="Switch Between Traditional Chinese And Simplified Chinese">繁</button><button id="darkmode" type="button" title="Switch Between Light And Dark Mode"><i class="anzhiyufont anzhiyu-icon-circle-half-stroke"></i></button><button id="hide-aside-btn" type="button" title="Toggle between single-column and double-column"><i class="anzhiyufont anzhiyu-icon-arrows-left-right"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="Setting"><i class="anzhiyufont anzhiyu-icon-gear"></i></button><button id="go-up" type="button" title="Back To Top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><div id="nav-music"><a id="nav-music-hoverTips" onclick="anzhiyu.musicToggle()" accesskey="m">播放音乐</a><div id="console-music-bg"></div><meting-js id="8295035317" server="netease" type="playlist" mutex="true" preload="none" theme="var(--anzhiyu-main)" data-lrctype="0" order="random"></meting-js></div><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">Search</span><span id="loading-status"></span><button class="search-close-button"><i class="anzhiyufont anzhiyu-icon-xmark"></i></button></nav><div class="is-center" id="loading-database"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-pulse-icon"></i><span> Loading the Database</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="Search for Posts" type="text"/></div></div><hr/><div id="local-search-results"></div></div></div><div id="search-mask"></div></div><div id="rightMenu"><div class="rightMenu-group rightMenu-small"><div class="rightMenu-item" id="menu-backward"><i class="anzhiyufont anzhiyu-icon-arrow-left"></i></div><div class="rightMenu-item" id="menu-forward"><i class="anzhiyufont anzhiyu-icon-arrow-right"></i></div><div class="rightMenu-item" id="menu-refresh"><i class="anzhiyufont anzhiyu-icon-arrow-rotate-right" style="font-size: 1rem;"></i></div><div class="rightMenu-item" id="menu-top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></div></div><div class="rightMenu-group rightMenu-line rightMenuPlugin"><div class="rightMenu-item" id="menu-copytext"><i class="anzhiyufont anzhiyu-icon-copy"></i><span>复制选中文本</span></div><div class="rightMenu-item" id="menu-pastetext"><i class="anzhiyufont anzhiyu-icon-paste"></i><span>粘贴文本</span></div><a class="rightMenu-item" id="menu-commenttext"><i class="anzhiyufont anzhiyu-icon-comment-medical"></i><span>引用到评论</span></a><div class="rightMenu-item" id="menu-newwindow"><i class="anzhiyufont anzhiyu-icon-window-restore"></i><span>新窗口打开</span></div><div class="rightMenu-item" id="menu-copylink"><i class="anzhiyufont anzhiyu-icon-link"></i><span>复制链接地址</span></div><div class="rightMenu-item" id="menu-copyimg"><i class="anzhiyufont anzhiyu-icon-images"></i><span>复制此图片</span></div><div class="rightMenu-item" id="menu-downloadimg"><i class="anzhiyufont anzhiyu-icon-download"></i><span>下载此图片</span></div><div class="rightMenu-item" id="menu-newwindowimg"><i class="anzhiyufont anzhiyu-icon-window-restore"></i><span>新窗口打开图片</span></div><div class="rightMenu-item" id="menu-search"><i class="anzhiyufont anzhiyu-icon-magnifying-glass"></i><span>站内搜索</span></div><div class="rightMenu-item" id="menu-searchBaidu"><i class="anzhiyufont anzhiyu-icon-magnifying-glass"></i><span>百度搜索</span></div><div class="rightMenu-item" id="menu-music-toggle"><i class="anzhiyufont anzhiyu-icon-play"></i><span>播放音乐</span></div><div class="rightMenu-item" id="menu-music-back"><i class="anzhiyufont anzhiyu-icon-backward"></i><span>切换到上一首</span></div><div class="rightMenu-item" id="menu-music-forward"><i class="anzhiyufont anzhiyu-icon-forward"></i><span>切换到下一首</span></div><div class="rightMenu-item" id="menu-music-playlist" onclick="window.open("https://music.163.com/#/my/m/music/playlist?id=26749266", "_blank");" style="display: none;"><i class="anzhiyufont anzhiyu-icon-radio"></i><span>查看所有歌曲</span></div><div class="rightMenu-item" id="menu-music-copyMusicName"><i class="anzhiyufont anzhiyu-icon-copy"></i><span>复制歌名</span></div></div><div class="rightMenu-group rightMenu-line rightMenuOther"><a class="rightMenu-item menu-link" id="menu-randomPost"><i class="anzhiyufont anzhiyu-icon-shuffle"></i><span>随便逛逛</span></a><a class="rightMenu-item menu-link" href="/categories/"><i class="anzhiyufont anzhiyu-icon-cube"></i><span>博客分类</span></a><a class="rightMenu-item menu-link" href="/tags/"><i class="anzhiyufont anzhiyu-icon-tags"></i><span>文章标签</span></a></div><div class="rightMenu-group rightMenu-line rightMenuOther"><a class="rightMenu-item" id="menu-copy" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-copy"></i><span>复制地址</span></a><a class="rightMenu-item" id="menu-commentBarrage" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-message"></i><span class="menu-commentBarrage-text">关闭热评</span></a><a class="rightMenu-item" id="menu-darkmode" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-circle-half-stroke"></i><span class="menu-darkmode-text">深色模式</span></a><a class="rightMenu-item" id="menu-translate" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-language"></i><span>轉為繁體</span></a></div></div><div id="rightmenu-mask"></div><div id="he-plugin-simple"></div><script>var WIDGET = {
"CONFIG": {
"modules": "0124",
"background": "2",
"tmpColor": "FFFFFF",
"tmpSize": "16",
"cityColor": "FFFFFF",
"citySize": "16",
"aqiColor": "E8D87B",
"aqiSize": "16",
"weatherIconSize": "24",
"alertIconSize": "18",
"padding": "10px 10px 10px 10px",
"shadow": "0",
"language": "auto",
"borderRadius": "20",
"fixed": "true",
"vertical": "top",
"horizontal": "left",
"left": "20",
"top": "7.1",
"key": "df245676fb434a0691ead1c63341cd94"
}
}
</script><link rel="stylesheet" href="https://widget.qweather.net/simple/static/css/he-simple.css?v=1.4.0"/><script src="https://widget.qweather.net/simple/static/js/he-simple.js?v=1.4.0"></script><div><script src="https://npm.elemecdn.com/hexo-theme-anzhiyu@1.4.0/source/js/utils.js"></script><script src="https://npm.elemecdn.com/hexo-theme-anzhiyu@1.4.0/source/js/main.js"></script><script src="https://npm.elemecdn.com/hexo-theme-anzhiyu@1.4.0/source/js/tw_cn.js"></script><script src="https://npm.elemecdn.com/@fancyapps/ui@4.0.31/dist/fancybox.umd.js"></script><script src="https://npm.elemecdn.com/instant.page@5.1.1/instantpage.js" type="module"></script><script src="https://npm.elemecdn.com/vanilla-lazyload@17.3.1/dist/lazyload.iife.min.js"></script><script src="https://npm.elemecdn.com/node-snackbar@0.1.16/dist/snackbar.min.js"></script><canvas id="universe"></canvas><script async src="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/dark/dark.js"></script><script>// 消除控制台打印
var HoldLog = console.log;
console.log = function () {};
let now1 = new Date();
queueMicrotask(() => {
const Log = function () {
HoldLog.apply(console, arguments);
}; //在恢复前输出日志
const grt = new Date("10/10/2018 00:00:00"); //此处修改你的建站时间或者网站上线时间
now1.setTime(now1.getTime() + 250);
const days = (now1 - grt) / 1000 / 60 / 60 / 24;
const dnum = Math.floor(days);
const ascll = [
`欢迎使用安知鱼!`,
`生活明朗, 万物可爱`,
`
█████╗ ███╗ ██╗███████╗██╗ ██╗██╗██╗ ██╗██╗ ██╗
██╔══██╗████╗ ██║╚══███╔╝██║ ██║██║╚██╗ ██╔╝██║ ██║
███████║██╔██╗ ██║ ███╔╝ ███████║██║ ╚████╔╝ ██║ ██║
██╔══██║██║╚██╗██║ ███╔╝ ██╔══██║██║ ╚██╔╝ ██║ ██║
██║ ██║██║ ╚████║███████╗██║ ██║██║ ██║ ╚██████╔╝
╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝
`,
"已上线",
dnum,
"天",
"©2020 By 安知鱼 1.4.0",
];
const ascll2 = [`NCC2-036`, `调用前置摄像头拍照成功,识别为【小笨蛋】.`, `Photo captured: `, `🤪`];
setTimeout(
Log.bind(
console,
`\n%c${ascll[0]} %c ${ascll[1]} %c ${ascll[2]} %c${ascll[3]}%c ${ascll[4]}%c ${ascll[5]}\n\n%c ${ascll[6]}\n`,
"color:#3b70fc",
"",
"color:#3b70fc",
"color:#3b70fc",
"",
"color:#3b70fc",
""
)
);
setTimeout(
Log.bind(
console,
`%c ${ascll2[0]} %c ${ascll2[1]} %c \n${ascll2[2]} %c\n${ascll2[3]}\n`,
"color:white; background-color:#4fd953",
"",
"",
'background:url("https://npm.elemecdn.com/anzhiyu-blog@1.1.6/img/post/common/tinggge.gif") no-repeat;font-size:450%'
)
);
setTimeout(Log.bind(console, "%c WELCOME %c 你好,小笨蛋.", "color:white; background-color:#4f90d9", ""));
setTimeout(
console.warn.bind(
console,
"%c ⚡ Powered by 安知鱼 %c 你正在访问 ChengZC 的博客.",
"color:white; background-color:#f0ad4e",
""
)
);
setTimeout(Log.bind(console, "%c W23-12 %c 你已打开控制台.", "color:white; background-color:#4f90d9", ""));
setTimeout(
console.warn.bind(console, "%c S013-782 %c 你现在正处于监控中.", "color:white; background-color:#d9534f", "")
);
});</script><script async src="/anzhiyu/random.js"></script><script async="async">(function () {
var grt = new Date("10/10/2018 00:00:00"); //设置网站上线时间
var now = new Date();
var dnum;
var hnum;
var mnum;
var snum;
var nowHour;
// 计算并更新天数、小时数、分钟数和秒数
function updateTime() {
now = new Date(); // 更新 now 的值
nowHour = now.getHours(); // 更新 nowHour 的值
var days = (now - grt) / 1000 / 60 / 60 / 24;
dnum = Math.floor(days);
var hours = (now - grt) / 1000 / 60 / 60 - 24 * dnum;
hnum = Math.floor(hours);
if (String(hnum).length == 1) {
hnum = "0" + hnum;
}
var minutes = (now - grt) / 1000 / 60 - 24 * 60 * dnum - 60 * hnum;
mnum = Math.floor(minutes);
if (String(mnum).length == 1) {
mnum = "0" + mnum;
}
var seconds = (now - grt) / 1000 - 24 * 60 * 60 * dnum - 60 * 60 * hnum - 60 * mnum;
snum = Math.round(seconds);
if (String(snum).length == 1) {
snum = "0" + snum;
}
}
// 更新网页中显示的网站运行时间
function updateHtml() {
const footer = document.getElementById("footer");
if (!footer) return
let currentTimeHtml = "";
if (nowHour < 18 && nowHour >= 9) {
// 如果是上班时间,默认就是"安知鱼-上班摸鱼中.svg"图片,不需要更改
currentTimeHtml = `本站居然运行了 ${dnum} 天<span id='runtime'> ${hnum} 小时 ${mnum} 分 ${snum} 秒 </span><i class='anzhiyufont anzhiyu-icon-heartbeat' style='color:red'></i>`;
} else {
// 如果是下班时间,插入"安知鱼-下班啦.svg"图片
let img = document.querySelector("#workboard .workSituationImg");
img.src = "https://czcsw-1256525464.cos.ap-chengdu.myqcloud.com/images/blog/20230402/ChengZC-%E4%B8%8B%E7%8F%AD%E5%95%A6.svg";
img.title = "下班了就该开开心心的玩耍,嘿嘿~";
img.alt = "下班了就该开开心心的玩耍,嘿嘿~";
currentTimeHtml = `本站居然运行了 ${dnum} 天<span id='runtime'> ${hnum} 小时 ${mnum} 分 ${snum} 秒 </span><i class='anzhiyufont anzhiyu-icon-heartbeat' style='color:red'></i>`;
}
if (document.getElementById("runtimeTextTip")) {
document.getElementById("runtimeTextTip").innerHTML = currentTimeHtml;
}
}
setInterval(() => {
updateTime();
updateHtml();
}, 1000);
})();</script><script src="https://npm.elemecdn.com/hexo-theme-anzhiyu@1.4.0/source/js/search/local-search.js"></script><div class="js-pjax"><input type="hidden" name="page-type" id="page-type" value="anzhiyu"></div><script>window.addEventListener('load', () => {
const changeContent = (content) => {
if (content === '') return content
content = content.replace(/<img.*?src="(.*?)"?[^\>]+>/ig, '[image]') // replace image link
content = content.replace(/<a[^>]+?href=["']?([^"']+)["']?[^>]*>([^<]+)<\/a>/gi, '[link]') // replace url
content = content.replace(/<pre><code>.*?<\/pre>/gi, '[code]') // replace code
content = content.replace(/<[^>]+>/g,"") // remove html tag
if (content.length > 150) {
content = content.substring(0,150) + '...'
}
return content
}
const getComment = () => {
const runTwikoo = () => {
twikoo.getRecentComments({
envId: 'https://twikoo.chengzc.club',
region: '',
pageSize: 6,
includeReply: true
}).then(function (res) {
const twikooArray = res.map(e => {
return {
'content': changeContent(e.comment),
'avatar': e.avatar,
'nick': e.nick,
'url': e.url + '#' + e.id,
'date': new Date(e.created).toISOString()
}
})
saveToLocal.set('twikoo-newest-comments', JSON.stringify(twikooArray), 10/(60*24))
generateHtml(twikooArray)
}).catch(function (err) {
const $dom = document.querySelector('#card-newest-comments .aside-list')
$dom.innerHTML= "Unable to get the data, please make sure the settings are correct."
})
}
if (typeof twikoo === 'object') {
runTwikoo()
} else {
getScript('https://npm.elemecdn.com/twikoo@1.6.16/dist/twikoo.all.min.js').then(runTwikoo)
}
}
const generateHtml = array => {
let result = ''
if (array.length) {
for (let i = 0; i < array.length; i++) {
result += '<div class=\'aside-list-item\'>'
if (true) {
const name = 'data-lazy-src'
result += `<a href='${array[i].url}' class='thumbnail'><img ${name}='${array[i].avatar}' alt='${array[i].nick}'><div class='name'><span>${array[i].nick}</span></div></a>`
}
result += `<div class='content'>
<a class='comment' href='${array[i].url}' title='${array[i].content}'>${array[i].content}</a>
<time datetime="${array[i].date}">${anzhiyu.diffDate(array[i].date, true)}</time></div>
</div>`
}
} else {
result += 'No Comment'
}
let $dom = document.querySelector('#card-newest-comments .aside-list')
$dom.innerHTML= result
window.lazyLoadInstance && window.lazyLoadInstance.update()
window.pjax && window.pjax.refresh($dom)
}
const newestCommentInit = () => {
if (document.querySelector('#card-newest-comments .aside-list')) {
const data = saveToLocal.get('twikoo-newest-comments')
if (data) {
generateHtml(JSON.parse(data))
} else {
getComment()
}
}
}
newestCommentInit()
document.addEventListener('pjax:complete', newestCommentInit)
})</script><script async data-pjax src="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.1/bubble/bubble.js"></script><script>var visitorMail = "visitor@anheyu.com";</script><script>//动态标题
let leaveTitle = 'w(゚Д゚)w 不要走!再看看嘛!';
let backTitle = '♪(^∇^*)欢迎肥来!';
let OriginTitile = document.title
let titleTime
document.addEventListener('visibilitychange', function () {
if (document.hidden) {
//离开当前页面时标签显示内容
document.title = leaveTitle
clearTimeout(titleTime)
} else {
//返回当前页面时标签显示内容
document.title = backTitle + OriginTitile
//两秒后变回正常标题
titleTime = setTimeout(function () {
document.title = OriginTitile
}, 2000)
}
})</script><script data-pjax="true">if (document.querySelector(".comment-barrage")){
var commentBarrageConfig = {
maxBarrage: 1,
barrageTime: 4000,
twikooUrl: "https://twikoo.chengzc.club",
accessToken: "",
mailMd5: "",
pageUrl: window.location.pathname,
barrageTimer: [],
barrageList: [],
barrageIndex: 0,
dom: document.querySelector(".comment-barrage"),
};
var commentInterval = null;
var hoverOnCommentBarrage = false;
document.querySelector(".comment-barrage").addEventListener("mouseenter", function() {
hoverOnCommentBarrage = true;
});
document.querySelector(".comment-barrage").addEventListener("mouseleave", function() {
hoverOnCommentBarrage = false;
});
function initCommentBarrage() {
if (!commentBarrageConfig.dom) return;
var data = JSON.stringify({
event: "COMMENT_GET",
"commentBarrageConfig.accessToken": commentBarrageConfig.accessToken,
url: commentBarrageConfig.pageUrl,
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4 && this.responseText) {
commentBarrageConfig.barrageList = commentLinkFilter(JSON.parse(this.responseText).data);
commentBarrageConfig.dom.innerHTML = "";
}
});
xhr.open("POST", commentBarrageConfig.twikooUrl);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(data);
clearInterval(commentInterval);
commentInterval = null;
commentInterval = setInterval(() => {
if (commentBarrageConfig.barrageList.length && !hoverOnCommentBarrage) {
popCommentBarrage(commentBarrageConfig.barrageList[commentBarrageConfig.barrageIndex]);
commentBarrageConfig.barrageIndex += 1;
commentBarrageConfig.barrageIndex %= commentBarrageConfig.barrageList.length;
}
if (
commentBarrageConfig.barrageTimer.length >
(commentBarrageConfig.barrageList.length > commentBarrageConfig.maxBarrage
? commentBarrageConfig.maxBarrage
: commentBarrageConfig.barrageList.length) &&
!hoverOnCommentBarrage
) {
removeCommentBarrage(commentBarrageConfig.barrageTimer.shift());
}
}, commentBarrageConfig.barrageTime);
}
function commentLinkFilter(data) {
data.sort((a, b) => {
return a.created - b.created;
});
let newData = [];
data.forEach(item => {
newData.push(...getCommentReplies(item));
});
return newData;
}
function getCommentReplies(item) {
if (item.replies) {
let replies = [item];
item.replies.forEach(item => {
replies.push(...getCommentReplies(item));
});
return replies;
} else {
return [];
}
}
function popCommentBarrage(data) {
let barrage = document.createElement("div");
barrage.className = "comment-barrage-item";
barrage.innerHTML = `
<div class="barrageHead">
<a class="barrageTitle ${
data.mailMd5 === commentBarrageConfig.mailMd5 ? "barrageBloggerTitle" : ""
}" href="javascript:anzhiyu.scrollTo('#post-comment')"">
${data.mailMd5 === commentBarrageConfig.mailMd5 ? "博主" : "热评"}
</a>
<div class="barrageNick">${data.nick}</div>
<img class="nolazyload barrageAvatar" src="https://cravatar.cn/avatar/${data.mailMd5}"/>
<a class="comment-barrage-close" href="javascript:anzhiyu.switchCommentBarrage()"><i class="anzhiyufont anzhiyu-icon-xmark"></i></a>
</div>
<a class="barrageContent" href="#${data.id}">
<object>${data.comment}</object>
</a>
`;
commentBarrageConfig.barrageTimer.push(barrage);
commentBarrageConfig.dom.append(barrage);
}
function removeCommentBarrage(barrage) {
barrage.className = "comment-barrage-item out";
setTimeout(() => {
if (commentBarrageConfig.dom && commentBarrageConfig.dom.contains(barrage)) {
commentBarrageConfig.dom.removeChild(barrage);
}
}, 1000);
}
// 自动隐藏
const commentEntryCallback = (entries) => {
const commentBarrage = document.querySelector(".comment-barrage");
const postComment = document.getElementById("post-comment");
entries.forEach(entry => {
if (postComment && commentBarrage && document.body.clientWidth > 768) {
commentBarrage.style.bottom = entry.isIntersecting ? "-200px" : "0";
}
});
};
// 创建IntersectionObserver实例
const observer = new IntersectionObserver(commentEntryCallback, {
root: null,
rootMargin: "0px",
threshold: 0
});
// 监视目标元素
const postCommentTarget = document.getElementById("post-comment");
if (postCommentTarget) {
observer.observe(postCommentTarget);
}
initCommentBarrage();
if (localStorage.getItem("commentBarrageSwitch") !== "false") {
document.querySelector(".comment-barrage").style.display = "flex";
document.querySelector(".menu-commentBarrage-text").textContent = "关闭热评";
} else {
document.querySelector(".comment-barrage").style.display = "none";
document.querySelector(".menu-commentBarrage-text").textContent = "显示热评";
}
document.addEventListener("pjax:send", function () {
clearInterval(commentInterval);
});
}</script><script async data-pjax src="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/waterfall/waterfall.js"></script><script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/qrcodejs/1.0.0/qrcode.min.js"></script><script>// 初始化函数
let rm = {};
//禁止图片与超链接拖拽
let aElements = document.getElementsByTagName("a");
for (let i = 0; i < aElements.length; i++) {
aElements[i].setAttribute("draggable", "false");
let imgElements = aElements[i].getElementsByTagName("img");
for (let j = 0; j < imgElements.length; j++) {
imgElements[j].setAttribute("draggable", "false");
}
}
// 显示菜单
rm.showRightMenu = function (isTrue, x = 0, y = 0) {
console.info(x, y)
let rightMenu = document.getElementById("rightMenu");
rightMenu.style.top = x + "px";
rightMenu.style.left = y + "px";
if (isTrue) {
rightMenu.style.display = "block";
stopMaskScroll();
} else {
rightMenu.style.display = "none";
}
};
// 隐藏菜单
rm.hideRightMenu = function () {
rm.showRightMenu(false);
let rightMenuMask = document.querySelector("#rightmenu-mask");
rightMenuMask.style.display = "none";
};
// 尺寸
let rmWidth = document.getElementById("rightMenu").offsetWidth;
let rmHeight = document.getElementById("rightMenu").offsetHeight;
// 重新定义尺寸
rm.reloadrmSize = function () {
rightMenu.style.visibility = "hidden";
rightMenu.style.display = "block";
// 获取宽度和高度
rmWidth = document.getElementById("rightMenu").offsetWidth;
rmHeight = document.getElementById("rightMenu").offsetHeight;
rightMenu.style.visibility = "visible";
};
// 获取点击的href
let domhref = "";
let domImgSrc = "";
let globalEvent = null;
var oncontextmenuFunction = function (event) {
if (document.body.clientWidth > 768) {
let pageX = event.clientX + 10; //加10是为了防止显示时鼠标遮在菜单上
let pageY = event.clientY;
//其他额外菜单
const $rightMenuOther = document.querySelector(".rightMenuOther");
const $rightMenuPlugin = document.querySelector(".rightMenuPlugin");
const $rightMenuCopyText = document.querySelector("#menu-copytext");
const $rightMenuPasteText = document.querySelector("#menu-pastetext");
const $rightMenuCommentText = document.querySelector("#menu-commenttext");
const $rightMenuNewWindow = document.querySelector("#menu-newwindow");
const $rightMenuNewWindowImg = document.querySelector("#menu-newwindowimg");
const $rightMenuCopyLink = document.querySelector("#menu-copylink");
const $rightMenuCopyImg = document.querySelector("#menu-copyimg");
const $rightMenuDownloadImg = document.querySelector("#menu-downloadimg");
const $rightMenuSearch = document.querySelector("#menu-search");
const $rightMenuSearchBaidu = document.querySelector("#menu-searchBaidu");
const $rightMenuMusicToggle = document.querySelector("#menu-music-toggle");
const $rightMenuMusicBack = document.querySelector("#menu-music-back");
const $rightMenuMusicForward = document.querySelector("#menu-music-forward");
const $rightMenuMusicPlaylist = document.querySelector("#menu-music-playlist");
const $rightMenuMusicCopyMusicName = document.querySelector("#menu-music-copyMusicName");
let href = event.target.href;
let imgsrc = event.target.currentSrc;
// 判断模式 扩展模式为有事件
let pluginMode = false;
$rightMenuOther.style.display = "block";
globalEvent = event;
// 检查是否需要复制 是否有选中文本
if (selectTextNow && window.getSelection()) {
pluginMode = true;
$rightMenuCopyText.style.display = "block";
$rightMenuCommentText.style.display = "block";
$rightMenuSearch.style.display = "block";
$rightMenuSearchBaidu.style.display = "block";
} else {
$rightMenuCopyText.style.display = "none";
$rightMenuCommentText.style.display = "none";
$rightMenuSearchBaidu.style.display = "none";
$rightMenuSearch.style.display = "none";
}
//检查是否右键点击了链接a标签
if (href) {
pluginMode = true;
$rightMenuNewWindow.style.display = "block";
$rightMenuCopyLink.style.display = "block";
domhref = href;
} else {
$rightMenuNewWindow.style.display = "none";
$rightMenuCopyLink.style.display = "none";
}
//检查是否需要复制图片
if (imgsrc) {
pluginMode = true;
$rightMenuCopyImg.style.display = "block";
$rightMenuDownloadImg.style.display = "block";
$rightMenuNewWindowImg.style.display = "block";
document.getElementById("rightMenu").style.width="12rem"
domImgSrc = imgsrc;
} else {
$rightMenuCopyImg.style.display = "none";
$rightMenuDownloadImg.style.display = "none";
$rightMenuNewWindowImg.style.display = "none";
}
// 判断是否为输入框
if (event.target.tagName.toLowerCase() === "input" || event.target.tagName.toLowerCase() === "textarea") {
pluginMode = true;
$rightMenuPasteText.style.display = "block";
} else {
$rightMenuPasteText.style.display = "none";
}
const navMusicEl = document.querySelector("#nav-music");
//判断是否是音乐
if (navMusicEl && navMusicEl.contains(event.target)) {
pluginMode = true;
$rightMenuMusicToggle.style.display = "block";
$rightMenuMusicBack.style.display = "block";
$rightMenuMusicForward.style.display = "block";
$rightMenuMusicPlaylist.style.display = "block";
$rightMenuMusicCopyMusicName.style.display = "block";
} else {
$rightMenuMusicToggle.style.display = "none";
$rightMenuMusicBack.style.display = "none";
$rightMenuMusicForward.style.display = "none";
$rightMenuMusicPlaylist.style.display = "none";
$rightMenuMusicCopyMusicName.style.display = "none";
}
// 如果不是扩展模式则隐藏扩展模块
if (pluginMode) {
$rightMenuOther.style.display = "none";
$rightMenuPlugin.style.display = "block";
} else {
$rightMenuPlugin.style.display = "none";
}
rm.reloadrmSize();
// 鼠标默认显示在鼠标右下方,当鼠标靠右或靠下时,将菜单显示在鼠标左方\上方
if (pageX + rmWidth > window.innerWidth) {
pageX -= rmWidth + 10;
}
if (pageY + rmHeight > window.innerHeight) {
pageY -= pageY + rmHeight - window.innerHeight;
}
rm.showRightMenu(true, pageY, pageX);
document.getElementById("rightmenu-mask").style.display = "flex";
return false;
}
};
// 监听右键初始化
window.oncontextmenu = oncontextmenuFunction
// 下载图片状态
rm.downloadimging = false;
// 复制图片到剪贴板
rm.writeClipImg = function (imgsrc) {
console.log("按下复制");
rm.hideRightMenu();