Skip to content

Commit

Permalink
Rename xml uploaded servers node, add noterows to score uploads
Browse files Browse the repository at this point in the history
  • Loading branch information
nico-abram committed Nov 29, 2018
1 parent d0af8d6 commit da6e59a
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 10 deletions.
36 changes: 29 additions & 7 deletions src/DownloadManager.cpp
Expand Up @@ -966,6 +966,7 @@ DownloadManager::UploadScoreWithReplayData(HighScore* hs)
vector<float> offsets = hs->GetOffsetVector();
vector<int> columns = hs->GetTrackVector();
vector<TapNoteType> types = hs->GetTapNoteTypeVector();
vector<int> rows = hs->GetNoteRowVector();
if (offsets.size() > 0) {
replayString = "[";
vector<float>& timestamps = hs->timeStamps;
Expand All @@ -974,7 +975,8 @@ DownloadManager::UploadScoreWithReplayData(HighScore* hs)
replayString += to_string(timestamps[i]) + ",";
replayString += to_string(1000.f * offsets[i]) + ",";
replayString += to_string(columns[i]) + ",";
replayString += to_string(types[i]);
replayString += to_string(types[i]) + ",";
replayString += to_string(rows[i]);
replayString += "],";
}
replayString =
Expand Down Expand Up @@ -1035,7 +1037,8 @@ DownloadManager::UploadScoreWithReplayData(HighScore* hs)
return;
}
void // not tested exhaustively -mina
DownloadManager::UploadScoreWithReplayDataFromDisk(string sk)
DownloadManager::UploadScoreWithReplayDataFromDisk(string sk,
function<void()> callback)
{
if (!LoggedIn())
return;
Expand All @@ -1054,6 +1057,7 @@ DownloadManager::UploadScoreWithReplayDataFromDisk(string sk)
vector<float> offsets = hs->GetOffsetVector();
vector<int> columns = hs->GetTrackVector();
vector<TapNoteType> types = hs->GetTapNoteTypeVector();
auto& rows = hs->GetNoteRowVector();

if (offsets.size() > 0) {
replayString = "[";
Expand All @@ -1067,7 +1071,8 @@ DownloadManager::UploadScoreWithReplayDataFromDisk(string sk)
replayString += to_string(1000.f * offsets[i]);
if (hs->GetReplayType() == 2) {
replayString += "," + to_string(columns[i]) + ",";
replayString += to_string(types[i]);
replayString += to_string(types[i]) + ",";
replayString += to_string(rows[i]);
}
replayString += "],";
}
Expand All @@ -1081,7 +1086,7 @@ DownloadManager::UploadScoreWithReplayDataFromDisk(string sk)
curlHandle, form, lastPtr, "replay_data", replayString);
SetCURLPostToURL(curlHandle, url);
curl_easy_setopt(curlHandle, CURLOPT_HTTPPOST, form);
auto done = [this, hs](HTTPRequest& req, CURLMsg*) {
auto done = [this, hs, callback](HTTPRequest& req, CURLMsg*) {
long response_code;
curl_easy_getinfo(req.handle, CURLINFO_RESPONSE_CODE, &response_code);
json j;
Expand Down Expand Up @@ -1123,6 +1128,7 @@ DownloadManager::UploadScoreWithReplayDataFromDisk(string sk)
}
} catch (exception e) {
}
callback();
};
HTTPRequest* req = new HTTPRequest(curlHandle, done);
SetCURLResultsString(curlHandle, &(req->result));
Expand Down Expand Up @@ -1865,14 +1871,30 @@ DownloadManager::UploadScores()
if (!LoggedIn())
return false;
auto scores = SCOREMAN->GetAllPBPtrs();
deque<HighScore*> toUpload;
for (auto& vec : scores) {
for (auto& scorePtr : vec) {
if (!scorePtr->IsUploadedToServer(serverURL.Get())) {
UploadScore(scorePtr);
scorePtr->AddUploadedServer(serverURL.Get());
auto ts = scorePtr->GetTopScore();
if ((ts == 1 || ts == 2) &&
!scorePtr->IsUploadedToServer(serverURL.Get())) {
toUpload.emplace_back(scorePtr);
}
}
}
function<void()> lambda;
lambda = [toUpload, lambda]() mutable {
auto& it = toUpload.begin();
if (it != toUpload.end()) {
toUpload.pop_front();
auto& hs = (*it);
DLMAN->UploadScoreWithReplayDataFromDisk(
hs->GetChartKey(), [hs, toUpload, lambda]() {
hs->AddUploadedServer(serverURL.Get());
lambda();
});
}
};
lambda();
return true;
}

Expand Down
4 changes: 3 additions & 1 deletion src/DownloadManager.h
Expand Up @@ -246,7 +246,9 @@ class DownloadManager
bool EncodeSpaces(string& str);

void UploadScoreWithReplayData(HighScore* hs);
void UploadScoreWithReplayDataFromDisk(string sk);
void UploadScoreWithReplayDataFromDisk(
string sk,
function<void()> callback = function<void()>());
void UploadScore(HighScore* hs);

bool ShouldUploadScores();
Expand Down
4 changes: 2 additions & 2 deletions src/HighScore.cpp
Expand Up @@ -320,7 +320,7 @@ HighScoreImpl::CreateNode() const
pNode->AppendChild("NoChordCohesion", bNoChordCohesion);
pNode->AppendChild("EtternaValid", bEtternaValid);
if (!uploaded.empty()) {
XNode* pServerNode = pNode->AppendChild("Servers");
XNode* pServerNode = pNode->AppendChild("Servs");
for (auto server : uploaded)
pServerNode->AppendChild("server", server);
}
Expand Down Expand Up @@ -395,7 +395,7 @@ HighScoreImpl::CreateEttNode() const
pNode->AppendChild("DateTime", dateTime.GetString());
pNode->AppendChild("TopScore", TopScore);
if (!uploaded.empty()) {
XNode* pServerNode = pNode->AppendChild("Servers");
XNode* pServerNode = pNode->AppendChild("Servs");
for (auto server : uploaded)
pServerNode->AppendChild("server", server);
}
Expand Down

0 comments on commit da6e59a

Please sign in to comment.