Add protocol_version and supported package types to ContentDB urls
authorrubenwardy <rw@rubenwardy.com>
Sat, 28 Jul 2018 23:26:03 +0000 (00:26 +0100)
committerGitHub <noreply@github.com>
Sat, 28 Jul 2018 23:26:03 +0000 (00:26 +0100)
src/content/packages.cpp
src/content/packages.h
src/network/networkprotocol.h
src/script/lua_api/l_mainmenu.cpp

index dd7574d48618fa6077d684cc134954b93fc1ed21..2d488eb764b76b861a1a6d5b355ad846fdfe2c7d 100644 (file)
@@ -25,6 +25,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "content/mods.h"
 #include "content/subgames.h"
 
+std::string Package::getDownloadURL(const std::string &baseURL) const
+{
+       return baseURL + "/packages/" + author + "/" + name + "/releases/" +
+              std::to_string(release) + "/download/";
+}
+
 #if USE_CURL
 std::vector<Package> getPackagesFromURL(const std::string &url)
 {
@@ -60,5 +66,4 @@ std::vector<Package> getPackagesFromURL(const std::string &url)
 
        return packages;
 }
-
 #endif
index fc60d57034d7603d1951fdc9224e896a969f2084..9029475efc13039de5bc03f1d6ea8932750b54b7 100644 (file)
@@ -39,10 +39,7 @@ struct Package
                                type.empty() || release <= 0);
        }
 
-       std::string getDownloadURL(const std::string &baseURL) const
-       {
-               return baseURL + "/packages/" + author + "/" + name + "/download/";
-       }
+       std::string getDownloadURL(const std::string &baseURL) const;
 };
 
 #if USE_CURL
index 3d682a0ad11600751c2b31b5daa7441370b8bf60..113b11177252a0025fbb388c6a2248be6ff713a7 100644 (file)
@@ -191,6 +191,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #define LATEST_PROTOCOL_VERSION 36
+#define LATEST_PROTOCOL_VERSION_STRING TOSTRING(LATEST_PROTOCOL_VERSION)
 
 // Server's supported network protocol range
 #define SERVER_PROTOCOL_VERSION_MIN 36
index 03b8fe22307eb16abef02630823675ab8b22d3fa..c2f0f6e3aae9c13ecdaee3d9617e9b66e07e7467 100644 (file)
@@ -39,6 +39,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <IFileArchive.h>
 #include <IFileSystem.h>
 #include "client/renderingengine.h"
+#include "network/networkprotocol.h"
 
 
 /******************************************************************************/
@@ -993,7 +994,9 @@ int ModApiMainMenu::l_get_screen_info(lua_State *L)
 int ModApiMainMenu::l_get_package_list(lua_State *L)
 {
        std::string url = g_settings->get("contentdb_url");
-       std::vector<Package> packages = getPackagesFromURL(url + "/api/packages/");
+       std::vector<Package> packages = getPackagesFromURL(url +
+                       "/api/packages/?type=mod&type=game&type=txp&protocol_version="
+                       LATEST_PROTOCOL_VERSION_STRING);
 
        // Make table
        lua_newtable(L);