Module:Iteminfo/datacache

From Terraria Wiki
Jump to navigation Jump to search

No documentation subpage exists yet for this module. Create one now.


-- Manage database cache for Module:Iteminfo and Module:ItemNames.

local cache = mw.ext.LuaCache

return {
	-- for Module:Iteminfo/loaddata.
	-- load main iteminfo datbase.
	load = function()
		local status, result = pcall(function ()
			return mw.text.jsonDecode(cache.get(':_iteminfo:data'))
		end)
		if status and result then
			return result
		end
		-- fallback
		local info = require('Module:Iteminfo/data').data
		-- cache it. 
		cache.set( ':_iteminfo:data', info)
		return mw.text.jsonDecode(info)
	end,
	
	-- db for {{itemNameFromId}} {{itemIdFromName}} {{itemInternalNameFromId}} {{itemIdFromInternalName}}
	loadNameDB = function()
		local status, result = pcall(function ()
			return mw.text.jsonDecode(cache.get(':_iteminfo:data:nameDB'))
		end)
		if status and result then
			return result
		end
		-- fallback
		local info = require('Module:Iteminfo/data').nameDB
		-- cache it.
		cache.set( ':_iteminfo:data:nameDB', info)
		return mw.text.jsonDecode(info)
	end,
	
	-- purge cache.
	purge = function()
		cache.delete(':_iteminfo:data')
		cache.delete(':_iteminfo:data:nameDB')
	end,
	
}