1
1
import fs from 'fs-extra' ;
2
2
import path from 'path' ;
3
- import ProgressBar from 'ascii-progress' ;
4
- import Confirm from 'prompt-confirm' ;
5
3
6
4
import Utils from './utils' ;
5
+ import { writeJSON , confirm } from './helper' ;
6
+ import * as logger from './logger' ;
7
7
8
- const utils = new Utils ( ) ;
9
- const config = utils . getConfig ( ) ;
8
+ process . on ( 'SIGINT' , ( ) => {
9
+ process . exit ( ) ;
10
+ } ) ;
10
11
11
- // Clear the terminal
12
12
process . stdout . write ( '\x1Bc' ) ;
13
13
14
+ const utils = new Utils ( ) ;
15
+ const config = utils . getConfig ( ) ;
16
+
14
17
let playerlist = [ ] ;
15
18
if ( config . render . whitelist ) {
16
19
playerlist = utils . getWhitelistedPlayers ( ) ;
17
20
} else {
18
21
playerlist = utils . getAllPlayers ( ) ;
19
22
}
20
- console . log ( '[INFO] Players found: ', playerlist . length ) ;
23
+ logger . Default . info ( ' Players found', playerlist . length ) ;
21
24
22
25
if ( config . render . advancements ) {
23
- console . log ( '[INFO] Advancements is set: Render mode set to 1.12+') ;
26
+ logger . Default . info ( ' Advancements is set: Render mode set to 1.12+') ;
24
27
if ( ! config [ 'advancements-progress' ] ) {
25
- console . log ( '[WARN] You do not have advancements progresses defined. Please visit github.com/NyaaCat/NyaaStats for a new version of config file.') ;
28
+ logger . Default . warn ( ' You do not have advancements progresses defined. Please visit github.com/NyaaCat/NyaaStats for a new version of config file.') ;
26
29
}
27
30
} else {
28
- console . log ( '[INFO] Advancements not set: Render mode set to 1.11') ;
31
+ logger . Default . info ( ' Advancements not set: Render mode set to 1.11') ;
29
32
}
30
33
31
34
const output = path . join ( config . BASEPATH , config . render . output ) ;
32
- console . log ( '[INFO] CREATE OUTPUT DIR: ', output ) ;
35
+ logger . Default . info ( ' CREATE OUTPUT DIR', output ) ;
33
36
34
37
( async ( ) => {
35
- const prompt = new Confirm ( 'Do you want to clean the output folder?' ) ;
36
-
37
- if ( await prompt . run ( ) ) {
38
+ const prompt = await confirm ( 'Do you want to clean the output folder?' ) ;
39
+ if ( prompt ) {
38
40
try {
39
41
fs . emptyDirSync ( output ) ;
40
42
} catch ( err ) {
@@ -48,18 +50,10 @@ console.log('[INFO] CREATE OUTPUT DIR:', output);
48
50
banlist = utils . getBannedPlayers ( ) ;
49
51
}
50
52
if ( ! config . render [ 'render-banned' ] ) {
51
- console . log ( playerlist , banlist ) ;
52
53
playerlist = playerlist . filter ( uuid => ! banlist . some ( ban => ban === uuid ) ) ;
53
54
}
54
55
playerlist = playerlist . sort ( ( ) => 0.5 - Math . random ( ) ) ;
55
56
56
- const totalTasks = playerlist . length ;
57
- const bar = new ProgressBar ( {
58
- schema : '[:bar] :current/:total :percent :etas' ,
59
- width : 0.95 ,
60
- total : totalTasks ,
61
- } ) ;
62
-
63
57
for ( const uuid of playerlist ) {
64
58
let banned = false ;
65
59
if ( config . render [ 'render-banned' ] ) {
@@ -69,7 +63,6 @@ console.log('[INFO] CREATE OUTPUT DIR:', output);
69
63
try {
70
64
data = await utils . createPlayerData ( uuid , banned ) ; // eslint-disable-line
71
65
} catch ( error ) {
72
- bar . tick ( ) ;
73
66
continue ;
74
67
}
75
68
if ( ! data . data ) {
@@ -81,11 +74,10 @@ console.log('[INFO] CREATE OUTPUT DIR:', output);
81
74
names : data . data . names ,
82
75
seen : data . data . seen ,
83
76
} ) ;
84
- bar . tick ( ) ;
85
77
}
86
78
87
79
players . sort ( ( a , b ) => b . seen - a . seen ) ; // eslint-disable-line
88
- Utils . writeJSON (
80
+ writeJSON (
89
81
path . join ( config . BASEPATH , config . render . output , 'players.json' ) ,
90
82
players ,
91
83
) ;
@@ -96,7 +88,7 @@ console.log('[INFO] CREATE OUTPUT DIR:', output);
96
88
} catch ( error ) {
97
89
throw new Error ( error ) ;
98
90
}
99
- Utils . writeJSON (
91
+ writeJSON (
100
92
path . join ( config . BASEPATH , config . render . output , 'info.json' ) ,
101
93
{
102
94
worldTime,
0 commit comments