Skip to content

Commit e2c41ae

Browse files
committed
update(main): Rewritten requests for MoreLeaderboards
1 parent 7844f26 commit e2c41ae

File tree

2 files changed

+28
-33
lines changed

2 files changed

+28
-33
lines changed

src/MoreLeaderboards/MoreLeaderboards.cpp

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ static int start_count = 0;
1414
static int end_count = 0;
1515
static int total_count = 0;
1616
std::string MoreLeaderboards::data_response_moreLB = "";
17-
static std::unordered_map<std::string, web::WebTask> RUNNING_REQUESTS {};
18-
static std::mutex lock_var;
1917

2018
EventListener<web::WebTask> m_listener;
2119

@@ -429,24 +427,17 @@ void MoreLeaderboards::startLoadingMods() {
429427
fadeLoadingCircle();
430428
};
431429

432-
const std::lock_guard<std::mutex> lock(lock_var);
433430
geode::utils::web::WebRequest request = web::WebRequest();
434-
RUNNING_REQUESTS.emplace(
435-
"@loaderModListCheck",
436-
request.get("https://clarifygdps.com/gdutils/modslist.php").map(
437-
[expect = std::move(expect), then = std::move(then)](web::WebResponse* response) {
438-
const std::lock_guard<std::mutex> lock(lock_var);
439-
if (response->ok()) {
440-
then(response->string().unwrapOrDefault());
441-
} else {
442-
expect("An error occured while sending a request on our server. Please try again later.");
443-
}
444-
445-
RUNNING_REQUESTS.erase("@loaderModListCheck");
446-
return *response;
431+
m_listener.bind([expect = std::move(expect), then = std::move(then)](web::WebTask::Event* e) {
432+
if (web::WebResponse* res = e->getValue()) {
433+
if (res->ok()) {
434+
then(res->string().unwrapOrDefault());
435+
} else {
436+
expect("An error occured while sending a request on our server. Please try again later.");
447437
}
448-
)
449-
);
438+
}
439+
});
440+
m_listener.setFilter(request.get("https://clarifygdps.com/gdutils/modslist.php"));
450441
};
451442

452443
void MoreLeaderboards::loadPageMods() {
@@ -580,7 +571,6 @@ void MoreLeaderboards::startLoadingMore() {
580571
const std::function<void(std::string const&)> then = [this](std::string const& data) {
581572
loading = false;
582573

583-
const std::lock_guard<std::mutex> lock(lock_var);
584574
auto scene = CCDirector::sharedDirector()->getRunningScene();
585575
auto layer = scene->getChildren()->objectAtIndex(0);
586576
if (layer == nullptr) return this->release();
@@ -625,21 +615,24 @@ void MoreLeaderboards::startLoadingMore() {
625615
this->release();
626616
};
627617

628-
const std::lock_guard<std::mutex> lock(lock_var);
629-
RUNNING_REQUESTS.emplace(
630-
"@loaderMoreLeaderboardCheck",
631-
request.param("type", type).param("page", page).param("country", country_id).param("username", username).param("mod", (modFilter ? "1" : "0")).param("modFilter", modFilterType).get("https://clarifygdps.com/gdutils/moreleaderboards.php").map(
632-
[expect = std::move(expect), then = std::move(then)](web::WebResponse* response) {
633-
if (response->ok()) {
634-
then(response->string().unwrap());
635-
} else {
636-
expect("An error occured while sending a request on our server. Please try again later.");
637-
}
638-
639-
RUNNING_REQUESTS.erase("@loaderMoreLeaderboardCheck");
640-
return *response;
618+
m_listener.bind([expect = std::move(expect), then = std::move(then)](web::WebTask::Event* e) {
619+
if (web::WebResponse* response = e->getValue()) {
620+
if (response->ok()) {
621+
then(response->string().unwrap());
622+
} else {
623+
expect("An error occurred while sending a request on our server. Please try again later.");
641624
}
642-
)
625+
}
626+
});
627+
628+
m_listener.setFilter(
629+
request.param("type", type)
630+
.param("page", page)
631+
.param("country", country_id)
632+
.param("username", username)
633+
.param("mod", (modFilter ? "1" : "0"))
634+
.param("modFilter", modFilterType)
635+
.get("https://clarifygdps.com/gdutils/moreleaderboards.php")
643636
);
644637
};
645638

src/MoreLeaderboards/MoreLeaderboards.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ class MoreLeaderboards : public CCLayer {
8888
static int modFilterType;
8989
bool loading = false;
9090

91+
EventListener<web::WebTask> m_listener;
92+
9193
void onMoreLeaderboards(CCObject*);
9294
void onModsList(CCObject*);
9395
void onRegion(CCObject*);

0 commit comments

Comments
 (0)