From 140fb9dcc08c84cfd26f548c201d32d91438d0bf Mon Sep 17 00:00:00 2001 From: JAJames Date: Tue, 2 Feb 2016 00:37:58 -0500 Subject: [PATCH] All query parameters except for "database" are now added as hidden inputs to the database selector. Added 'gameoverStop' to RenX::Server (forgot to add file in previous commit) --- Release/Plugins/RenX.Core.lib | Bin 191246 -> 191246 bytes RenX.Core/RenX_Server.cpp | 9 +++++ RenX.Ladder.Web/RenX_Ladder_Web.cpp | 55 +++++++++++++++++----------- RenX.Ladder.Web/RenX_Ladder_Web.h | 7 ++-- 4 files changed, 47 insertions(+), 24 deletions(-) diff --git a/Release/Plugins/RenX.Core.lib b/Release/Plugins/RenX.Core.lib index f3c236d288596df2c29e59aba60ec1730720e6d9..4361eb6862904d34c8ccdbee9237352479823bda 100644 GIT binary patch delta 12099 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 == false) + return false; + + this->gameover_pending = false; + return true; +} + void RenX::Server::gameoverWhenEmpty() { if (this->players.size() != this->bot_count) diff --git a/RenX.Ladder.Web/RenX_Ladder_Web.cpp b/RenX.Ladder.Web/RenX_Ladder_Web.cpp index 60cd309..f8a5aa7 100644 --- a/RenX.Ladder.Web/RenX_Ladder_Web.cpp +++ b/RenX.Ladder.Web/RenX_Ladder_Web.cpp @@ -168,7 +168,7 @@ Jupiter::String generate_search(RenX::LadderDatabase *db) } /** Database selector */ -Jupiter::String generate_database_selector(RenX::LadderDatabase *db) +Jupiter::String generate_database_selector(RenX::LadderDatabase *db, const Jupiter::INIFile::Section &query_params) { RenX::LadderDatabase *db_ptr; Jupiter::String result(256); @@ -198,6 +198,19 @@ Jupiter::String generate_database_selector(RenX::LadderDatabase *db) result += ""_jrs; } } + + Jupiter::INIFile::Section::KeyValuePair *pair; + for (size_t index = 0; index != query_params.size(); ++index) + { + pair = query_params.getPair(index); + if (pair->getKey().equalsi("database") == false) + { + result += R"database-search(getValue(); + result += R"database-search("/>)database-search"_jrs; + } + } + result += R"database-select()database-select"_jrs; return result; } @@ -244,22 +257,22 @@ Jupiter::String RenX_Ladder_WebPlugin::generate_entry_table(RenX::LadderDatabase return result; } -Jupiter::String *RenX_Ladder_WebPlugin::generate_ladder_page(RenX::LadderDatabase *db, size_t index, size_t count) +Jupiter::String *RenX_Ladder_WebPlugin::generate_ladder_page(RenX::LadderDatabase *db, size_t index, size_t count, const Jupiter::INIFile::Section &query_params) { Jupiter::String *result = new Jupiter::String(RenX_Ladder_WebPlugin::header); result->concat(generate_search(db)); - result->concat(generate_database_selector(db)); + result->concat(generate_database_selector(db, query_params)); result->concat(this->generate_entry_table(db, index, count)); result->concat(RenX_Ladder_WebPlugin::footer); return result; } /** Search page */ -Jupiter::String *RenX_Ladder_WebPlugin::generate_search_page(RenX::LadderDatabase *db, const Jupiter::ReadableString &name) +Jupiter::String *RenX_Ladder_WebPlugin::generate_search_page(RenX::LadderDatabase *db, const Jupiter::ReadableString &name, const Jupiter::INIFile::Section &query_params) { Jupiter::String *result = new Jupiter::String(RenX_Ladder_WebPlugin::header); result->concat(generate_search(db)); - result->concat(generate_database_selector(db)); + result->concat(generate_database_selector(db, query_params)); if (db->getEntries() == 0) // No ladder data { @@ -290,11 +303,11 @@ Jupiter::String *RenX_Ladder_WebPlugin::generate_search_page(RenX::LadderDatabas } /** Profile page */ -Jupiter::String *RenX_Ladder_WebPlugin::generate_profile_page(RenX::LadderDatabase *db, uint64_t steam_id) +Jupiter::String *RenX_Ladder_WebPlugin::generate_profile_page(RenX::LadderDatabase *db, uint64_t steam_id, const Jupiter::INIFile::Section &query_params) { Jupiter::String *result = new Jupiter::String(RenX_Ladder_WebPlugin::header); result->concat(generate_search(db)); - result->concat(generate_database_selector(db)); + result->concat(generate_database_selector(db, query_params)); if (db->getEntries() == 0) // No ladder data { @@ -329,13 +342,13 @@ RenX_Ladder_WebPlugin pluginInstance; /** Content functions */ -Jupiter::ReadableString *generate_no_db_page() +Jupiter::ReadableString *generate_no_db_page(const Jupiter::INIFile::Section &query_params) { Jupiter::String *result = new Jupiter::String(pluginInstance.header); if (RenX::ladder_databases.size() != 0) { result->concat(generate_search(nullptr)); - result->concat(generate_database_selector(nullptr)); + result->concat(generate_database_selector(nullptr, query_params)); result->concat("Error: No such database exists"_jrs); } else @@ -346,12 +359,12 @@ Jupiter::ReadableString *generate_no_db_page() Jupiter::ReadableString *handle_ladder_page(const Jupiter::ReadableString &query_string) { + Jupiter::HTTP::HTMLFormResponse html_form_response(query_string); RenX::LadderDatabase *db = RenX::default_ladder_database; size_t start_index = 0, count = 50; - if (query_string.isNotEmpty()) + if (html_form_response.table.size() != 0) { - Jupiter::HTTP::HTMLFormResponse html_form_response(query_string); start_index = static_cast(html_form_response.table.getInt("start"_jrs, 0)); count = static_cast(html_form_response.table.getInt("count"_jrs, 50)); @@ -369,19 +382,19 @@ Jupiter::ReadableString *handle_ladder_page(const Jupiter::ReadableString &query } if (db == nullptr) - return generate_no_db_page(); + return generate_no_db_page(html_form_response.table); - return pluginInstance.generate_ladder_page(db, start_index, count); + return pluginInstance.generate_ladder_page(db, start_index, count, html_form_response.table); } Jupiter::ReadableString *handle_search_page(const Jupiter::ReadableString &query_string) { + Jupiter::HTTP::HTMLFormResponse html_form_response(query_string); RenX::LadderDatabase *db = RenX::default_ladder_database; Jupiter::ReferenceString name; - if (query_string.isNotEmpty()) + if (html_form_response.table.size() != 0) { - Jupiter::HTTP::HTMLFormResponse html_form_response(query_string); name = html_form_response.table.get("name"_jrs); const Jupiter::ReadableString &db_name = html_form_response.table.get("database"_jrs); @@ -398,22 +411,22 @@ Jupiter::ReadableString *handle_search_page(const Jupiter::ReadableString &query } if (db == nullptr) - return generate_no_db_page(); + return generate_no_db_page(html_form_response.table); if (name.isEmpty()) // Generate ladder page when no name specified return handle_ladder_page(query_string); - return pluginInstance.generate_search_page(db, name); + return pluginInstance.generate_search_page(db, name, html_form_response.table); } Jupiter::ReadableString *handle_profile_page(const Jupiter::ReadableString &query_string) { + Jupiter::HTTP::HTMLFormResponse html_form_response(query_string); RenX::LadderDatabase *db = RenX::default_ladder_database; uint64_t steam_id = 0; - if (query_string.isNotEmpty()) + if (html_form_response.table.size() != 0) { - Jupiter::HTTP::HTMLFormResponse html_form_response(query_string); steam_id = html_form_response.table.getLongLong("id"_jrs); const Jupiter::ReadableString &db_name = html_form_response.table.get("database"_jrs); @@ -430,9 +443,9 @@ Jupiter::ReadableString *handle_profile_page(const Jupiter::ReadableString &quer } if (db == nullptr) - return generate_no_db_page(); + return generate_no_db_page(html_form_response.table); - return pluginInstance.generate_profile_page(db, steam_id); + return pluginInstance.generate_profile_page(db, steam_id, html_form_response.table); } extern "C" __declspec(dllexport) Jupiter::Plugin *getPlugin() diff --git a/RenX.Ladder.Web/RenX_Ladder_Web.h b/RenX.Ladder.Web/RenX_Ladder_Web.h index 0715a57..16cb156 100644 --- a/RenX.Ladder.Web/RenX_Ladder_Web.h +++ b/RenX.Ladder.Web/RenX_Ladder_Web.h @@ -22,6 +22,7 @@ #include "Jupiter/Plugin.h" #include "Jupiter/Reference_String.h" #include "Jupiter/CString.h" +#include "Jupiter/INIFile.h" #include "RenX_Plugin.h" class RenX_Ladder_WebPlugin : public RenX::Plugin @@ -32,9 +33,9 @@ protected: public: Jupiter::StringS header; Jupiter::StringS footer; - Jupiter::String *generate_ladder_page(RenX::LadderDatabase *db, size_t start_index, size_t count); - Jupiter::String *generate_search_page(RenX::LadderDatabase *db, const Jupiter::ReadableString &name); - Jupiter::String *generate_profile_page(RenX::LadderDatabase *db, uint64_t steam_id); + Jupiter::String *generate_ladder_page(RenX::LadderDatabase *db, size_t start_index, size_t count, const Jupiter::INIFile::Section &query_params); + Jupiter::String *generate_search_page(RenX::LadderDatabase *db, const Jupiter::ReadableString &name, const Jupiter::INIFile::Section &query_params); + Jupiter::String *generate_profile_page(RenX::LadderDatabase *db, uint64_t steam_id, const Jupiter::INIFile::Section &query_params); RenX_Ladder_WebPlugin(); ~RenX_Ladder_WebPlugin();