From 876dd9a2d3839250f22a11c65ce05296122ad65b Mon Sep 17 00:00:00 2001 From: Nathaniel Moschkin Date: Wed, 6 Dec 2023 13:24:22 -0500 Subject: [PATCH 1/4] rename CrewPeople to Voyager --- app/logic/telemetry.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/logic/telemetry.ts b/app/logic/telemetry.ts index 0410185..11a62d2 100644 --- a/app/logic/telemetry.ts +++ b/app/logic/telemetry.ts @@ -2,7 +2,7 @@ import { Op } from 'sequelize'; import { Voyage } from '../models/VoyageRecord'; import fs from 'fs'; -type CrewPeople = { +export interface Voyager { crewSymbol: string, seats: { seat_skill: string, seat_index: number, crewCount: number, averageDuration: number }[], averageDuration: number, @@ -72,7 +72,7 @@ export async function loadStats() { let dailyfile = `${path}/daily_stats.json`; if (fs.existsSync(dailyfile)) { - return JSON.parse(fs.readFileSync(dailyfile, 'utf-8')) as { [key: string]: CrewPeople[] }; + return JSON.parse(fs.readFileSync(dailyfile, 'utf-8')) as { [key: string]: Voyager[] }; } return {}; @@ -122,7 +122,7 @@ async function getVoyageStats() { ]; const records = await Voyage.findAll({ where: { voyageDate: { [Op.gte]: one80DaysAgo }}}); - const output = {} as { [key: string]: CrewPeople[] }; + const output = {} as { [key: string]: Voyager[] }; const dsets = [{ date: new Date(Date.now() - (180 * 24 * 60 * 60 * 1000)), @@ -142,7 +142,7 @@ async function getVoyageStats() { console.log(`From ${d} as '${fn}'...`); let results = records.filter(r => r.voyageDate.getTime() >= dset.date.getTime()); - const cp = {} as { [key: string]: CrewPeople }; + const cp = {} as { [key: string]: Voyager }; for (let res of results) { let seat = 0; From 2afc07233a2a032fe73871c71ad0acb4bebdb3c0 Mon Sep 17 00:00:00 2001 From: Nathaniel Moschkin Date: Wed, 6 Dec 2023 13:31:38 -0500 Subject: [PATCH 2/4] add extra stats field --- app/logic/telemetry.ts | 5 +++-- app/models/VoyageRecord.ts | 8 ++++++-- app/server.ts | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/logic/telemetry.ts b/app/logic/telemetry.ts index 11a62d2..5678cf4 100644 --- a/app/logic/telemetry.ts +++ b/app/logic/telemetry.ts @@ -41,7 +41,7 @@ async function recordVoyage(voyagers: string[]) { return true; } -async function recordVoyageCalc({ voyagers, estimatedDuration, primary_skill, secondary_skill, am_traits, ship_trait }: { voyagers: string[]; estimatedDuration: number; primary_skill?: string; secondary_skill?: string, am_traits?: string[], ship_trait?: string }) { +async function recordVoyageCalc({ voyagers, estimatedDuration, primary_skill, secondary_skill, am_traits, ship_trait, extra_stats }: { voyagers: string[]; estimatedDuration: number; primary_skill?: string; secondary_skill?: string, am_traits?: string[], ship_trait?: string, extra_stats?: any }) { // for (let i in voyagers) { // const crewSymbol = voyagers[i]; // await VoyageRecord.create({ crewSymbol, estimatedDuration }); @@ -55,7 +55,8 @@ async function recordVoyageCalc({ voyagers, estimatedDuration, primary_skill, se primary_skill, secondary_skill, am_traits, - ship_trait + ship_trait, + extra_stats }); return true; diff --git a/app/models/VoyageRecord.ts b/app/models/VoyageRecord.ts index b679e6a..30e2f3a 100644 --- a/app/models/VoyageRecord.ts +++ b/app/models/VoyageRecord.ts @@ -40,9 +40,10 @@ export class Voyage extends Model { @Column ship_trait?: string; -} - + @Column(DataType.JSON) + extra_stats?: any +} @Table export class Historical extends Model { @@ -70,5 +71,8 @@ export class Historical extends Model { @Column ship_trait?: string; + + @Column(DataType.JSON) + extra_stats?: any } diff --git a/app/server.ts b/app/server.ts index 521e2c7..3671bc4 100644 --- a/app/server.ts +++ b/app/server.ts @@ -8,6 +8,7 @@ import expressWinston from 'express-winston'; import { ApiController } from './controllers'; import { Logger, DataCoreAPI, createStats } from './logic'; import { sequelize } from './sequelize'; +import { Voyage } from './models/VoyageRecord'; require('dotenv').config(); From eed1c7593dce9a4a120c44f37897f5b4547a967d Mon Sep 17 00:00:00 2001 From: Nathaniel Moschkin Date: Wed, 6 Dec 2023 13:33:32 -0500 Subject: [PATCH 3/4] check on the hour --- app/logic/telemetry.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/logic/telemetry.ts b/app/logic/telemetry.ts index 5678cf4..1bc831b 100644 --- a/app/logic/telemetry.ts +++ b/app/logic/telemetry.ts @@ -81,6 +81,10 @@ export async function loadStats() { export async function createStats(force?: boolean) { let mynow = new Date(); + mynow.setMinutes(0); + mynow.setSeconds(0); + mynow.setMilliseconds(0); + let path = `${process.env.PROFILE_DATA_PATH}/stats`; if (!fs.existsSync(path)) { fs.mkdirSync(path); From e98c73b970c1ff0558f09338047b67c185f9de35 Mon Sep 17 00:00:00 2001 From: Nathaniel Moschkin Date: Wed, 6 Dec 2023 13:33:48 -0500 Subject: [PATCH 4/4] check 30 minutes --- app/logic/telemetry.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/logic/telemetry.ts b/app/logic/telemetry.ts index 1bc831b..f0be66c 100644 --- a/app/logic/telemetry.ts +++ b/app/logic/telemetry.ts @@ -84,7 +84,7 @@ export async function createStats(force?: boolean) { mynow.setMinutes(0); mynow.setSeconds(0); mynow.setMilliseconds(0); - + let path = `${process.env.PROFILE_DATA_PATH}/stats`; if (!fs.existsSync(path)) { fs.mkdirSync(path); @@ -98,14 +98,14 @@ export async function createStats(force?: boolean) { fs.rmSync(dailyfile); } else { - setTimeout(() => createStats(), 1000 * 60 * 60); + setTimeout(() => createStats(), 1000 * 60 * 30); return; } } let result = await getVoyageStats(); fs.writeFileSync(dailyfile, JSON.stringify(result)); - setTimeout(() => createStats(), 1000 * 60 * 60); + setTimeout(() => createStats(), 1000 * 60 * 30); } async function getVoyageStats() {