const request = require('request-promise-native'), Config = require("../config"); module.exports = { getSteamUserData: async (steamID) => { try { let steamID64 = ""; if (/^\d{17}$/.test(steamID)) { steamID64 = steamID; } else { let vanity = await request({ url: `http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=${Config.STEAM_KEY}&vanityurl=${steamID}`, json: true }); if (vanity.response.success === 1) { steamID64 = vanity.response.steamid; } else { return { response: false, reason: "Unable to find steam profile" }; } } let playerProfile = await request({ url: `http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=${Config.STEAM_KEY}&steamids=${steamID64}`, json: true }); if (playerProfile.response.players.length === 0) { return { response: false, reason: "Steam query returned empty" }; } return { response: true, data: { steamid: (playerProfile.response.players[0].steamid), avatar: (playerProfile.response.players[0].avatarfull), username: (playerProfile.response.players[0].personaname), realname: (playerProfile.response.players[0].realname), status: (playerProfile.response.players[0].personastate), gameinfo: (playerProfile.response.players[0].gameextrainfo), gameid: (playerProfile.response.players[0].gameid), lobbysteamid: (playerProfile.response.players[0].lobbysteamid), timecreated: (playerProfile.response.players[0].timecreated), lastlogoff: (playerProfile.response.players[0].lastlogoff), loccountrycode: (playerProfile.response.players[0].loccountrycode), locstatecode: (playerProfile.response.players[0].locstatecode), loccityid: (playerProfile.response.players[0].loccityid), communityvisibilitystate: (playerProfile.response.players[0].communityvisibilitystate), profileurl: (playerProfile.response.players[0].profileurl) } }; } catch (err) { return { response: false, reason: "Steam query ratelimit" } } } };