Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. 'use-strict';
  2.  
  3. const {MongoClient} = require('mongodb');
  4. const _ = require('lodash');
  5. const {id} = require('battlefy-utils');
  6. const {parse} = require('json2csv');
  7. const fs = require('fs');
  8.  
  9. async function main() {
  10. // const db = await MongoClient.connect('mongodb://localhost:27017/anduril-development'); //local
  11. // const db = await MongoClient.connect('mongodb://172.16.32.88:27001/anduril'); //bali
  12. // const db = await MongoClient.connect('mongodb://172.16.34.232:27017/anduril'); //staging
  13. const db = await MongoClient.connect('mongodb://172.16.32.97:27000/anduril-prod'); //prod
  14. // const db = await MongoClient.connect('mongodb://172.16.32.63:27001/anduril'); //cancun
  15.  
  16. const invitees = await db.collection('hearthStoneMastersInvitees').find({
  17. type: 'qualifier',
  18. deletedAt: {
  19. $exists: false
  20. }
  21. }, {
  22. battletag: true,
  23. tournamentID: true,
  24. tourStop: true,
  25. createdAt: true
  26. }).toArray();
  27.  
  28. const tournamentIDs = _.map(invitees, 'tournamentID');
  29.  
  30. const tournaments = await db.collection('tournaments').find({
  31. _id: {
  32. $in: id(tournamentIDs)
  33. }
  34. }, {
  35. name: true
  36. }).toArray();
  37.  
  38. const tournamentsMap = _.keyBy(tournaments, ({_id}) => String(_id));
  39.  
  40. const output = invitees.map(({battletag, tournamentID, tourStop, createdAt}) => {
  41. const tournamentName = _.get(tournamentsMap[String(tournamentID)], 'name', '');
  42. return {
  43. battletag,
  44. tournamentName,
  45. tourStop,
  46. qualifiedAt: createdAt
  47. };
  48. });
  49.  
  50. fs.writeFileSync('hsm-qualified-players.tsv', parse(output, {fields: ['battletag', 'tournamentName', 'tourStop', 'qualifiedAt'], delimiter: '\t'}), 'utf-8');
  51. }
  52.  
  53. const start = Date.now();
  54.  
  55. main()
  56. .then((res) => {
  57. console.log(`process finised in ${Date.now() - start}`); // eslint-disable-line no-console
  58. process.exit(0);
  59. })
  60. .catch((err) => {
  61. console.log(err); // eslint-disable-line no-console
  62. console.log(err.stack); // eslint-disable-line no-console
  63. process.exit(1);
  64. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement