diff --git a/api.lua b/api.lua index 41e00c5..7383b69 100644 --- a/api.lua +++ b/api.lua @@ -79,11 +79,16 @@ modEUrn.handler = { } modEUrn.MinPlayedHours = tonumber(minetest.settings:get("eurn.voter.min_played_hours") or 90) -- value in hours +modEUrn.save_compressed = minetest.settings:get_bool("eurn.save_compressed") ~= false modEUrn.doSave = function() local file = io.open(modEUrn.urlTabela, "w") if file then - file:write(minetest.serialize(modEUrn.handler)) + local handler = minetest.serialize(modEUrn.handler) + if modEUrn.save_compressed then + handler = minetest.encode_base64(handler) + end + file:write(handler) file:close() minetest.log('action',"[E-URN] "..modEUrn.translate("Database saved in file '%s'!"):format(modEUrn.urlTabela)) else @@ -94,7 +99,11 @@ end modEUrn.doLoad = function() local file = io.open(modEUrn.urlTabela, "r") if file then - local handler = minetest.deserialize(file:read("*all")) + local handler = file:read("*all") + if modEUrn.save_compressed then + handler = minetest.decode_base64(handler) + end + handler = minetest.deserialize(handler) --transforma string to table file:close() if not handler or type(handler) ~= "table" then minetest.log('error',"[E-URN:ERRO] "..modEUrn.translate("The file '%s' is not in table format!"):format(modEUrn.urlTabela))