void ResultQueue::UploadQueue() { if( !mQueue.isEmpty() ) { LOG( "Uploading an old result..." ); QJsonObject result = mQueue.takeAt( 0 ).toObject(); UploadResult( result ); } }
void Core::HandleMatchEnd( const ::CardHistoryList& cardHistoryList, bool wasSpectating ) { if( wasSpectating ) { LOG( "Ignore spectated match" ); ResetResult(); return; } DEBUG( "HandleMatchEnd" ); mCardHistoryList = cardHistoryList; mDuration = mDurationTimer.elapsed() / 1000; UploadResult(); }
void ResultTracker::HandleMatchEnd( const ::CardHistoryList& cardHistoryList ) { if( mSpectating ) { LOG( "Ignore spectated match" ); ResetResult(); return; } DBG( "HandleMatchEnd" ); mResult.cardList = cardHistoryList; mResult.duration = mDurationTimer.elapsed() / 1000; mResult.mode = mCurrentGameMode; UploadResult(); }
void Core::HandleMatchEnd( const ::CardHistoryList& cardHistoryList ) { DEBUG( "HandleMatchEnd" ); mCardHistoryList = cardHistoryList; mDuration = mDurationTimer.elapsed() / 1000; UploadResult(); }
void ResultQueue::Add( const Result& res ) { if( res.mode == MODE_SOLO_ADVENTURES ) { LOG( "Ignore solo adventure" ); return; } if( res.mode == MODE_TAVERN_BRAWL ) { LOG( "Ignore tavern brawl" ); return; } if( res.outcome == OUTCOME_UNKNOWN ) { LOG( "Outcome unknown. Skip result" ); METADATA( "PREVIOUS_RESULT_INVALID", "OUTCOME" ); return; } if( res.mode == MODE_UNKNOWN ) { LOG( "Mode unknown. Skip result" ); METADATA( "PREVIOUS_RESULT_INVALID", "MODE" ); return; } if( res.order == ORDER_UNKNOWN ) { LOG( "Order unknown. Skip result" ); METADATA( "PREVIOUS_RESULT_INVALID", "ORDER" ); return; } if( res.hero == CLASS_UNKNOWN ) { LOG( "Own Class unknown. Skip result" ); METADATA( "PREVIOUS_RESULT_INVALID", "OWN_CLASS" ); return; } if( res.opponent == CLASS_UNKNOWN ) { LOG( "Class of Opponent unknown. Skip result" ); METADATA( "PREVIOUS_RESULT_INVALID", "OPPONENT_CLASS" ); return; } // Clear some metadata if mode not ranked for( auto it : Metadata::Instance()->Map().toStdMap() ) { const QString& key = it.first; // Skip rank classification metadata for nonranked games if( key.startsWith( "RANK_CLASSIFIER" ) && res.mode != MODE_RANKED ) { Metadata::Instance()->Remove( key ); } } LOG( "Result: %s %s vs. %s as %s. Went %s", MODE_NAMES[ res.mode ], OUTCOME_NAMES[ res.outcome ], CLASS_NAMES[ res.opponent ], CLASS_NAMES[ res.hero ], ORDER_NAMES[ res.order ] ); // Try to upload immediately UploadResult( res.AsJson() ); }