From 6048206733b3d6bb9ffbacb3e54f4bef88777585 Mon Sep 17 00:00:00 2001 From: Indrajith K L Date: Sat, 27 Mar 2021 20:13:09 +0530 Subject: Fixes Lookup/Linked data mapping Adds Airtable Fields Config --- src/main.js | 60 +++++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 47 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/main.js b/src/main.js index 5d0f95e..f99bd5a 100644 --- a/src/main.js +++ b/src/main.js @@ -13,6 +13,12 @@ const base = Airtable.base('appppieGLc8loZp5H'); const client = new Client(); const CMD_PREFIX = "!"; const dayToMilliS = 60 * 60 * 24 * 1000; +const AirTableFields = { + WEAPON_TYPE: 'cod_weapon_type', + WEAPON_NAME: 'cod_weapon_name', + MATCH_TYPE: 'cod_match_type', + ATTACHMENTS: 'cod_weapon_attachments' +}; client.on('message', (message) => { if (message.author.bot) return; @@ -85,7 +91,7 @@ function parseCMD(message) { case 'jokes': randomJokes(message); return {}; case 'play': playMusik(message, args); return {}; case 'stop': stopMusik(message); return {}; - case 'loadout': getCodMLoadOut(message, args); return{}; + case 'loadout': getCodMLoadOut(message, args); return {}; default: return null; } } @@ -158,11 +164,11 @@ async function playMusik(message, args) { if (video) { const youtubeStream = ytdl(video.url, { filter: 'audioonly' }); - client.user.setPresence({activity: {name: `${video.title}`, type: 'LISTENING'}}); + client.user.setPresence({ activity: { name: `${video.title}`, type: 'LISTENING' } }); connection.play(youtubeStream, { seek: 0, volume: 1 }) .on('finish', () => { voiceChannel.leave(); - client.user.setPresence({activity: {name: ` `}}); + client.user.setPresence({ activity: { name: ` ` } }); }); await message.reply(`Now Playing ${video.title}...`); } else { @@ -179,7 +185,7 @@ async function stopMusik(message) { await voiceChannel.leave(); await message.channel.send("Stoping Music... Baye Baye.... 😅"); - client.user.setPresence({activity: {name: `COMMANDS`, type: 'LISTENING'}}); + client.user.setPresence({ activity: { name: `COMMANDS`, type: 'LISTENING' } }); } async function searchVideo(query) { @@ -189,32 +195,60 @@ async function searchVideo(query) { async function getCodMLoadOut(message, args) { const codUserName = args[0]; - if(!codUserName) return; + if (!codUserName) return; base('cod_loadout').select({ maxRecords: 2, view: "Grid view", filterByFormula: `({cod_username} = '${args[0]}')` - }).eachPage(function page(records, fetchNextPage) { + }).eachPage((records, fetchNextPage) => { if (records && records.length > 0) { - records.forEach((record) => { + records.forEach(async (record) => { + const weaponType = await getWeaponType(record.get(AirTableFields.WEAPON_TYPE)); + const weaponName = await getWeaponName(record.get(AirTableFields.WEAPON_NAME)); const loadOutMessage = new MessageEmbed() - .setTitle(`Loadout of ${codUserName} : ${record.get('cod_match_type')}`) - .addField('Weapon Name', record.get('cod_weapon_name'),true) - .addField('Weapon Type', record.get('cod_weapon_type'),true) - .addField('Attachments', record.get('cod_weapon_attachments'),true) - .setColor("RANDOM"); + .setTitle(`Loadout of ${codUserName} : ${record.get(AirTableFields.MATCH_TYPE)}`) + .addField('Weapon Name', weaponName, true) + .addField('Weapon Type', weaponType, true) + .addField('Attachments', record.get(AirTableFields.ATTACHMENTS), true) + .setColor("RANDOM"); message.channel.send(loadOutMessage); }); fetchNextPage(); } else { message.channel.send(`No Loadout found for ***${codUserName}***`); } - + }, function done(err) { if (err) { console.error(err); return; } }); } +async function getWeaponType(weaponType) { + return new Promise((resolve, reject) => { + base('Weapon Types').find(weaponType, (error, record) => { + if (error) { + console.log(error); + reject(); + } else { + resolve(record.get(AirTableFields.WEAPON_TYPE)); + } + }); + }) +} + +async function getWeaponName(weaponName) { + return new Promise((resolve, reject) => { + base('Weapons').find(weaponName, (error, record) => { + if (error) { + console.log(error); + reject(); + } else { + resolve(record.get(AirTableFields.WEAPON_NAME)); + } + }); + }) +} + client.login(process.env.LUL_BOT_TKN) .then(() => { intervalJokes(); -- cgit v1.2.3