Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use-strict';
- const {MongoClient} = require('mongodb');
- const _ = require('lodash');
- const {id} = require('battlefy-utils');
- const {parse} = require('json2csv');
- const fs = require('fs');
- async function main() {
- // const db = await MongoClient.connect('mongodb://localhost:27017/anduril-development'); //local
- // const db = await MongoClient.connect('mongodb://172.16.32.88:27001/anduril'); //bali
- // const db = await MongoClient.connect('mongodb://172.16.34.232:27017/anduril'); //staging
- const db = await MongoClient.connect('mongodb://172.16.32.97:27000/anduril-prod'); //prod
- // const db = await MongoClient.connect('mongodb://172.16.32.63:27001/anduril'); //cancun
- const invitees = await db.collection('hearthStoneMastersInvitees').find({
- type: 'qualifier',
- deletedAt: {
- $exists: false
- }
- }, {
- battletag: true,
- tournamentID: true,
- tourStop: true,
- createdAt: true
- }).toArray();
- const tournamentIDs = _.map(invitees, 'tournamentID');
- const tournaments = await db.collection('tournaments').find({
- _id: {
- $in: id(tournamentIDs)
- }
- }, {
- name: true
- }).toArray();
- const tournamentsMap = _.keyBy(tournaments, ({_id}) => String(_id));
- const output = invitees.map(({battletag, tournamentID, tourStop, createdAt}) => {
- const tournamentName = _.get(tournamentsMap[String(tournamentID)], 'name', '');
- return {
- battletag,
- tournamentName,
- tourStop,
- qualifiedAt: createdAt
- };
- });
- fs.writeFileSync('hsm-qualified-players.tsv', parse(output, {fields: ['battletag', 'tournamentName', 'tourStop', 'qualifiedAt'], delimiter: '\t'}), 'utf-8');
- }
- const start = Date.now();
- main()
- .then((res) => {
- console.log(`process finised in ${Date.now() - start}`); // eslint-disable-line no-console
- process.exit(0);
- })
- .catch((err) => {
- console.log(err); // eslint-disable-line no-console
- console.log(err.stack); // eslint-disable-line no-console
- process.exit(1);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement