import Finish from '../../../schemas/Finish.js' import Level from '../../../schemas/Level.js' import Player from '../../../schemas/Player.js' import initLog from '../../utills/log.js' import decodeMsgpack from './decodeMsgpack.js' const log = initLog("sqlite2mongo") /** * This handles some post-tasks that run after the initial checks. * @module libs/database/sqlite2mongo/postTasks */ export default async function postTasks() { log("Post tasks...") log("Loading cached info from DDNet...") const cache = decodeMsgpack() /* 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 mapFromDB.totalFinishes = map[2] mapFromDB.save() log(`Processed ${category} map ${i}/${cache.maps[category].length} -> «${map[0]}» with ${map[2]} finishes!`) } } 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]}`) } }