@@ -54,27 +54,33 @@ async function getFileIcons(
5454 sendResponse ( res )
5555}
5656
57- const cache = new Map < string , LbaoPredictorType > ( )
57+ const cache = new Map < string , Map < string , LbaoPredictorType > > ( )
5858async function getPredictionHandle (
5959 message : GetPredictionMessage ,
6060 sender : chrome . runtime . MessageSender ,
6161 sendResponse : ( response ?: any ) => void
6262) {
6363 const { contestSlug, users } = message
64-
64+ let userCache = cache . get ( contestSlug ) !
65+ if ( ! userCache ) {
66+ userCache = new Map ( )
67+ cache . set ( contestSlug , userCache )
68+ }
6569 try {
6670 const tmp = users
67- . filter ( a => ! cache . has ( gkey ( a . region , a . username ) ) )
71+ . filter ( a => ! userCache . has ( gkey ( a . region , a . username ) ) )
6872 . map ( a => ( { data_region : a . region , username : a . username } ) )
6973 if ( tmp . length ) {
7074 const data = await predictorApi ( contestSlug , tmp )
7175 for ( const item of data ) {
7276 const key = gkey ( item . data_region , item . username )
73- cache . set ( key , item )
77+ userCache . set ( key , item )
7478 }
7579 }
7680
77- sendResponse ( users . map ( user => cache . get ( gkey ( user . region , user . username ) ) ) )
81+ sendResponse (
82+ users . map ( user => userCache . get ( gkey ( user . region , user . username ) ) )
83+ )
7884 } catch ( error ) {
7985 // TODO
8086 }
0 commit comments