Module:Tr/loaddata

De Wiki Calamity Mod Oficial
Ir a la navegación Ir a la búsqueda
Lua.svg Documentación La documentación a continuación se incluye desde Module:Tr/loaddata/doc. (editar | historial)
Cog (Calamity).png
Se utiliza para estructurar de datos en las páginas.

Si necesitar purgar los datos almacenados en caché de {{Tr}}, purga Module:Tr/loaddata o invoca {{#invoke:Tr|purge|lang=es}}.


-- Nota:
-- Parece que los objetos/listas almacenados a través de luacache tienen un límite en el número de entidades, que es de aproximadamente 8k.
-- Cualquier objeto/lista que tenga más de 8k entidades o que tenga un sub-objeto/sub-lista tan grande será acortado.
-- Por lo tanto, codificamos los datos en una cadena para evitar este problema.

local cache = mw.ext.LuaCache

return {
	
	load = function(lang)
		local status, result = pcall(function ()
			return mw.text.jsonDecode(cache.get('tr__database-'..lang))
		end)
		if status then
			return result
		else
			-- fallback
			local info = require('Module:Tr/db-'..lang) -- El return table de mw.loadData() tiene una 'metatable', no se puede usar para `cache.set` y `mw.loadData`."
			
			-- guardarlo en caché. 
			-- Esta caché puede ser purgada por:
			-- * purgar la página Module:tr/db-<idioma> o Module:tr/db-<idioma>/doc
			-- * código lua: require('Module:Tr/loaddata').purge(<idioma>)
			-- * código de plantilla: {{#invoke:tr|purge|lang=<idioma>}}
			cache.set( 'tr__database-'..lang, mw.text.jsonEncode(info))
			return info
		end
	end,
	
	purge = function(lang)
		cache.delete( 'tr__database-'..lang)
	end
}