Module:Sandbox/ProcrastinatingReader/three: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
 
(13 intermediate revisions by the same user not shown)
Line 209:
for x, p in pairs( td_params ) do for y, alias in ipairs( p.aliases or {} ) do
p['primary'] = x
td_params[x] = p
all_aliases[alias] = p
if tonumber(alias) then all_aliases[tonumber(alias)] = p end
end end
 
mw.logObject(all_aliases)
-- handle undeclared and deprecated
local already_seen = {}
Line 312 ⟶ 311:
end
 
local replace_macros = function( error_type, s, param_names )
function concat_and_escape( t ), sep )
local ssep = table.concat(sep t,or ', ' )
v2local s = v2 .. table.concat(aliases t, ',sep ')
return ( mw.ustring.gsub( s, '%%', '%%%%' ) )
end
Line 322:
for k, v in pairs( param_names ) do
table.insert( k_ar, k )
if ktype(v) == 'duplicatetable' then
local v2v = table.concat(v, ', ')
for _,aliases in pairs(v) do
v2 = v2 .. table.concat(aliases, ', ')
end
v = v2
end
if error_type == 'duplicate' then
table.insert( kv_ar, k .. ': ' .. v)
table.insert( kv_ar, v)
else
table.insert( kv_ar, k .. ': ' .. v)
end
end
s = mw.ustring.gsub( s, 'paramname', concat_and_escape( k_ar ) )
s = mw.ustring.gsub( s, 'paramandvalue', concat_and_escape( kv_ar ) )
s = mw.ustring.gsub( s, 'paramname', concat_and_escape( k_ar ) )
s = mw.ustring.gsub( s, 'paramandvalue', concat_and_escape( kv_ar, ' AND ' ) )
 
if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) ~= "" then
s = mw.ustring.gsub( s, "<div.*<%/div>", "", 1 )
Line 343 ⟶ 344:
 
local report_params = function( key, param_names )
local res = replace_macros( key, options[key], param_names )
res = frame:preprocess(res or '')
report = report .. ( res or '' )