Skip to content

Commit ad43309

Browse files
committed
refactoring
1 parent ce0f15e commit ad43309

File tree

2 files changed

+52
-65
lines changed

2 files changed

+52
-65
lines changed

index.js

Lines changed: 50 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -15,90 +15,77 @@ process.stdout.write('\x1Bc')
1515
const utils = new Utils()
1616
const config = utils.getConfig()
1717

18-
let playerlist = []
19-
if (config.render.whitelist) {
20-
playerlist = utils.getWhitelistedPlayers()
21-
} else {
22-
playerlist = utils.getAllPlayers()
23-
}
24-
logger.Default.info('Players found', playerlist.length)
18+
void async function main () {
19+
/** @type {string[]} */
20+
const bannedUuidList = config.render['banned-players'] ? utils.getBannedPlayers() : []
2521

26-
if (config.render.advancements) {
27-
logger.Default.info('Advancements is set: Render mode set to 1.12+')
28-
} else {
29-
logger.Default.info('Advancements not set: Render mode set to 1.11')
30-
}
22+
/** @type {string[]} */
23+
const uuidList = (() => {
24+
let list = config.render.whitelist ? utils.getWhitelistedPlayers() : utils.getAllPlayers()
25+
if (!config.render['render-banned'] && bannedUuidList.length) {
26+
list = list.filter(uuid => !bannedUuidList.some(ban => ban === uuid))
27+
}
28+
return list
29+
})()
30+
logger.Default.info('Players to process:', uuidList.length)
3131

32-
const output = path.join(config.BASEPATH, config.render.output)
33-
logger.Default.info('CREATE OUTPUT DIR', output)
32+
if (config.render.advancements) {
33+
logger.Default.info('Advancements is set: Render mode set to 1.12+')
34+
} else {
35+
logger.Default.info('Advancements not set: Render mode set to 1.11')
3436

37+
}
38+
const outputDir = path.join(config.BASEPATH, config.render.output)
3539

36-
;(async () => {
37-
if (config.render['confirm-clear-data'] || config.render['confirm-clear-data'] === undefined) {
40+
logger.Default.info('CREATE OUTPUT DIR', outputDir)
41+
if (config.render['confirm-clear-data'] !== false) {
3842
const prompt = await confirm('Do you want to clean the output folder?')
3943
if (prompt) {
4044
try {
41-
fs.emptyDirSync(output)
45+
fs.emptyDirSync(outputDir)
4246
} catch (err) {
4347
throw new Error(err)
4448
}
4549
}
4650
}
4751

48-
let banlist = []
52+
/** @type {object[]} */
4953
const players = []
50-
if (config.render['banned-players']) {
51-
banlist = utils.getBannedPlayers()
52-
}
53-
if (!config.render['render-banned']) {
54-
playerlist = playerlist.filter(uuid => !banlist.some(ban => ban === uuid))
55-
}
56-
playerlist = playerlist.sort(() => 0.5 - Math.random())
5754

58-
const totalTasks = playerlist.length
59-
const progress = new ProgressBar(totalTasks)
55+
const progress = new ProgressBar(uuidList.length)
6056
progress.start()
61-
for (const uuid of playerlist) {
62-
let banned = false
63-
if (config.render['render-banned']) {
64-
banned = banlist.some(ban => ban === uuid)
65-
}
66-
let data
57+
58+
for (const uuid of uuidList) {
6759
try {
68-
data = await utils.createPlayerData(uuid, banned)
69-
} catch (error) {
60+
const banned = config.render['render-banned'] ? bannedUuidList.some(ban => ban === uuid) : false
61+
let data
62+
try {
63+
data = await utils.createPlayerData(uuid, banned)
64+
} catch (error) {
65+
logger.Default.error(`Failed to create player data for ${uuid}`)
66+
continue
67+
}
68+
players.push({
69+
uuid: data.data.uuid_short,
70+
playername: data.data.playername,
71+
names: data.data.names,
72+
seen: data.data.seen,
73+
})
74+
} finally {
7075
progress.tick(uuid)
71-
continue
7276
}
73-
players.push({
74-
uuid: data.data.uuid_short,
75-
playername: data.data.playername,
76-
names: data.data.names,
77-
seen: data.data.seen,
78-
})
79-
progress.tick(uuid)
8077
}
78+
8179
progress.stop()
8280

8381
players.sort((a, b) => b.seen - a.seen)
84-
writeJSON(
85-
path.join(config.BASEPATH, config.render.output, 'players.json'),
86-
players,
87-
)
82+
writeJSON(path.join(outputDir, 'players.json'), players)
8883

89-
let worldTime
90-
try {
91-
worldTime = await utils.getWorldTime()
92-
} catch (error) {
93-
throw new Error(error)
94-
}
95-
writeJSON(
96-
path.join(config.BASEPATH, config.render.output, 'info.json'),
97-
{
98-
worldTime,
99-
timeFormat: config.render['time-format'],
100-
lastUpdate: (new Date()).valueOf(),
101-
...config.web,
102-
},
103-
)
104-
})()
84+
let worldTime = await utils.getWorldTime()
85+
writeJSON(path.join(outputDir, 'info.json'), {
86+
worldTime,
87+
timeFormat: config.render['time-format'],
88+
lastUpdate: Date.now(),
89+
...config.web,
90+
})
91+
}()

utils.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ module.exports = class Utils {
205205
let body
206206
try {
207207
const res = await axios.get(apiPath, {timeout: 30000})
208-
body = res.data
208+
body = res.data
209209
} catch (err) {
210210
logger.MojangAPI.error('REQUEST', apiPath, err.toJSON())
211211
setTimeout(() => {
@@ -255,7 +255,7 @@ module.exports = class Utils {
255255
if (fs.existsSync(path.join(playerpath, 'stats.json'))) {
256256
data = JSON.parse(fs.readFileSync(path.join(playerpath, 'stats.json')))
257257
} else {
258-
data = await this.getPlayerTotalData(uuid, banned)
258+
data = await this.getPlayerTotalData(uuid)
259259
}
260260
} catch (error) {
261261
throw new Error(error)

0 commit comments

Comments
 (0)