Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/database/collections.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import type { FuturePlayerSkillModel } from './models/future-player-skill.model'
import type { PendingImportModel } from './models/pending-import.model'
import type { LogsTfLogModel } from './models/logs-tf-log.model'
import type { DeferredKickModel } from './models/deferred-kick.model'
import type { GameRoundProgressModel } from './models/game-round-progress.model'
import type { GameLogParseStateModel } from './models/game-log-parse-state.model'
import type { TelemetryStatModel } from './models/telemetry-stat.model'
import { ensureIndexes } from './ensure-indexes'

Expand All @@ -48,7 +48,7 @@ export const collections = {
gameLogs: database.collection<GameLogsModel>('gamelogs'),
games: database.collection<GameModel>('games'),
gamesDeferredKicks: database.collection<DeferredKickModel>('games.deferredkicks'),
gamesRoundProgress: database.collection<GameRoundProgressModel>('games.roundprogress'),
gamesLogParseState: database.collection<GameLogParseStateModel>('games.logparsestate'),
gamesSubstituteRequests: database.collection<SubstituteRequestModel>('games.substituterequests'),
keys: database.collection<KeyModel>('keys'),
logsTfLogs: database.collection<LogsTfLogModel>('logstf.logs'),
Expand Down
6 changes: 5 additions & 1 deletion src/database/ensure-indexes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
type IndexSpecification,
} from 'mongodb'
import { logger } from '../logger'
import { hoursToSeconds } from 'date-fns'

interface IndexDefinition {
spec: IndexSpecification
Expand Down Expand Up @@ -62,7 +63,10 @@ const definitions: Partial<Record<keyof typeof collections, IndexDefinition[]>>
{ spec: { gameNumber: 1, slotId: 1 }, options: { unique: true } },
{ spec: { gameNumber: 1, replacement: 1 } },
],
gamesRoundProgress: [{ spec: { gameNumber: 1 }, options: { unique: true } }],
gamesLogParseState: [
{ spec: { gameNumber: 1 }, options: { unique: true } },
{ spec: { at: 1 }, options: { expireAfterSeconds: hoursToSeconds(24) } },
],
futurePlayerSkills: [{ spec: { steamId: 1 }, options: { unique: true } }],
pendingImports: [{ spec: { actor: 1 }, options: { unique: true } }],
logsTfLogs: [
Expand Down
17 changes: 17 additions & 0 deletions src/database/models/game-log-parse-state.model.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import type { GameContext } from '../../tf2-game-analyzer/game-context'
import type { GameNumber } from './game.model'

/**
* Persisted parse state for a single game's log stream. The tf2-game-analyzer
* {@link GameContext} is a plain, serializable blob that the log parser reads,
* mutates and writes back for every log line. It supersedes the old
* games.roundprogress document: all in-progress state (round assembly, the
* pending stopwatch side-swap, restart detection, the running score) lives
* inside `context`. `at` is refreshed on every write and drives a TTL index that
* sweeps the document a day after the game's log traffic stops.
*/
export interface GameLogParseStateModel {
gameNumber: GameNumber
context: GameContext
at: Date
}
26 changes: 0 additions & 26 deletions src/database/models/game-round-progress.model.ts

This file was deleted.

18 changes: 0 additions & 18 deletions src/events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,14 +83,6 @@ export interface Events {
'match:started': {
gameNumber: GameNumber
}
'match:roundWon': {
gameNumber: GameNumber
winner: Tf2Team
}
'match:roundLength': {
gameNumber: GameNumber
lengthMs: number
}
'match:ended': {
gameNumber: GameNumber
}
Expand All @@ -113,11 +105,6 @@ export interface Events {
steamId: SteamId64
message: string
}
'match/score:reported': {
gameNumber: GameNumber
teamName: Tf2Team
score: number
}
'match/score:final': {
gameNumber: GameNumber
team: Tf2Team
Expand All @@ -128,11 +115,6 @@ export interface Events {
'match/score:reset': {
gameNumber: GameNumber
}
'match/controlPoint:captured': {
gameNumber: GameNumber
team: Tf2Team
controlPoint: number
}
'match/logs:uploaded': {
gameNumber: GameNumber
logsUrl: string
Expand Down
141 changes: 0 additions & 141 deletions src/games/plugins/match-event-listener.test.ts

This file was deleted.

Loading
Loading