@@ -472,55 +472,46 @@ async function syncFromPolaris(guild: string) {
472472 return [ new Error ( "No users found" ) , false ] ;
473473 }
474474
475- console . log ( users . length )
476-
477- const insertQuery = `
478- INSERT INTO users
479- (id, guild_id, xp, pfp, name, nickname, level, xp_needed_next_level, progress_next_level)
480- VALUES
481- ` ;
482-
483- const insertValues : string [ ] = [ ] ;
484-
485- // eslint-disable-next-line @typescript-eslint/no-unused-vars
486- for ( const _user of users ) {
487- insertValues . push ( `(?, ?, ?, ?, ?, ?, ?, ?, ?)` ) ;
475+ try {
476+ for ( const user of users ) {
477+ const xpValue = user . xp ;
478+ const level = Math . floor ( Math . sqrt ( xpValue / 100 ) ) ;
479+ const nextLevel = level + 1 ;
480+ const nextLevelXp = Math . pow ( nextLevel , 2 ) * 100 ;
481+ const xpNeededForNextLevel = nextLevelXp - xpValue ;
482+ const currentLevelXp = Math . pow ( level , 2 ) * 100 ;
483+ const progressToNextLevel =
484+ ( ( xpValue - currentLevelXp ) / ( nextLevelXp - currentLevelXp ) ) * 100 ;
485+
486+ await new Promise ( ( resolve , reject ) => {
487+ pool . query (
488+ `INSERT INTO users (id, guild_id, xp, pfp, name, nickname, level, xp_needed_next_level, progress_next_level) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)` ,
489+ [
490+ user . id ,
491+ guild ,
492+ xpValue ,
493+ user . avatar ,
494+ user . username ,
495+ user . nickname ?? user . displayName ,
496+ level ,
497+ xpNeededForNextLevel ,
498+ progressToNextLevel . toFixed ( 2 ) ,
499+ ] ,
500+ ( err ) => {
501+ if ( err ) {
502+ console . error ( "Error syncing from Polaris:" , err ) ;
503+ reject ( err ) ;
504+ } else {
505+ resolve ( null ) ;
506+ }
507+ } ,
508+ ) ;
509+ } ) ;
510+ }
511+ return [ null , true ]
512+ } catch ( err ) {
513+ return [ err , false ] ;
488514 }
489515
490- console . log ( insertValues . length )
491-
492- const formattedUsers = users . map ( ( user : { id : string , xp : number , avatar : string , username : string , nickname : string , displayName : string } ) => {
493- const xpValue = user . xp ;
494- const level = Math . floor ( Math . sqrt ( xpValue / 100 ) ) ;
495- const nextLevel = level + 1 ;
496- const nextLevelXp = Math . pow ( nextLevel , 2 ) * 100 ;
497- const xpNeededForNextLevel = nextLevelXp - xpValue ;
498- const currentLevelXp = Math . pow ( level , 2 ) * 100 ;
499- const progressToNextLevel =
500- ( ( xpValue - currentLevelXp ) / ( nextLevelXp - currentLevelXp ) ) * 100 ;
501- return [
502- user . id ,
503- guild ,
504- xpValue ,
505- user . avatar ,
506- user . username ,
507- user . nickname ?? user . displayName ,
508- level ,
509- xpNeededForNextLevel ,
510- progressToNextLevel . toFixed ( 2 ) ,
511- ] ;
512- } )
513-
514- return new Promise ( ( resolve , reject ) => {
515- pool . query ( insertQuery + "\n" + insertValues . join ( "," ) , formattedUsers , ( err ) =>
516- {
517- if ( err ) {
518- console . error ( "Error syncing from Polaris:" , err ) ;
519- reject ( [ err , false ] ) ;
520- } else {
521- resolve ( [ null , true ] ) ;
522- }
523- } ) ;
524- } ) ;
525516}
526517//#endregion
0 commit comments