jjb-cmd 2.2.2 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1,88 @@
1
- function a22_0x5b68(){const _0x28fc9b=['删除进度','trim','802iVgmIg','createInterface','6862823SBkmiB','clear','stdin','path','readline','existsSync','2599836lCYCmo','删除文件夹:','取消删除。','5679XUCQZr','unlinkSync','删除文件:','length','33272oCeHXE','删除异常:','readdirSync','isDirectory','rmdirSync','删除完成。','5KiuGqN','exports','exit','1330uCcxcc','log','statSync','68064zpxomj','3616446UugoGW','16614voCrkv','707FNujOU','./progress-bar','resolve'];a22_0x5b68=function(){return _0x28fc9b;};return a22_0x5b68();}const a22_0x5f1624=a22_0x26b6;(function(_0x172989,_0x2a50bc){const _0x2d7a47=a22_0x26b6,_0x4790e=_0x172989();while(!![]){try{const _0x22a204=parseInt(_0x2d7a47(0x18d))/0x1+-parseInt(_0x2d7a47(0x195))/0x2*(parseInt(_0x2d7a47(0x1a0))/0x3)+parseInt(_0x2d7a47(0x19d))/0x4+-parseInt(_0x2d7a47(0x1aa))/0x5*(-parseInt(_0x2d7a47(0x18e))/0x6)+parseInt(_0x2d7a47(0x190))/0x7*(-parseInt(_0x2d7a47(0x1a4))/0x8)+-parseInt(_0x2d7a47(0x18f))/0x9*(parseInt(_0x2d7a47(0x18a))/0xa)+parseInt(_0x2d7a47(0x197))/0xb;if(_0x22a204===_0x2a50bc)break;else _0x4790e['push'](_0x4790e['shift']());}catch(_0x240d43){_0x4790e['push'](_0x4790e['shift']());}}}(a22_0x5b68,0x7ef33));const fs=require('fs'),path=require(a22_0x5f1624(0x19a)),readline=require(a22_0x5f1624(0x19b)),ProgressBar=require(a22_0x5f1624(0x191)),io=readline[a22_0x5f1624(0x196)]({'input':process[a22_0x5f1624(0x199)],'output':process['stdout']}),progress=new ProgressBar(a22_0x5f1624(0x193),0x32);function a22_0x26b6(_0xaf939e,_0xb44e9c){const _0x5b687c=a22_0x5b68();return a22_0x26b6=function(_0x26b657,_0x4b849e){_0x26b657=_0x26b657-0x18a;let _0x52b6ed=_0x5b687c[_0x26b657];return _0x52b6ed;},a22_0x26b6(_0xaf939e,_0xb44e9c);}let f_total=0x0,f_number=0x0;module[a22_0x5f1624(0x1ab)]=function(){const _0x2c53fa=a22_0x5f1624,_0x1afb69=path[_0x2c53fa(0x192)]('./');io['question']('是否确认删除?删除后不可恢复![y/n]:',function(_0x260640){const _0x5c0367=_0x2c53fa;if(_0x260640[_0x5c0367(0x194)]()==='y')console[_0x5c0367(0x18b)]('正在计算项目数,请稍等...'),setTimeout(()=>{setTimeout(()=>{const _0x35c215=a22_0x26b6;console[_0x35c215(0x198)](),exec(_0x1afb69),setTimeout(()=>{const _0x198cc8=_0x35c215;console[_0x198cc8(0x18b)](_0x198cc8(0x1a9)),console[_0x198cc8(0x198)](),process[_0x198cc8(0x1ac)](0x0);},0x1f4);},0x1f4);},0x1f4);else _0x260640[_0x5c0367(0x194)]()==='n'?(console[_0x5c0367(0x18b)](_0x5c0367(0x19f)),process[_0x5c0367(0x1ac)](0x0)):(console[_0x5c0367(0x18b)]('无效操作。'),process[_0x5c0367(0x1ac)](0x0));});};function exec(_0x51a30a){const _0x26bcfc=a22_0x5f1624;if(fs[_0x26bcfc(0x19c)](_0x51a30a)){const _0x113c4c=fs[_0x26bcfc(0x1a6)](_0x51a30a);for(let _0x440437=0x0;_0x440437<_0x113c4c[_0x26bcfc(0x1a3)];_0x440437++){const _0x22ad3a=_0x113c4c[_0x440437],_0x4b0d2b=_0x51a30a+'/'+_0x22ad3a;try{fs['statSync'](_0x4b0d2b)['isDirectory']()?(exec(_0x4b0d2b),fs[_0x26bcfc(0x1a8)](_0x4b0d2b,{'recursive':!![]}),console[_0x26bcfc(0x18b)](_0x26bcfc(0x19e)+_0x4b0d2b)):(fs[_0x26bcfc(0x1a1)](_0x4b0d2b),console[_0x26bcfc(0x18b)](_0x26bcfc(0x1a2)+_0x4b0d2b));}catch(_0x43106d){console[_0x26bcfc(0x18b)](_0x26bcfc(0x1a5)+_0x4b0d2b);}}}}function scanner(_0x516272){const _0xf61dac=a22_0x5f1624;if(fs[_0xf61dac(0x19c)](_0x516272)){const _0x36182d=fs[_0xf61dac(0x1a6)](_0x516272);for(let _0x3a7d67=0x0;_0x3a7d67<_0x36182d['length'];_0x3a7d67++){const _0x2c77d2=_0x36182d[_0x3a7d67],_0x45ba18=_0x516272+'/'+_0x2c77d2;try{fs[_0xf61dac(0x18c)](_0x45ba18)[_0xf61dac(0x1a7)]()?(scanner(_0x45ba18),f_total=f_total+0x1):f_total=f_total+0x1;}catch(_0x38b79e){}}}}
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const readline = require('readline');
4
+ const ProgressBar = require('./progress-bar');
5
+ const io = readline.createInterface({
6
+ input: process.stdin,
7
+ output: process.stdout
8
+ });
9
+ const progress = new ProgressBar('删除进度', 50);
10
+
11
+ let f_total = 0;
12
+ let f_number = 0;
13
+
14
+ module.exports = function () {
15
+ const root_path = path.resolve('./');
16
+
17
+ io.question('是否确认删除?删除后不可恢复![y/n]:', function (answer) {
18
+ if (answer.trim() === 'y') {
19
+ console.log('正在计算项目数,请稍等...');
20
+ setTimeout(() => {
21
+ // scanner(root_path);
22
+ // console.log(`计算完成共计[${f_total}]项目。`);
23
+ setTimeout(() => {
24
+ console.clear();
25
+ exec(root_path);
26
+ setTimeout(() => {
27
+ console.log('删除完成。');
28
+ console.clear();
29
+ process.exit(0);
30
+ }, 500);
31
+ }, 500);
32
+ }, 500);
33
+ } else if (answer.trim() === 'n') {
34
+ console.log('取消删除。');
35
+ process.exit(0);
36
+ } else {
37
+ console.log('无效操作。');
38
+ process.exit(0);
39
+ }
40
+ });
41
+ };
42
+
43
+ function exec (path) {
44
+ if (fs.existsSync(path)) {
45
+ const list = fs.readdirSync(path);
46
+ for (let i = 0; i < list.length; i++) {
47
+ const item = list[ i ];
48
+ const vPath = `${path}/${item}`;
49
+ try {
50
+ if (fs.statSync(vPath).isDirectory()) {
51
+ exec(vPath);
52
+ fs.rmdirSync(vPath, { recursive: true });
53
+ // f_number = f_number + 1;
54
+ console.log('删除文件夹:' + vPath);
55
+ } else {
56
+ fs.unlinkSync(vPath);
57
+ // f_number = f_number + 1;
58
+ console.log('删除文件:' + vPath);
59
+ }
60
+ // progress.render({
61
+ // completed: f_number,
62
+ // total: f_total
63
+ // });
64
+ } catch (e) {
65
+ console.log('删除异常:' + vPath);
66
+ }
67
+ }
68
+ }
69
+ }
70
+
71
+ function scanner (path) {
72
+ if (fs.existsSync(path)) {
73
+ const list = fs.readdirSync(path);
74
+ for (let i = 0; i < list.length; i++) {
75
+ const item = list[ i ];
76
+ const vPath = `${path}/${item}`;
77
+ try {
78
+ if (fs.statSync(vPath).isDirectory()) {
79
+ scanner(vPath);
80
+ f_total = f_total + 1;
81
+ } else {
82
+ f_total = f_total + 1;
83
+ }
84
+ } catch (e) {
85
+ }
86
+ }
87
+ }
88
+ }
@@ -1 +1,23 @@
1
- function a23_0x4f88(){const _0x2da644=['Progress','470597hqzuhy','render','2599352bjwrlQ','floor','length','stdout','2767362CjOIff','409088gpMHLn','toFixed','completed','14418954sPoUXf','1085703aWqkBJ','1822285giqVJi','total','4ScOwhC','2HSgESj','single-line-log'];a23_0x4f88=function(){return _0x2da644;};return a23_0x4f88();}const a23_0x44e60d=a23_0x33d5;(function(_0x436134,_0x3e8c00){const _0x21e9cb=a23_0x33d5,_0x51b5e2=_0x436134();while(!![]){try{const _0x1bbdbf=-parseInt(_0x21e9cb(0x189))/0x1*(parseInt(_0x21e9cb(0x186))/0x2)+parseInt(_0x21e9cb(0x194))/0x3*(parseInt(_0x21e9cb(0x185))/0x4)+-parseInt(_0x21e9cb(0x195))/0x5+-parseInt(_0x21e9cb(0x18f))/0x6+-parseInt(_0x21e9cb(0x18b))/0x7+-parseInt(_0x21e9cb(0x190))/0x8+parseInt(_0x21e9cb(0x193))/0x9;if(_0x1bbdbf===_0x3e8c00)break;else _0x51b5e2['push'](_0x51b5e2['shift']());}catch(_0x167d87){_0x51b5e2['push'](_0x51b5e2['shift']());}}}(a23_0x4f88,0x3be06));const slog=require(a23_0x44e60d(0x187))[a23_0x44e60d(0x18e)];function ProgressBar(_0x3c6f49,_0x192d48){const _0x1574b8=a23_0x44e60d;this['description']=_0x3c6f49||_0x1574b8(0x188),this[_0x1574b8(0x18d)]=_0x192d48||0x19,this[_0x1574b8(0x18a)]=function(_0xb9df4f){const _0x4a1210=_0x1574b8;let _0x34ed5b;const _0x3b3089=(_0xb9df4f[_0x4a1210(0x192)]/_0xb9df4f[_0x4a1210(0x184)])[_0x4a1210(0x191)](0x4),_0x2fe2e5=Math[_0x4a1210(0x18c)](_0x3b3089*this['length']);let _0x339757='';for(_0x34ed5b=0x0;_0x34ed5b<_0x2fe2e5;_0x34ed5b++){_0x339757+='█';}let _0x261e03='';for(_0x34ed5b=0x0;_0x34ed5b<this[_0x4a1210(0x18d)]-_0x2fe2e5;_0x34ed5b++){_0x261e03+='░';}const _0x3de2b5=this['description']+':\x20'+(0x64*_0x3b3089)[_0x4a1210(0x191)](0x2)+'%\x20'+_0x339757+_0x261e03+'\x20'+_0xb9df4f[_0x4a1210(0x192)]+'/'+_0xb9df4f[_0x4a1210(0x184)];slog(_0x3de2b5);};}function a23_0x33d5(_0x96af29,_0x158787){const _0x4f88e0=a23_0x4f88();return a23_0x33d5=function(_0x33d569,_0x35063e){_0x33d569=_0x33d569-0x184;let _0x2ab7ea=_0x4f88e0[_0x33d569];return _0x2ab7ea;},a23_0x33d5(_0x96af29,_0x158787);}module['exports']=ProgressBar;
1
+ const slog = require('single-line-log').stdout;
2
+
3
+ function ProgressBar (description, bar_length) {
4
+ this.description = description || 'Progress';
5
+ this.length = bar_length || 25;
6
+ this.render = function (opts) {
7
+ let i;
8
+ const percent = (opts.completed / opts.total).toFixed(4);
9
+ const cell_num = Math.floor(percent * this.length);
10
+ let cell = '';
11
+ for (i = 0; i < cell_num; i++) {
12
+ cell += '█';
13
+ }
14
+ let empty = '';
15
+ for (i = 0; i < this.length - cell_num; i++) {
16
+ empty += '░';
17
+ }
18
+ const cmdText = this.description + ': ' + (100 * percent).toFixed(2) + '% ' + cell + empty + ' ' + opts.completed + '/' + opts.total;
19
+ slog(cmdText);
20
+ };
21
+ }
22
+
23
+ module.exports = ProgressBar;
package/src/old/util.js CHANGED
@@ -1 +1,149 @@
1
- 'use strict';const a24_0x565f33=a24_0x2c7d;function a24_0x2c7d(_0x1db908,_0x1f039a){const _0x2beccb=a24_0x2bec();return a24_0x2c7d=function(_0x2c7db3,_0x5acfe2){_0x2c7db3=_0x2c7db3-0x188;let _0x1168f4=_0x2beccb[_0x2c7db3];return _0x1168f4;},a24_0x2c7d(_0x1db908,_0x1f039a);}(function(_0x83a77b,_0x1e2a7d){const _0x325f22=a24_0x2c7d,_0x41b282=_0x83a77b();while(!![]){try{const _0x4b426b=parseInt(_0x325f22(0x19c))/0x1+parseInt(_0x325f22(0x192))/0x2*(parseInt(_0x325f22(0x18c))/0x3)+-parseInt(_0x325f22(0x193))/0x4+-parseInt(_0x325f22(0x1a6))/0x5+-parseInt(_0x325f22(0x1a3))/0x6+-parseInt(_0x325f22(0x188))/0x7+parseInt(_0x325f22(0x194))/0x8;if(_0x4b426b===_0x1e2a7d)break;else _0x41b282['push'](_0x41b282['shift']());}catch(_0x4ee248){_0x41b282['push'](_0x41b282['shift']());}}}(a24_0x2bec,0xe6886));function a24_0x2bec(){const _0x1fdc31=['6060600fWucuu','join','push','forEach','CopyFile','close','unlinkSync','mkdirSync','888581zrfkZs','readdirSync','error','CopyFolder','pipe','length','existsSync','666540mtFStU','statSync','DeepScanner','4800785TmwPep','log','rmdirSync','read\x20error','1733025NSoKwS','isDirectory','createReadStream','stat','3lSzkMX','mkdir','DeleteDirAllFile','createWriteStream','readdir','write\x20error','1409676oWiVcF','351640yoYxGZ'];a24_0x2bec=function(){return _0x1fdc31;};return a24_0x2bec();}const fs=require('fs'),path=require('path');exports[a24_0x565f33(0x18e)]=(_0x8c0b1f,_0x4c1291)=>{const _0x2a4fdd=a24_0x565f33;let _0x20163d=[];const _0x2cb34e=this;fs[_0x2a4fdd(0x1a2)](_0x8c0b1f)?(_0x20163d=fs['readdirSync'](_0x8c0b1f),_0x20163d[_0x2a4fdd(0x197)](function(_0x35d0a6,_0x3b262b){const _0x253b9d=_0x2a4fdd;let _0x4b0cf1=_0x8c0b1f+'/'+_0x35d0a6;fs[_0x253b9d(0x1a4)](_0x4b0cf1)[_0x253b9d(0x189)]()?_0x2cb34e[_0x253b9d(0x18e)](_0x4b0cf1):fs[_0x253b9d(0x19a)](_0x4b0cf1);}),fs[_0x2a4fdd(0x1a8)](_0x8c0b1f),_0x4c1291&&_0x4c1291()):_0x4c1291&&_0x4c1291();},exports['CopyFolder']=(_0x4de9b3,_0xf4c484,_0x54c6f2)=>{const _0x3232d4=a24_0x565f33,_0x5c331e=this;fs[_0x3232d4(0x190)](_0x4de9b3,function(_0x6afdc0,_0x132ec6){const _0xa8120=_0x3232d4;let _0x578a45=0x0;const _0x2ce0c4=function(){++_0x578a45===_0x132ec6['length']&&_0x54c6f2&&_0x54c6f2();};if(_0x6afdc0){_0x2ce0c4();return;}_0x132ec6[_0xa8120(0x197)](function(_0x25733a){const _0x473796=_0xa8120,_0x29d0a6=path[_0x473796(0x195)](_0x4de9b3,_0x25733a),_0x235fb8=path[_0x473796(0x195)](_0xf4c484,_0x25733a);fs[_0x473796(0x18b)](_0x29d0a6,function(_0x43d45e,_0x3fca24){const _0xcf4ffe=_0x473796;_0x3fca24[_0xcf4ffe(0x189)]()?fs[_0xcf4ffe(0x18d)](_0x235fb8,function(_0x65be10){const _0x41584f=_0xcf4ffe;if(_0x65be10){console[_0x41584f(0x1a7)](_0x65be10);return;}_0x5c331e[_0x41584f(0x19f)](_0x29d0a6,_0x235fb8,_0x2ce0c4);}):_0x5c331e[_0xcf4ffe(0x198)](_0x29d0a6,_0x235fb8,_0x2ce0c4);});}),_0x132ec6[_0xa8120(0x1a1)]===0x0&&_0x54c6f2&&_0x54c6f2();});},exports[a24_0x565f33(0x198)]=(_0x141f96,_0x29f757,_0x29496c)=>{const _0x593b43=a24_0x565f33,_0x350962=fs[_0x593b43(0x18a)](_0x141f96);_0x350962['on'](_0x593b43(0x19e),function(_0x42cffb){const _0x362a43=_0x593b43;_0x42cffb&&console[_0x362a43(0x1a7)](_0x362a43(0x1a9),_0x141f96),_0x29496c&&_0x29496c(_0x42cffb);});const _0x341535=fs[_0x593b43(0x18f)](_0x29f757);_0x341535['on'](_0x593b43(0x19e),function(_0x57913f){const _0x21fed3=_0x593b43;_0x57913f&&console[_0x21fed3(0x1a7)](_0x21fed3(0x191),_0x29f757),_0x29496c&&_0x29496c(_0x57913f);}),_0x341535['on'](_0x593b43(0x199),function(_0x3d112e){_0x29496c&&_0x29496c(_0x3d112e);}),_0x350962[_0x593b43(0x1a0)](_0x341535);},exports[a24_0x565f33(0x1a5)]=(_0x2924a7,_0x196186)=>{const _0x140f1a=a24_0x565f33,_0x1839af=this,_0x9121b9=fs[_0x140f1a(0x19d)](_0x2924a7);_0x9121b9[_0x140f1a(0x197)](_0x4e056d=>{const _0xe10521=_0x140f1a,_0x496dda=_0x2924a7+'/'+_0x4e056d,_0x24e2a8=fs[_0xe10521(0x1a4)](_0x496dda);_0x24e2a8[_0xe10521(0x189)]()?_0x1839af[_0xe10521(0x1a5)](_0x496dda,_0x196186):_0x196186[_0xe10521(0x196)](_0x496dda);});},exports['CreatePaths']=(_0x2061b0,_0x34b696)=>{return new Promise(_0x3e9d13=>{const _0x5a885c=a24_0x2c7d,_0x26609f=[];_0x34b696[_0x5a885c(0x197)]((_0x3450c4,_0x384a92)=>{const _0x553e6b=_0x5a885c,_0x398d32=_0x2061b0+'/'+_0x26609f[_0x553e6b(0x195)]('/')+'/'+_0x3450c4;try{const _0x154e80=fs[_0x553e6b(0x1a4)](_0x398d32);_0x154e80[_0x553e6b(0x189)]()?_0x384a92===_0x34b696[_0x553e6b(0x1a1)]-0x1&&_0x3e9d13():(fs[_0x553e6b(0x19b)](_0x398d32),_0x384a92===_0x34b696[_0x553e6b(0x1a1)]-0x1&&_0x3e9d13());}catch(_0x109a62){fs[_0x553e6b(0x19b)](_0x398d32),_0x384a92===_0x34b696[_0x553e6b(0x1a1)]-0x1&&_0x3e9d13();}_0x26609f[_0x553e6b(0x196)](_0x3450c4);});});};
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+
6
+ /**
7
+ * @description 清空当前目录
8
+ * @param filePath
9
+ * @param callback
10
+ * @constructor
11
+ */
12
+ exports.DeleteDirAllFile = (filePath, callback) => {
13
+ let files = [];
14
+ const that = this;
15
+ if(fs.existsSync(filePath)) {
16
+ files = fs.readdirSync(filePath);
17
+ files.forEach(function(file, index) {
18
+ let curPath = filePath + "/" + file;
19
+ if(fs.statSync(curPath).isDirectory()) {
20
+ that.DeleteDirAllFile(curPath);
21
+ } else {
22
+ fs.unlinkSync(curPath);
23
+ }
24
+ });
25
+ fs.rmdirSync(filePath);
26
+ callback && callback();
27
+ } else {
28
+ callback && callback();
29
+ }
30
+ };
31
+
32
+ /**
33
+ * @description 复制文件夹及子目录文件
34
+ * @param srcDir
35
+ * @param tarDir
36
+ * @param cb
37
+ */
38
+ exports.CopyFolder = (srcDir, tarDir, cb) => {
39
+ const that = this;
40
+ fs.readdir(srcDir, function(err, files) {
41
+
42
+ let count = 0
43
+ const checkEnd = function() {
44
+ ++count === files.length && cb && cb()
45
+ }
46
+
47
+ if (err) {
48
+ checkEnd()
49
+ return
50
+ }
51
+
52
+ files.forEach(function(file) {
53
+ const srcPath = path.join(srcDir, file)
54
+ const tarPath = path.join(tarDir, file)
55
+
56
+ fs.stat(srcPath, function(err, stats) {
57
+ if (stats.isDirectory()) {
58
+ fs.mkdir(tarPath, function(err) {
59
+ if (err) {
60
+ console.log(err)
61
+ return
62
+ }
63
+
64
+ that.CopyFolder(srcPath, tarPath, checkEnd)
65
+ })
66
+ } else {
67
+ that.CopyFile(srcPath, tarPath, checkEnd)
68
+ }
69
+ })
70
+ })
71
+ //为空时直接回调
72
+ files.length === 0 && cb && cb()
73
+ })
74
+ }
75
+
76
+ /**
77
+ * @description 复制文件
78
+ * @param srcPath
79
+ * @param tarPath
80
+ * @param cb
81
+ */
82
+ exports.CopyFile = (srcPath, tarPath, cb) => {
83
+ const rs = fs.createReadStream(srcPath)
84
+ rs.on('error', function(err) {
85
+ if (err) {
86
+ console.log('read error', srcPath)
87
+ }
88
+ cb && cb(err)
89
+ })
90
+
91
+ const ws = fs.createWriteStream(tarPath)
92
+ ws.on('error', function(err) {
93
+ if (err) {
94
+ console.log('write error', tarPath)
95
+ }
96
+ cb && cb(err)
97
+ })
98
+ ws.on('close', function(ex) {
99
+ cb && cb(ex)
100
+ })
101
+
102
+ rs.pipe(ws)
103
+ };
104
+
105
+ /**
106
+ * 深度获取目录路径
107
+ * @param path
108
+ * @param pathChildren
109
+ * @constructor
110
+ */
111
+ exports.DeepScanner = (path, pathChildren) => {
112
+ const that = this;
113
+ const itemList = fs.readdirSync(path);
114
+ itemList.forEach(item => {
115
+ const childPath = `${path}/${item}`;
116
+ const stat = fs.statSync(childPath);
117
+ if (stat.isDirectory()) {
118
+ that.DeepScanner(childPath, pathChildren);
119
+ } else {
120
+ pathChildren.push(childPath);
121
+ }
122
+ });
123
+ };
124
+
125
+ /**
126
+ * 创建目录路径
127
+ * @param pathArr
128
+ */
129
+ exports.CreatePaths = (rootPath, pathArr) => {
130
+ return new Promise(resolve => {
131
+ const linkStr = [];
132
+ pathArr.forEach((item, index) => {
133
+ const dirPath = rootPath + '/' + linkStr.join('/') + '/' + item;
134
+ try {
135
+ const stat = fs.statSync(dirPath);
136
+ if (stat.isDirectory()) {
137
+ index === pathArr.length - 1 && resolve();
138
+ } else {
139
+ fs.mkdirSync(dirPath);
140
+ index === pathArr.length - 1 && resolve();
141
+ }
142
+ } catch (e) {
143
+ fs.mkdirSync(dirPath);
144
+ index === pathArr.length - 1 && resolve();
145
+ }
146
+ linkStr.push(item);
147
+ });
148
+ });
149
+ };