98 lines
2.5 KiB
TypeScript
98 lines
2.5 KiB
TypeScript
import cache from './redis'
|
|
/**
|
|
* Shows the data for one weapon
|
|
* @param weapon
|
|
* @param server
|
|
* @param player
|
|
* @returns
|
|
*/
|
|
export async function getWeaponReport(
|
|
weapon: string,
|
|
server?: number,
|
|
player?: string
|
|
) {
|
|
const serverPrefix = !isNaN(Number(server?.toString()))
|
|
? `servers:${server}:`
|
|
: ''
|
|
const playerPrefix = player ? `players:${player}:` : ''
|
|
const cacheLocation = serverPrefix + playerPrefix + `weapons:` + weapon
|
|
const data = await cache.HGETALL(cacheLocation)
|
|
delete data.last_entry
|
|
return data
|
|
}
|
|
|
|
export function getWeaponSet(server?: number, player?: string) {
|
|
const serverPrefix = !isNaN(Number(server?.toString()))
|
|
? `servers:${server}:`
|
|
: ''
|
|
const playerPrefix = player ? `players:${player}:` : ''
|
|
const cacheLocation = serverPrefix + playerPrefix + `weapons`
|
|
return cache.SMEMBERS(cacheLocation)
|
|
}
|
|
|
|
/**
|
|
* Show the processed list of weapons
|
|
* @param server
|
|
* @param player
|
|
* @returns string
|
|
*/
|
|
export async function getWeaponList(server?: string, player?: string) {
|
|
const serverPrefix = !isNaN(Number(server?.toString()))
|
|
? `servers:${server}:`
|
|
: ''
|
|
const playerPrefix = player ? `players:${player}:` : ''
|
|
return JSON.parse(
|
|
(await cache.GET(serverPrefix + playerPrefix + `weapons:processedList`)) ||
|
|
'{}'
|
|
)
|
|
}
|
|
|
|
/**
|
|
* Show processed data for a player
|
|
* @param player
|
|
* @param server
|
|
* @param weapon
|
|
* @returns
|
|
*/
|
|
export async function getPlayerReport(
|
|
player: string,
|
|
server?: number,
|
|
weapon?: string
|
|
) {
|
|
const serverPrefix = !isNaN(Number(server?.toString()))
|
|
? `servers:${server}:`
|
|
: ''
|
|
const weaponPrefix = weapon ? `weapons:${weapon}:` : ''
|
|
const cacheLocation = serverPrefix + weaponPrefix + `players:` + player
|
|
const data = await cache.HGETALL(cacheLocation)
|
|
delete data.last_entry
|
|
return data
|
|
}
|
|
|
|
/**
|
|
* Shows processed list of players
|
|
* @param server
|
|
* @param weapon
|
|
* @returns string
|
|
*/
|
|
export async function getPlayerList(server?: number, weapon?: string) {
|
|
const serverPrefix = !isNaN(Number(server?.toString()))
|
|
? `servers:${server}:`
|
|
: ''
|
|
const weaponPrefix = weapon ? `weapons:${weapon}:` : ''
|
|
|
|
return JSON.parse(
|
|
(await cache.GET(serverPrefix + weaponPrefix + `players:processedList`)) ||
|
|
'{}'
|
|
)
|
|
}
|
|
|
|
export function getPlayerSet(server?: number, weapon?: string) {
|
|
const serverPrefix = !isNaN(Number(server?.toString()))
|
|
? `servers:${server}:`
|
|
: ''
|
|
const weaponPrefix = weapon ? `weapons:${weapon}:` : ''
|
|
const cacheLocation = serverPrefix + weaponPrefix + `players`
|
|
return cache.SMEMBERS(cacheLocation)
|
|
}
|