Module:User/JsonProbe: Difference between revisions

From Foxopedia
Jump to navigation Jump to search
(Created page with "local p = {} function p.run() if type(mw.ext) == 'table' and type(mw.ext.data) == 'table' and type(mw.ext.data.get) == 'function' then return 'JsonConfig Lua: OK' else return 'JsonConfig Lua: MISSING' end end return p")
 
No edit summary
Line 1: Line 1:
local p = {}
local p = {}

local function hasLuaJson()
return type(mw.ext) == 'table'
and type(mw.ext.data) == 'table'
and type(mw.ext.data.get) == 'function'
end

function p.run()
function p.run()
if hasLuaJson() then
if type(mw.ext) == 'table' and type(mw.ext.data) == 'table' and type(mw.ext.data.get) == 'function' then
return 'JsonConfig Lua: OK'
return 'JsonConfig Lua: OK'
else
else
return 'JsonConfig Lua: MISSING'
return 'JsonConfig Lua: MISSING (no mw.ext.data.get)'
end
end
end

function p.fetch()
if not hasLuaJson() then
return 'JsonConfig Lua: MISSING (no mw.ext.data.get)'
end

-- Try both title forms (spaces vs underscores)
local name1 = 'CS1/Identifier limits.tab'
local name2 = 'CS1/Identifier_limits.tab'

local function tryGet(name)
return pcall(function()
return mw.ext.data.get(name)
end)
end

-- First attempt
local ok, res = tryGet(name1)
if not ok or type(res) ~= 'table' or type(res.data) ~= 'table' then
-- Second attempt
ok, res = tryGet(name2)
end

if not ok then
return 'pcall error: ' .. tostring(res)
end

if type(res) == 'table' and type(res.data) == 'table' then
return 'Commons Data reachable: rows=' .. tostring(#res.data)
else
return 'mw.ext.data.get returned type: ' .. tostring(type(res))
end
end
end

return p
return p

Revision as of 03:18, 12 August 2025

Documentation for this module may be created at Module:User/JsonProbe/doc

local p = {}

local function hasLuaJson()
	return type(mw.ext) == 'table'
		and type(mw.ext.data) == 'table'
		and type(mw.ext.data.get) == 'function'
end

function p.run()
	if hasLuaJson() then
		return 'JsonConfig Lua: OK'
	else
		return 'JsonConfig Lua: MISSING (no mw.ext.data.get)'
	end
end

function p.fetch()
	if not hasLuaJson() then
		return 'JsonConfig Lua: MISSING (no mw.ext.data.get)'
	end

	-- Try both title forms (spaces vs underscores)
	local name1 = 'CS1/Identifier limits.tab'
	local name2 = 'CS1/Identifier_limits.tab'

	local function tryGet(name)
		return pcall(function()
			return mw.ext.data.get(name)
		end)
	end

	-- First attempt
	local ok, res = tryGet(name1)
	if not ok or type(res) ~= 'table' or type(res.data) ~= 'table' then
		-- Second attempt
		ok, res = tryGet(name2)
	end

	if not ok then
		return 'pcall error: ' .. tostring(res)
	end

	if type(res) == 'table' and type(res.data) == 'table' then
		return 'Commons Data reachable: rows=' .. tostring(#res.data)
	else
		return 'mw.ext.data.get returned type: ' .. tostring(type(res))
	end
end

return p