noot
This commit is contained in:
parent
7a2511db3b
commit
8672574427
@ -1,4 +1,8 @@
|
||||
create table if not exists wynn_guild_members (
|
||||
create schema if not exists wynn;
|
||||
create schema if not exists minecraft;
|
||||
create schema if not exists discord;
|
||||
|
||||
create table if not exists wynn.guild_members (
|
||||
guild_id UUID not null,
|
||||
member_id UUID not null,
|
||||
rank text not null,
|
||||
@ -7,7 +11,7 @@ create table if not exists wynn_guild_members (
|
||||
primary key (guild_id, member_id),
|
||||
unique(member_id)
|
||||
);
|
||||
create table if not exists wynn_guild_info (
|
||||
create table if not exists wynn.guild_info (
|
||||
uid UUID not null,
|
||||
name text not null,
|
||||
prefix text not null,
|
||||
@ -20,22 +24,22 @@ create table if not exists wynn_guild_info (
|
||||
primary key (uid)
|
||||
);
|
||||
|
||||
create index if not exists wynn_guild_info_xp on wynn_guild_info (xp);
|
||||
create index if not exists wynn.guild_info_xp on wynn.guild_info (xp);
|
||||
|
||||
create table if not exists wynn_guild_season_results (
|
||||
create table if not exists wynn.guild_season_results (
|
||||
guild_id UUID not null,
|
||||
season text not null,
|
||||
rating bigint not null,
|
||||
territories bigint not null,
|
||||
primary key (guild_id, season)
|
||||
);
|
||||
create table if not exists minecraft_user (
|
||||
create table if not exists minecraft.user (
|
||||
uid UUID not null,
|
||||
name text not null,
|
||||
server text,
|
||||
primary key (uid)
|
||||
);
|
||||
create table if not exists discord_guild_setting(
|
||||
create table if not exists discord.guild_setting(
|
||||
discord_guild text not null,
|
||||
name text not null,
|
||||
value jsonb not null,
|
||||
@ -50,4 +54,6 @@ drop table if exists wynn_guild_season_results;
|
||||
drop table if exists minecraft_user;
|
||||
drop table if exists discord_guild_setting;
|
||||
|
||||
|
||||
drop schema if exists wynn cascade;
|
||||
drop schema if exists minecraft cascade;
|
||||
drop schema if exists discord cascade;
|
||||
|
@ -20,7 +20,7 @@ export async function update_all_guilds() {
|
||||
|
||||
const { sql } = await c.getAsync(PG)
|
||||
for(const [guild_name, guild] of Object.entries(parsed)){
|
||||
await sql`insert into wynn_guild_info
|
||||
await sql`insert into wynn.guild_info
|
||||
(uid, name, prefix)
|
||||
values
|
||||
(${guild.uuid}, ${guild_name}, ${guild.prefix})
|
||||
@ -46,7 +46,7 @@ export async function update_guild({
|
||||
const { db } = await c.getAsync(PG)
|
||||
|
||||
await db.begin(async (sql) => {
|
||||
await sql`insert into wynn_guild_info
|
||||
await sql`insert into wynn.guild_info
|
||||
(uid, name, prefix, level, xp_percent, territories, wars, created)
|
||||
values
|
||||
(${parsed.uuid}, ${parsed.name}, ${parsed.prefix}, ${parsed.level}, ${parsed.xpPercent}, ${parsed.territories}, ${parsed.wars}, ${parseDate(parsed.created)})
|
||||
@ -62,7 +62,7 @@ export async function update_guild({
|
||||
const {total, ...rest} = parsed.members
|
||||
for(const [rank_name, rank] of Object.entries(rest)){
|
||||
for(const [userName, member] of Object.entries(rank)) {
|
||||
await sql`insert into wynn_guild_members
|
||||
await sql`insert into wynn.guild_members
|
||||
(guild_id, member_id, rank, joined_at, contributed) values
|
||||
(${parsed.uuid}, ${member.uuid}, ${rank_name}, ${parseDate(member.joined)}, ${member.contributed})
|
||||
on conflict (guild_id, member_id) do update set
|
||||
@ -70,7 +70,7 @@ export async function update_guild({
|
||||
joined_at = EXCLUDED.joined_at,
|
||||
contributed = EXCLUDED.contributed
|
||||
`
|
||||
await sql`insert into minecraft_user
|
||||
await sql`insert into minecraft.user
|
||||
(uid, name, server) values (${member.uuid}, ${userName}, ${member.server})
|
||||
on conflict (uid) do update set
|
||||
name = EXCLUDED.name,
|
||||
@ -79,7 +79,7 @@ export async function update_guild({
|
||||
}
|
||||
}
|
||||
for (const [season, seasonData] of Object.entries(parsed.seasonRanks)) {
|
||||
await sql`insert into wynn_guild_season_results
|
||||
await sql`insert into wynn.guild_season_results
|
||||
(guild_id, season, rating, territories) values
|
||||
(${parsed.uuid}, ${season}, ${seasonData.rating}, ${seasonData.finalTerritories})
|
||||
on conflict (guild_id, season) do update set
|
||||
|
@ -20,7 +20,7 @@ export async function update_guild_levels() {
|
||||
}).assert(ans.data)
|
||||
const { sql } = await c.getAsync(PG)
|
||||
for(const [_, guild] of Object.entries(parsed)){
|
||||
await sql`insert into wynn_guild_info
|
||||
await sql`insert into wynn.guild_info
|
||||
(uid, name, prefix, xp, level)
|
||||
values
|
||||
(${guild.uuid}, ${guild.name}, ${guild.prefix}, ${guild.xp}, ${guild.level})
|
||||
|
@ -72,7 +72,7 @@ export const scrape_online_players = async()=>{
|
||||
for(const [playerName, server] of Object.entries(onlineList.players)){
|
||||
// we do this optimistically without a tx, because temporal will probably handle
|
||||
// the race, and the worst case is we do extra requests.
|
||||
const ans = await sql`select uid from minecraft_user where name = ${playerName} limit 1`
|
||||
const ans = await sql`select uid from minecraft.user where name = ${playerName} limit 1`
|
||||
if(ans.length === 0){
|
||||
// the user doesn't exist, so we need to grab their uuid
|
||||
try {
|
||||
@ -90,7 +90,7 @@ export const scrape_online_players = async()=>{
|
||||
}
|
||||
const uuid = parsedPlayer.data.player.id
|
||||
// insert the user.
|
||||
await sql`insert into minecraft_user (name, uid, server) values (${playerName}, ${uuid},${server})
|
||||
await sql`insert into minecraft.user (name, uid, server) values (${playerName}, ${uuid},${server})
|
||||
on conflict (uid) do update set
|
||||
name = EXCLUDED.name,
|
||||
server = EXCLUDED.server
|
||||
@ -104,10 +104,10 @@ export const scrape_online_players = async()=>{
|
||||
}
|
||||
}
|
||||
await sql.begin(async (sql)=>{
|
||||
await sql`update minecraft_user set server = null`
|
||||
await sql`update minecraft.user set server = null`
|
||||
for(const [playerName, server] of Object.entries(onlineList.players)){
|
||||
try {
|
||||
await sql`update minecraft_user set server = ${server} where name = ${playerName}`
|
||||
await sql`update minecraft.user set server = ${server} where name = ${playerName}`
|
||||
}catch(e) {
|
||||
log.warn(`failed to update server for ${playerName}`, {
|
||||
"err": e,
|
||||
|
@ -17,7 +17,7 @@ with ranked as (select
|
||||
territories,
|
||||
wars,
|
||||
rank() over (order by xp desc) as xp_rank
|
||||
from wynn_guild_info
|
||||
from wynn.guild_info
|
||||
)
|
||||
select * from ranked
|
||||
where ranked.uid = ${guild_id}
|
||||
@ -52,11 +52,11 @@ export const formGuildOnlineMessage = async (guild_id: string, sql:Sql): Promise
|
||||
name,
|
||||
rank,
|
||||
contributed,
|
||||
minecraft_user.server as server
|
||||
from wynn_guild_members inner join minecraft_user
|
||||
on minecraft_user.uid = wynn_guild_members.member_id
|
||||
where minecraft_user.server is not null
|
||||
and wynn_guild_members.guild_id = ${guild_id}
|
||||
minecraft.user.server as server
|
||||
from wynn.guild_members inner join minecraft.user
|
||||
on minecraft.user.uid = wynn.guild_members.member_id
|
||||
where minecraft.user.server is not null
|
||||
and wynn.guild_members.guild_id = ${guild_id}
|
||||
`
|
||||
const members = type({
|
||||
name: "string",
|
||||
@ -98,9 +98,9 @@ export const formGuildLeaderboardMessage = async (guild_id: string, sql:Sql): Pr
|
||||
name,
|
||||
rank,
|
||||
contributed
|
||||
from wynn_guild_members inner join minecraft_user
|
||||
on minecraft_user.uid = wynn_guild_members.member_id
|
||||
where wynn_guild_members.guild_id = ${guild_id}
|
||||
from wynn.guild_members inner join minecraft.user
|
||||
on minecraft.user.uid = wynn.guild_members.member_id
|
||||
where wynn.guild_members.guild_id = ${guild_id}
|
||||
`
|
||||
const members = type({
|
||||
name: "string",
|
||||
|
@ -24,7 +24,7 @@ export class WApi {
|
||||
|
||||
setupCache(c, {
|
||||
interpretHeader: true,
|
||||
ttl: 5 * 1000,
|
||||
ttl: 5000,
|
||||
storage: buildStorage({
|
||||
async find(key, currentRequest) {
|
||||
const value = await store.get({key})
|
||||
|
Loading…
Reference in New Issue
Block a user