2021-10-06 19:52:40 +02:00
|
|
|
import Finish from '../../../schemas/Finish.js'
|
|
|
|
import Level from '../../../schemas/Level.js'
|
|
|
|
import Player from '../../../schemas/Player.js'
|
|
|
|
import initLog from '../../utills/log.js'
|
2021-10-09 20:12:06 +02:00
|
|
|
import decodeMsgpack from './decodeMsgpack.js'
|
2021-10-06 19:52:40 +02:00
|
|
|
const log = initLog("sqlite2mongo")
|
|
|
|
|
2021-10-06 20:36:20 +02:00
|
|
|
/**
|
|
|
|
* This handles some post-tasks that run after the initial checks.
|
|
|
|
* @module libs/database/sqlite2mongo/postTasks
|
|
|
|
*/
|
2021-10-06 19:52:40 +02:00
|
|
|
export default async function postTasks() {
|
|
|
|
log("Post tasks...")
|
|
|
|
|
2021-10-09 20:12:06 +02:00
|
|
|
log("Loading cached info from DDNet...")
|
|
|
|
const cache = decodeMsgpack()
|
2021-10-09 23:22:56 +02:00
|
|
|
/*
|
2021-10-09 20:12:06 +02:00
|
|
|
log("Adding total amounts of finishes to maps!")
|
|
|
|
for (const category in cache.maps) {
|
|
|
|
for (const i in cache.maps[category]) {
|
|
|
|
const map = cache.maps[category][i]
|
|
|
|
const mapFromDB = await Level.findOne({ name: map[0] })
|
|
|
|
if (!mapFromDB) continue
|
2021-10-06 19:52:40 +02:00
|
|
|
|
2021-10-09 20:12:06 +02:00
|
|
|
mapFromDB.totalFinishes = map[2]
|
|
|
|
mapFromDB.save()
|
|
|
|
|
|
|
|
log(`Processed ${category} map ${i}/${cache.maps[category].length} -> «${map[0]}» with ${map[2]} finishes!`)
|
|
|
|
}
|
|
|
|
}
|
2021-10-09 23:22:56 +02:00
|
|
|
|
|
|
|
log("Adding points to players")
|
|
|
|
for (const entry of cache.pointsRanks) {
|
|
|
|
const playerFromDB = await Player.findOne({ name: entry[0] })
|
|
|
|
if (!playerFromDB) continue
|
|
|
|
|
|
|
|
playerFromDB.points = entry[1]
|
|
|
|
playerFromDB.save()
|
|
|
|
|
|
|
|
log(`Processed ${entry[1]} points for ${entry[0]}`)
|
|
|
|
}
|
|
|
|
|
|
|
|
log("Adding rank points to players")
|
|
|
|
for (const entry of cache.rankPoints) {
|
|
|
|
const playerFromDB = await Player.findOne({ name: entry[0] })
|
|
|
|
if (!playerFromDB) continue
|
|
|
|
|
|
|
|
playerFromDB.rankPoints = entry[1]
|
|
|
|
playerFromDB.save()
|
|
|
|
|
|
|
|
log(`Processed ${entry[1]} rank points for ${entry[0]}`)
|
|
|
|
}
|
|
|
|
|
|
|
|
log("Adding team points to players")
|
|
|
|
for (const entry of cache.teamRankPoints) {
|
|
|
|
const playerFromDB = await Player.findOne({ name: entry[0] })
|
|
|
|
if (!playerFromDB) continue
|
|
|
|
|
|
|
|
playerFromDB.teamPoints = entry[1]
|
|
|
|
playerFromDB.save()
|
|
|
|
|
|
|
|
log(`Processed ${entry[1]} team points for ${entry[0]}`)
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
log("Adding weekly points to players")
|
|
|
|
for (const entry of cache.pointsThisWeek) {
|
|
|
|
const playerFromDB = await Player.findOne({ name: entry[0] })
|
|
|
|
if (!playerFromDB) continue
|
|
|
|
|
|
|
|
playerFromDB.pointsThisWeek = entry[1]
|
|
|
|
playerFromDB.save()
|
|
|
|
|
|
|
|
log(`Processed ${entry[1]} weekly points for ${entry[0]}`)
|
|
|
|
}
|
|
|
|
|
|
|
|
log("Adding monthly points to players")
|
|
|
|
for (const entry of cache.teamRankPoints) {
|
|
|
|
const playerFromDB = await Player.findOne({ name: entry[0] })
|
|
|
|
if (!playerFromDB) continue
|
|
|
|
|
|
|
|
playerFromDB.pointsThisMonth = entry[1]
|
|
|
|
playerFromDB.save()
|
|
|
|
|
|
|
|
log(`Processed ${entry[1]} team points for ${entry[0]}`)
|
|
|
|
}
|
2021-10-06 19:52:40 +02:00
|
|
|
}
|