@@ -168,6 +168,7 @@ export const handler: Handler = async (event: any, context?: any) => {
168168 const metaRecs = new Map < string , APGameRecord [ ] > ( ) ;
169169 const userRecs = new Map < string , APGameRecord [ ] > ( ) ;
170170 const eventRecs = new Map < string , APGameRecord [ ] > ( ) ;
171+ const ttm = new Map < string , number [ ] > ( ) ;
171172 for ( const gdata of justGames ) {
172173 const g = GameFactory ( gdata . metaGame , gdata . state ) ;
173174 if ( g === undefined ) {
@@ -222,6 +223,14 @@ export const handler: Handler = async (event: any, context?: any) => {
222223 pushToMap ( eventRecs , id , rec ) ;
223224 }
224225 }
226+ // calculate response rates
227+ const times : number [ ] = [ ] ;
228+ for ( let i = 0 ; i < g . stack . length - 1 ; i ++ ) {
229+ const t1 = new Date ( g . stack [ i ] . _timestamp ) . getTime ( ) ;
230+ const t2 = new Date ( g . stack [ i + 1 ] . _timestamp ) . getTime ( ) ;
231+ times . push ( t2 - t1 ) ;
232+ }
233+ times . forEach ( ( t , i ) => pushToMap ( ttm , gdata . players [ i % g . numplayers ] . id , t ) ) ;
225234 }
226235 console . log ( `allRecs: ${ allRecs . length } , metaRecs: ${ [ ...metaRecs . keys ( ) ] . length } , userRecs: ${ [ ...userRecs . keys ( ) ] . length } , eventRecs: ${ [ ...eventRecs . keys ( ) ] . length } ` ) ;
227236
@@ -263,6 +272,19 @@ export const handler: Handler = async (event: any, context?: any) => {
263272 }
264273 }
265274 console . log ( "Player recs done" ) ;
275+ // response times
276+ for ( const [ player , lst ] of ttm . entries ( ) ) {
277+ cmd = new PutObjectCommand ( {
278+ Bucket : REC_BUCKET ,
279+ Key : `ttm/${ player } .json` ,
280+ Body : JSON . stringify ( lst ) ,
281+ } ) ;
282+ response = await s3 . send ( cmd ) ;
283+ if ( response [ "$metadata" ] . httpStatusCode !== 200 ) {
284+ console . log ( response ) ;
285+ }
286+ }
287+ console . log ( "Response times done" ) ;
266288 // events
267289 for ( const [ eventid , recs ] of eventRecs . entries ( ) ) {
268290 cmd = new PutObjectCommand ( {
0 commit comments