aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2021-05-30 21:33:02 -0500
committermat <github@matdoes.dev>2021-05-30 21:33:02 -0500
commit09abf9c1fc875e95dc58c0ad0b59a107d800f9d4 (patch)
tree8d054128c96ec3999169b72452e14e1bb16b2feb
parentdcccb6fa3bcfb15dcb272e47ddd87184ab84be61 (diff)
downloadskyblock-api-09abf9c1fc875e95dc58c0ad0b59a107d800f9d4.tar.gz
skyblock-api-09abf9c1fc875e95dc58c0ad0b59a107d800f9d4.tar.bz2
skyblock-api-09abf9c1fc875e95dc58c0ad0b59a107d800f9d4.zip
Revert "disable leaderboards again :trollface:"
This reverts commit dcccb6fa3bcfb15dcb272e47ddd87184ab84be61.
-rw-r--r--build/database.js35
-rw-r--r--src/database.ts35
2 files changed, 10 insertions, 60 deletions
diff --git a/build/database.js b/build/database.js
index 06065d6..7e7331c 100644
--- a/build/database.js
+++ b/build/database.js
@@ -121,7 +121,6 @@ function getProfileLeaderboardAttributes(profile) {
};
}
async function fetchAllLeaderboardsCategorized() {
- return {};
const memberLeaderboardAttributes = await fetchAllMemberLeaderboardAttributes();
const profileLeaderboardAttributes = await fetchAllProfileLeaderboardAttributes();
const categorizedLeaderboards = {};
@@ -140,7 +139,6 @@ async function fetchAllLeaderboardsCategorized() {
exports.fetchAllLeaderboardsCategorized = fetchAllLeaderboardsCategorized;
/** Fetch the raw names for the slayer leaderboards */
async function fetchSlayerLeaderboards() {
- return [];
const rawSlayerNames = await constants.fetchSlayers();
let leaderboardNames = [
'slayer_total_xp',
@@ -159,7 +157,6 @@ async function fetchSlayerLeaderboards() {
exports.fetchSlayerLeaderboards = fetchSlayerLeaderboards;
/** Fetch the names of all the leaderboards that rank members */
async function fetchAllMemberLeaderboardAttributes() {
- return [];
return [
// we use the raw stat names rather than the clean stats in case hypixel adds a new stat and it takes a while for us to clean it
...await constants.fetchStats(),
@@ -197,7 +194,6 @@ function isLeaderboardReversed(name) {
/** A set of names of the raw leaderboards that are currently being fetched. This is used to make sure two leaderboads aren't fetched at the same time */
const fetchingRawLeaderboardNames = new Set();
async function fetchMemberLeaderboardRaw(name) {
- return [];
if (!client)
throw Error('Client isn\'t initialized yet');
if (exports.cachedRawLeaderboards.has(name))
@@ -226,7 +222,6 @@ async function fetchMemberLeaderboardRaw(name) {
return leaderboardRaw;
}
async function fetchProfileLeaderboardRaw(name) {
- return [];
if (exports.cachedRawLeaderboards.has(name))
return exports.cachedRawLeaderboards.get(name);
// if it's currently being fetched, check every 100ms until it's in cachedRawLeaderboards
@@ -255,11 +250,6 @@ async function fetchProfileLeaderboardRaw(name) {
/** Fetch a leaderboard that ranks members, as opposed to profiles */
async function fetchMemberLeaderboard(name) {
var _a;
- return {
- list: [],
- name: 'Leaderboards are temporarily disabled, they\'ll be back in a few hours',
- unit: ''
- };
const leaderboardRaw = await fetchMemberLeaderboardRaw(name);
const fetchLeaderboardPlayer = async (item) => {
return {
@@ -283,11 +273,6 @@ exports.fetchMemberLeaderboard = fetchMemberLeaderboard;
/** Fetch a leaderboard that ranks profiles, as opposed to members */
async function fetchProfileLeaderboard(name) {
var _a;
- return {
- list: [],
- name: 'Leaderboards are temporarily disabled, they\'ll be back in a few hours',
- unit: ''
- };
const leaderboardRaw = await fetchProfileLeaderboardRaw(name);
const fetchLeaderboardProfile = async (item) => {
const players = [];
@@ -313,11 +298,6 @@ async function fetchProfileLeaderboard(name) {
exports.fetchProfileLeaderboard = fetchProfileLeaderboard;
/** Fetch a leaderboard */
async function fetchLeaderboard(name) {
- return {
- list: [],
- name: 'Leaderboards are temporarily disabled, they\'ll be back in a few hours',
- unit: ''
- };
const profileLeaderboards = await fetchAllProfileLeaderboardAttributes();
if (profileLeaderboards.includes(name)) {
return await fetchProfileLeaderboard(name);
@@ -330,7 +310,6 @@ exports.fetchLeaderboard = fetchLeaderboard;
/** Get the leaderboard positions a member is on. This may take a while depending on whether stuff is cached */
async function fetchMemberLeaderboardSpots(player, profile) {
var _a;
- return [];
const fullProfile = await cached.fetchProfile(player, profile);
const fullMember = fullProfile.members.find(m => m.username.toLowerCase() === player.toLowerCase() || m.uuid === player);
// update the leaderboard positions for the member
@@ -364,7 +343,6 @@ async function getLeaderboardRequirement(name, leaderboardType) {
}
/** Get the attributes for the member, but only ones that would put them on the top 100 for leaderboards */
async function getApplicableMemberLeaderboardAttributes(member) {
- return {};
const leaderboardAttributes = getMemberLeaderboardAttributes(member);
const applicableAttributes = {};
for (const [leaderboard, attributeValue] of Object.entries(leaderboardAttributes)) {
@@ -385,7 +363,6 @@ async function getApplicableMemberLeaderboardAttributes(member) {
}
/** Get the attributes for the profile, but only ones that would put them on the top 100 for leaderboards */
async function getApplicableProfileLeaderboardAttributes(profile) {
- return {};
const leaderboardAttributes = getProfileLeaderboardAttributes(profile);
const applicableAttributes = {};
for (const [leaderboard, attributeValue] of Object.entries(leaderboardAttributes)) {
@@ -406,7 +383,6 @@ async function getApplicableProfileLeaderboardAttributes(profile) {
}
/** Update the member's leaderboard data on the server if applicable */
async function updateDatabaseMember(member, profile) {
- return;
if (!client)
return; // the db client hasn't been initialized
if (_1.debug)
@@ -462,7 +438,6 @@ exports.updateDatabaseMember = updateDatabaseMember;
* This will not also update the members, you have to call updateDatabaseMember separately for that
*/
async function updateDatabaseProfile(profile) {
- return;
if (!client)
return; // the db client hasn't been initialized
if (_1.debug)
@@ -517,12 +492,12 @@ const leaderboardUpdateProfileQueue = new queue_promise_1.default({
});
/** Queue an update for the member's leaderboard data on the server if applicable */
function queueUpdateDatabaseMember(member, profile) {
- // leaderboardUpdateMemberQueue.enqueue(async() => await updateDatabaseMember(member, profile))
+ leaderboardUpdateMemberQueue.enqueue(async () => await updateDatabaseMember(member, profile));
}
exports.queueUpdateDatabaseMember = queueUpdateDatabaseMember;
/** Queue an update for the profile's leaderboard data on the server if applicable */
function queueUpdateDatabaseProfile(profile) {
- // leaderboardUpdateProfileQueue.enqueue(async() => await updateDatabaseProfile(profile))
+ leaderboardUpdateProfileQueue.enqueue(async () => await updateDatabaseProfile(profile));
}
exports.queueUpdateDatabaseProfile = queueUpdateDatabaseProfile;
/**
@@ -610,10 +585,10 @@ exports.updateAccount = updateAccount;
if (!globalThis.isTest) {
connect().then(() => {
// when it connects, cache the leaderboards and remove bad members
- // removeBadMemberLeaderboardAttributes()
+ removeBadMemberLeaderboardAttributes();
// cache leaderboards on startup so its faster later on
- // fetchAllLeaderboards(false)
+ fetchAllLeaderboards(false);
// cache leaderboard players again every 4 hours
- // setInterval(fetchAllLeaderboards, 4 * 60 * 60 * 1000)
+ setInterval(fetchAllLeaderboards, 4 * 60 * 60 * 1000);
});
}
diff --git a/src/database.ts b/src/database.ts
index 803ad64..2acfee5 100644
--- a/src/database.ts
+++ b/src/database.ts
@@ -171,7 +171,6 @@ function getProfileLeaderboardAttributes(profile: CleanFullProfile): StringNumbe
export async function fetchAllLeaderboardsCategorized(): Promise<{ [ category: string ]: string[] }> {
- return {}
const memberLeaderboardAttributes: string[] = await fetchAllMemberLeaderboardAttributes()
const profileLeaderboardAttributes: string[] = await fetchAllProfileLeaderboardAttributes()
@@ -193,7 +192,6 @@ export async function fetchAllLeaderboardsCategorized(): Promise<{ [ category: s
/** Fetch the raw names for the slayer leaderboards */
export async function fetchSlayerLeaderboards(): Promise<string[]> {
- return []
const rawSlayerNames = await constants.fetchSlayers()
let leaderboardNames: string[] = [
'slayer_total_xp',
@@ -214,7 +212,6 @@ export async function fetchSlayerLeaderboards(): Promise<string[]> {
/** Fetch the names of all the leaderboards that rank members */
export async function fetchAllMemberLeaderboardAttributes(): Promise<string[]> {
- return []
return [
// we use the raw stat names rather than the clean stats in case hypixel adds a new stat and it takes a while for us to clean it
...await constants.fetchStats(),
@@ -261,7 +258,6 @@ function isLeaderboardReversed(name: string): boolean {
const fetchingRawLeaderboardNames: Set<string> = new Set()
async function fetchMemberLeaderboardRaw(name: string): Promise<DatabaseMemberLeaderboardItem[]> {
- return []
if (!client) throw Error('Client isn\'t initialized yet')
if (cachedRawLeaderboards.has(name))
@@ -295,7 +291,6 @@ async function fetchMemberLeaderboardRaw(name: string): Promise<DatabaseMemberLe
}
async function fetchProfileLeaderboardRaw(name: string): Promise<DatabaseProfileLeaderboardItem[]> {
- return []
if (cachedRawLeaderboards.has(name))
return cachedRawLeaderboards.get(name) as DatabaseProfileLeaderboardItem[]
@@ -342,11 +337,6 @@ interface ProfileLeaderboard {
/** Fetch a leaderboard that ranks members, as opposed to profiles */
export async function fetchMemberLeaderboard(name: string): Promise<MemberLeaderboard> {
- return {
- list: [],
- name: 'Leaderboards are temporarily disabled, they\'ll be back in a few hours',
- unit: ''
- }
const leaderboardRaw = await fetchMemberLeaderboardRaw(name)
const fetchLeaderboardPlayer = async(item: DatabaseMemberLeaderboardItem): Promise<MemberLeaderboardItem> => {
@@ -371,11 +361,6 @@ export async function fetchMemberLeaderboard(name: string): Promise<MemberLeader
/** Fetch a leaderboard that ranks profiles, as opposed to members */
export async function fetchProfileLeaderboard(name: string): Promise<ProfileLeaderboard> {
- return {
- list: [],
- name: 'Leaderboards are temporarily disabled, they\'ll be back in a few hours',
- unit: ''
- }
const leaderboardRaw = await fetchProfileLeaderboardRaw(name)
const fetchLeaderboardProfile = async(item: DatabaseProfileLeaderboardItem): Promise<ProfileLeaderboardItem> => {
@@ -402,11 +387,6 @@ export async function fetchProfileLeaderboard(name: string): Promise<ProfileLead
/** Fetch a leaderboard */
export async function fetchLeaderboard(name: string): Promise<MemberLeaderboard|ProfileLeaderboard> {
- return {
- list: [],
- name: 'Leaderboards are temporarily disabled, they\'ll be back in a few hours',
- unit: ''
- }
const profileLeaderboards = await fetchAllProfileLeaderboardAttributes()
if (profileLeaderboards.includes(name)) {
return await fetchProfileLeaderboard(name)
@@ -417,7 +397,6 @@ export async function fetchLeaderboard(name: string): Promise<MemberLeaderboard|
/** Get the leaderboard positions a member is on. This may take a while depending on whether stuff is cached */
export async function fetchMemberLeaderboardSpots(player: string, profile: string) {
- return []
const fullProfile = await cached.fetchProfile(player, profile)
const fullMember = fullProfile.members.find(m => m.username.toLowerCase() === player.toLowerCase() || m.uuid === player)
@@ -459,7 +438,6 @@ async function getLeaderboardRequirement(name: string, leaderboardType: 'member'
/** Get the attributes for the member, but only ones that would put them on the top 100 for leaderboards */
async function getApplicableMemberLeaderboardAttributes(member: CleanMember): Promise<StringNumber> {
- return {}
const leaderboardAttributes = getMemberLeaderboardAttributes(member)
const applicableAttributes = {}
@@ -490,7 +468,6 @@ async function getApplicableMemberLeaderboardAttributes(member: CleanMember): Pr
/** Get the attributes for the profile, but only ones that would put them on the top 100 for leaderboards */
async function getApplicableProfileLeaderboardAttributes(profile: CleanFullProfile): Promise<StringNumber> {
- return {}
const leaderboardAttributes = getProfileLeaderboardAttributes(profile)
const applicableAttributes = {}
@@ -521,7 +498,6 @@ async function getApplicableProfileLeaderboardAttributes(profile: CleanFullProfi
/** Update the member's leaderboard data on the server if applicable */
export async function updateDatabaseMember(member: CleanMember, profile: CleanFullProfile): Promise<void> {
- return
if (!client) return // the db client hasn't been initialized
if (debug) console.debug('updateDatabaseMember', member.username)
// the member's been updated too recently, just return
@@ -583,7 +559,6 @@ export async function updateDatabaseMember(member: CleanMember, profile: CleanFu
* This will not also update the members, you have to call updateDatabaseMember separately for that
*/
export async function updateDatabaseProfile(profile: CleanFullProfile): Promise<void> {
- return
if (!client) return // the db client hasn't been initialized
if (debug) console.debug('updateDatabaseProfile', profile.name)
@@ -645,12 +620,12 @@ const leaderboardUpdateProfileQueue = new Queue({
/** Queue an update for the member's leaderboard data on the server if applicable */
export function queueUpdateDatabaseMember(member: CleanMember, profile: CleanFullProfile): void {
- // leaderboardUpdateMemberQueue.enqueue(async() => await updateDatabaseMember(member, profile))
+ leaderboardUpdateMemberQueue.enqueue(async() => await updateDatabaseMember(member, profile))
}
/** Queue an update for the profile's leaderboard data on the server if applicable */
export function queueUpdateDatabaseProfile(profile: CleanFullProfile): void {
- // leaderboardUpdateProfileQueue.enqueue(async() => await updateDatabaseProfile(profile))
+ leaderboardUpdateProfileQueue.enqueue(async() => await updateDatabaseProfile(profile))
}
@@ -748,10 +723,10 @@ export async function updateAccount(discordId: string, schema: AccountSchema) {
if (!globalThis.isTest) {
connect().then(() => {
// when it connects, cache the leaderboards and remove bad members
- // removeBadMemberLeaderboardAttributes()
+ removeBadMemberLeaderboardAttributes()
// cache leaderboards on startup so its faster later on
- // fetchAllLeaderboards(false)
+ fetchAllLeaderboards(false)
// cache leaderboard players again every 4 hours
- // setInterval(fetchAllLeaderboards, 4 * 60 * 60 * 1000)
+ setInterval(fetchAllLeaderboards, 4 * 60 * 60 * 1000)
})
}