diff options
author | mat <github@matdoes.dev> | 2022-03-05 16:58:43 -0600 |
---|---|---|
committer | mat <github@matdoes.dev> | 2022-03-05 16:58:43 -0600 |
commit | 5226124e477aa1c706960b7c56fafd001ce7e007 (patch) | |
tree | c7de655848121b515117bc47f3af00bc32c39bdd /scripts/updateDonators.js | |
parent | cf7c8a7b343acd7c9a4b6087f9a76b2e099889d5 (diff) | |
download | skyblock-stats-5226124e477aa1c706960b7c56fafd001ce7e007.tar.gz skyblock-stats-5226124e477aa1c706960b7c56fafd001ce7e007.tar.bz2 skyblock-stats-5226124e477aa1c706960b7c56fafd001ce7e007.zip |
donators
Diffstat (limited to 'scripts/updateDonators.js')
-rw-r--r-- | scripts/updateDonators.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/scripts/updateDonators.js b/scripts/updateDonators.js new file mode 100644 index 0000000..f350484 --- /dev/null +++ b/scripts/updateDonators.js @@ -0,0 +1,49 @@ +import fs from 'fs' +import https from 'https' + +const API_URL = 'https://skyblock-api.matdoes.dev/' + +function fetch(url) { + return new Promise((resolve, reject) => { + let data = '' + + const req = https.request(new URL(url), res => { + res.on('data', d => { + data += d + }) + + res.on('end', () => { + resolve(data) + }) + }) + + req.on('error', error => { + reject(error) + }) + + req.end() + }) +} +function shuffle(a) { + for (let i = a.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)) + ;[a[i], a[j]] = [a[j], a[i]] + } + return a +} + +// create a donators.json from the donators.txt +const donatorUuidsText = await fs.promises.readFile('src/donators.txt', { + encoding: 'utf8' +}) +const donatorUuids = donatorUuidsText.split('\n').map(u => u.split(' ')[0]).filter(u => u) +const donators = await Promise.all( + donatorUuids.map(u => fetch(`${API_URL}player/${u}`) + .then(r => JSON.parse(r).player) + ) +) +await fs.promises.writeFile( + 'src/_donators.json', + JSON.stringify(shuffle(donators)), + { encoding: 'utf8' } +) |