]> git.lizzy.rs Git - minetest.git/blobdiff - src/convert_json.cpp
Translated using Weblate (French)
[minetest.git] / src / convert_json.cpp
index 1343903b4b2ace8cc2e1851779c4a3117b0a185f..686113fa878114f835a20276e8b05c4d232504cf 100644 (file)
@@ -17,50 +17,23 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
-#include <vector>
 #include <iostream>
 #include <sstream>
+#include <memory>
 
 #include "convert_json.h"
-#include "mods.h"
-#include "config.h"
-#include "log.h"
-#include "settings.h"
-#include "httpfetch.h"
-#include "porting.h"
 
-Json::Value fetchJsonValue(const std::string &url,
-               std::vector<std::string> *extra_headers)
+void fastWriteJson(const Json::Value &value, std::ostream &to)
 {
-       HTTPFetchRequest fetch_request;
-       HTTPFetchResult fetch_result;
-       fetch_request.url = url;
-       fetch_request.caller = HTTPFETCH_SYNC;
-
-       if (extra_headers != NULL)
-               fetch_request.extra_headers = *extra_headers;
-
-       httpfetch_sync(fetch_request, fetch_result);
-
-       if (!fetch_result.succeeded) {
-               return Json::Value();
-       }
-       Json::Value root;
-       Json::Reader reader;
-       std::istringstream stream(fetch_result.data);
-
-       if (!reader.parse(stream, root)) {
-               errorstream << "URL: " << url << std::endl;
-               errorstream << "Failed to parse json data " << reader.getFormattedErrorMessages();
-               if (fetch_result.data.size() > 100) {
-                       errorstream << "Data (" << fetch_result.data.size()
-                               << " bytes) printed to warningstream." << std::endl;
-                       warningstream << "data: \"" << fetch_result.data << "\"" << std::endl;
-               } else {
-                       errorstream << "data: \"" << fetch_result.data << "\"" << std::endl;
-               }
-               return Json::Value();
-       }
+       Json::StreamWriterBuilder builder;
+       builder["indentation"] = "";
+       std::unique_ptr<Json::StreamWriter> writer(builder.newStreamWriter());
+       writer->write(value, &to);
+}
 
-       return root;
+std::string fastWriteJson(const Json::Value &value)
+{
+       std::ostringstream oss;
+       fastWriteJson(value, oss);
+       return oss.str();
 }