From d7378945b3f43fe43e9007ef8b0a0688b3281c03 Mon Sep 17 00:00:00 2001 From: Brendan Lane Date: Tue, 22 Dec 2020 01:19:23 -0500 Subject: [PATCH] Add depersonalized data fetching + More Fixes #18 --- src/main.ts | 7 +- src/modules/User.ts | 15 ++++ src/modules/depersonalized/group.ts | 45 +++++++++++ src/modules/depersonalized/user.ts | 96 +++++++++++++++++++++++ typings/main.d.ts | 7 +- typings/modules/depersonalized/group.d.ts | 3 + typings/modules/depersonalized/user.d.ts | 6 ++ 7 files changed, 177 insertions(+), 2 deletions(-) create mode 100644 src/modules/depersonalized/group.ts create mode 100644 src/modules/depersonalized/user.ts create mode 100644 typings/modules/depersonalized/group.d.ts create mode 100644 typings/modules/depersonalized/user.d.ts diff --git a/src/main.ts b/src/main.ts index 981ee3e..129c3b1 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,11 +8,16 @@ import District from './modules/District' import Stock from './modules/Stock' import TransactionHub from './modules/TransactionHub' +import * as DepersonalizedUser from './modules/depersonalized/user' +import * as DepersonalizedGroup from './modules/depersonalized/group' + export { User, Group, Auth, District, Stock, - TransactionHub + TransactionHub, + DepersonalizedUser, + DepersonalizedGroup } diff --git a/src/modules/User.ts b/src/modules/User.ts index c01d49e..15656af 100644 --- a/src/modules/User.ts +++ b/src/modules/User.ts @@ -227,6 +227,21 @@ class User { }) } + /* + FIXME: This method is at the current moment deprecated. Please someone get on this. + + public async totalXP (): Promise { + return await new Promise((resolve, reject) => { + try { + const userData = this.getUser() + resolve(userData.post_likes + userData.comment_likes + (userData.twitch_message_xp * 4) + (userData.discord_commends * 5) + (userData.discord_message_xp * 2) + (userData.discord_game_xp / 100)) + } catch (e) { + reject(e) + } + }) + } + */ + public get apikey (): string { return this.authkey } diff --git a/src/modules/depersonalized/group.ts b/src/modules/depersonalized/group.ts new file mode 100644 index 0000000..102d723 --- /dev/null +++ b/src/modules/depersonalized/group.ts @@ -0,0 +1,45 @@ +/* eslint-disable @typescript-eslint/strict-boolean-expressions */ + +// SpookVooper API - modules/depersonalized/group.ts +// Written by Brendan Lane - https://brndnln.dev/ + +import axios from 'axios' + +const baseURL = 'https://api.spookvooper.com/group' + +async function doesGroupExist (svid: string, errToConsole?: boolean): Promise { + return await new Promise((resolve, reject) => { + axios.get(`${baseURL}/doesGroupExist?svid=${svid}`) + .then(function (response) { + resolve(response.data) + }) + .catch(function (error) { + if (errToConsole) { + console.warn(error) + } else { + reject(error) + } + }) + }) +} + +async function getSvidFromName (name: string, errToConsole?: boolean): Promise { + return await new Promise((resolve, reject) => { + axios.get(`${baseURL}/getSvidFromName?name=${name}`) + .then(function (response) { + resolve(response.data) + }) + .catch(function (error) { + if (errToConsole) { + console.warn(error) + } else { + reject(error) + } + }) + }) +} + +export { + getSvidFromName, + doesGroupExist +} diff --git a/src/modules/depersonalized/user.ts b/src/modules/depersonalized/user.ts new file mode 100644 index 0000000..e17b53e --- /dev/null +++ b/src/modules/depersonalized/user.ts @@ -0,0 +1,96 @@ +/* eslint-disable @typescript-eslint/strict-boolean-expressions */ + +// SpookVooper API - modules/depersonalized/user.ts +// Written by Brendan Lane - https://brndnln.dev/ + +import axios from 'axios' + +const baseURL = 'https://api.spookvooper.com/user' + +async function getSvidFromUsername (username: string, errToConsole?: boolean): Promise { + return await new Promise((resolve, reject) => { + axios.get(`${baseURL}/getSvidFromUsername?username=${username}`) + .then(function (response) { + resolve(response.data) + }) + .catch(function (error) { + if (errToConsole) { + console.warn(error) + } else { + reject(error) + } + }) + }) +} + +async function getUsernameFromDiscord (discordid: string, errToConsole?: boolean): Promise { + return await new Promise((resolve, reject) => { + axios.get(`${baseURL}/getUsernameFromDiscord?discordid=${discordid}`) + .then(function (response) { + resolve(response.data) + }) + .catch(function (error) { + if (errToConsole) { + console.warn(error) + } else { + reject(error) + } + }) + }) +} + +async function getSvidFromDiscord (discordid: string, errToConsole?: boolean): Promise { + return await new Promise((resolve, reject) => { + axios.get(`${baseURL}/getSvidFromDiscord?discordid=${discordid}`) + .then(function (response) { + resolve(response.data) + }) + .catch(function (error) { + if (errToConsole) { + console.warn(error) + } else { + reject(error) + } + }) + }) +} + +async function getUsernameFromMinecraft (minecraftid: string, errToConsole?: boolean): Promise { + return await new Promise((resolve, reject) => { + axios.get(`${baseURL}/getUsernameFromMinecraft?minecraftid=${minecraftid}`) + .then(function (response) { + resolve(response.data) + }) + .catch(function (error) { + if (errToConsole) { + console.warn(error) + } else { + reject(error) + } + }) + }) +} + +async function getSvidFromMinecraft (minecraftid: string, errToConsole?: boolean): Promise { + return await new Promise((resolve, reject) => { + axios.get(`${baseURL}/getSvidFromMinecraft?minecraftid=${minecraftid}`) + .then(function (response) { + resolve(response.data) + }) + .catch(function (error) { + if (errToConsole) { + console.warn(error) + } else { + reject(error) + } + }) + }) +} + +export { + getSvidFromUsername, + getSvidFromMinecraft, + getSvidFromDiscord, + getUsernameFromDiscord, + getUsernameFromMinecraft +} diff --git a/typings/main.d.ts b/typings/main.d.ts index ecc1f37..823c831 100644 --- a/typings/main.d.ts +++ b/typings/main.d.ts @@ -1,4 +1,9 @@ import User from './modules/User' import Group from './modules/Group' import Auth from './modules/Auth' -export { User, Group, Auth } +import District from './modules/District' +import Stock from './modules/Stock' +import TransactionHub from './modules/TransactionHub' +import * as DepersonalizedUser from './modules/depersonalized/user' +import * as DepersonalizedGroup from './modules/depersonalized/group' +export { User, Group, Auth, District, Stock, TransactionHub, DepersonalizedUser, DepersonalizedGroup } diff --git a/typings/modules/depersonalized/group.d.ts b/typings/modules/depersonalized/group.d.ts new file mode 100644 index 0000000..6de4cee --- /dev/null +++ b/typings/modules/depersonalized/group.d.ts @@ -0,0 +1,3 @@ +declare function doesGroupExist (svid: string, errToConsole?: boolean): Promise +declare function getSvidFromName (name: string, errToConsole?: boolean): Promise +export { getSvidFromName, doesGroupExist } diff --git a/typings/modules/depersonalized/user.d.ts b/typings/modules/depersonalized/user.d.ts new file mode 100644 index 0000000..0468bb7 --- /dev/null +++ b/typings/modules/depersonalized/user.d.ts @@ -0,0 +1,6 @@ +declare function getSvidFromUsername (username: string, errToConsole?: boolean): Promise +declare function getUsernameFromDiscord (discordid: string, errToConsole?: boolean): Promise +declare function getSvidFromDiscord (discordid: string, errToConsole?: boolean): Promise +declare function getUsernameFromMinecraft (minecraftid: string, errToConsole?: boolean): Promise +declare function getSvidFromMinecraft (minecraftid: string, errToConsole?: boolean): Promise +export { getSvidFromUsername, getSvidFromMinecraft, getSvidFromDiscord, getUsernameFromDiscord, getUsernameFromMinecraft }