Module:Sandbox/ProcrastinatingReader: Difference between revisions

Content deleted Content added
No edit summary
copy of https://he.wikipedia.org/wiki/%D7%99%D7%97%D7%99%D7%93%D7%94:PV-options, see for attribution
Line 1:
function create(cat, msg)
local p = {}
return mw.ustring.format("[[קטגוריה:שגיאות פרמטריות %s]]", cat) .. create_message(msg)
local getArgs = require('Module:Arguments').getArgs
local error = require('Module:Error')
local tableTools = require('Module:TableTools')
local data = mw.loadData('Module:Sandbox/ProcrastinatingReader/data')
 
function p.test(frame)
return frame.args['test']
end
 
function create_message(msg)
 
return mw.ustring.format("<span class='paramvalidator-error'><br/>%s</span>", msg)
 
-- G4 functions
local function getDeletionDiscussions()
local namespaceMap = {
[""] = "Articles for deletion",
["Category"] = "Categories for discussion",
["File"] = "Files for discussion",
["Template"] = "Templates for discussion",
["Module"] = "Templates for discussion",
 
}
--local current_page = mw.title.getCurrentTitle()
local output = ""
local n = 1
local current_page = mw.title.new("Premadasa Hegoda")
local nsPrefix = namespaceMap[current_page.nsText] or "Miscellany for deletion"
while true do -- possibly expensive if lots of noms
page = mw.title.makeTitle('Wikipedia', nsPrefix..'/'..current_page.text..(n > 1 and " ("..n.."nd nomination)" or ""))
if page.exists then
output = output ..(n > 1 and ", " or "").."[["..page.prefixedText.."|XfD"..(n > 1 and " ("..n..")" or "").."]]"
n = n + 1
else
break
end
end
return output
end
 
-- Message functions
local function substitute(msg, args)
return args and mw.message.newRawMessage( msg, args ):plain() or msg;
end
 
local options_0 = {
local function substituteMsgParams(msgKey, msg)
["no-templatedata"] = create("אין templatedata תקין",
local replacements = {
"לא נמצא templatedata תקין"),
['g4.message'] = {"{{fullurl:Special:Log|type=delete&page={{FULLPAGENAMEE}}}}"},
["undeclared"] = create("שם שגוי",
['g4.extra'] = {getDeletionDiscussions()}
"פרמטרים [ paramname ] לא מופיעים בהגדרת התבנית"),
}
["empty-undeclared"] = create("שם שגוי ריק",
 
"פרמטרים ריקים [ paramname ] לא מופיעים בהגדרת התבנית"),
return substitute(msg, replacements[msgKey])
["undeclared-numeric"] = create("מספר סודר שגוי",
end
"פרמטרים [ paramname ] לא מופיעים בהגדרת התבנית"),
 
["empty-undeclared-numeric"] = create("מספר סודר שגוי ריק",
local function buildMsgParams(criterion, key, data, args)
"פרמטרים ריקים [ paramname ] לא מופיעים בהגדרת התבנית"),
local msg = substituteMsgParams(criterion..'.'..key, data[key])
["empty-required"] = create("פרמטר חובה חסר",
local appendMsg = ""
"פרמטרי חובה [ paramname ] חסרים"),
local extraParams = data['params']
["deprecated"] = create("שימוש בפרמטר מיושן",
 
"שימוש בפרמטרים מיושנים [ paramname ]"),
if extraParams then
["empty-deprecated"] = create("שימוש בפרמטר מיושן ריק",
for k,param in pairs(extraParams) do
"שימוש בפרמטרים מיושנים ריקים [ paramname ]"),
local keys = param.keys
["incompatible"] = create("סוג לא תואם",
for j,paramkey in pairs(keys) do
"סוג לא תואם [ paramname ]"),
if args[paramkey] and param['append'][key] then -- check if we have a defined param given, and it matches what we're processing
["duplicate"] = create("כפילות פרמטרים",
-- assign to msg if we have appends
"כפילות פרמטרים [ paramname ]"),
appendMsg = substitute(param['append'][key], args[paramkey])
["multiple"] = "[[קטגוריה:שגיאות פרמטריות שגיאות ממספר סוגים]]",
end
["any"] = "[[קטגוריה:שגיאות פרמטריות]][[קטגוריה:שגיאות פרמטריות בתבנית tname_naked]]",
end
["doc-subpage"] = "תיעוד",
end
["wrapper-prefix"] = "<span class='paramvalidator-wrapper'><span class='paramvalidator-error' style='text-align:center;'><br/>שגיאות פרמטריות ב[[templatename]] </span>",
end
["wrapper-suffix"] = " </span>"
 
}
return msg .. appendMsg
local options_rest = {
end
["no-templatedata"] = create_message("לא נמצא templatedata תקין"),
 
["undeclared"] = create_message("פרמטרים [ paramname ] לא מופיעים בהגדרת התבנית"),
-- Returns
["empty-undeclared"] = create_message("פרמטרים ריקים [ paramname ] לא מופיעים בהגדרת התבנית"),
function p.build(frame, args)
["undeclared-numeric"] = create_message("פרמטרים [ paramname ] לא מופיעים בהגדרת התבנית"),
local criterion = args['criterion']
["empty-undeclared-numeric"] = create_message("פרמטרים ריקים [ paramname ] לא מופיעים בהגדרת התבנית"),
if criterion == nil or data[criterion] == nil then
["empty-required"] = create_message("פרמטרי חובה [ paramname ] חסרים"),
return error.error({message = "Valid CSD not provided"})
["deprecated"] = create_message("שימוש בפרמטרים מיושנים [ paramname ]"),
end
["empty-deprecated"] = create_message("שימוש בפרמטרים מיושנים ריקים [ paramname ]"),
["incompatible"] = create_message("סוג לא תואם [ paramname ]"),
local cdata = data[criterion]
["duplicate"] = create_message("כפילות פרמטרים [ paramname ]"),
local tag = cdata.tag
["multiple"] = "",
["any"] = "[[קטגוריה:שגיאות פרמטריות מחוץ למרחב הערכים]]",
if tag == nil then
["doc-subpage"] = "תיעוד",
return error.error({message = "CSD "..criterion.." does not have a tag"})
["skip-empty-numeric"] = "0",
end
["wrapper-prefix"] = "<span class='paramvalidator-wrapper'><span class='paramvalidator-error' style='text-align:center;'><br/>שגיאות פרמטריות ב[[templatename]] </span>",
 
["wrapper-suffix"] = " </span>"
template = frame:expandTemplate{ title = 'db-meta', args = {
}
-- Required
'&#32;'..frame:preprocess(buildMsgParams(criterion:lower(), 'message', tag, args)), -- Main text, in bold
frame:preprocess(buildMsgParams(criterion:lower(), 'extra', tag, args)) or '', -- Main text, in italics
criterion = criterion, -- Criteron
 
-- Additional data
notes = tag['notes'] or '',
anotes = tag['anotes'] or '',
summary = data[criterion]['description'],
temp = data[criterion]['warn_template'],
 
-- Pass generic params onto db-meta
bot = args['bot'] or '',
raw = args['raw'] or '',
['self'] = tag['self'] or '',
image = args['image'] or '',
wiki = args['wiki'] or '',
blanked = args['blanked'] or '',
blankedtext = args['blanked-text'] or '',
pleaseblank = args['pleaseblank'] or '',
divblank = args['divblank'] or '',
help = args['help'] or ''
}}
 
categorisation = '<includeonly>' .. frame:expandTemplate{
title = 'cat handler',
args = {
['all'] = '{{NOINDEX}}[[:Category:Candidates for speedy deletion]][[:Category:'..cdata['tracking_category']..']]',
['nocat'] = 'false'
}
} .. '</includeonly>'
 
return template .. frame:preprocess(categorisation)
end
 
function p.main(frame)
local args = getArgs(frame)
return p.build(frame, args)
end
 
local result = {
return p
[0] = options_0, -- ערכים
[2] = options_rest, -- משתמש
[4] = options_rest, -- ויקיפדיה
[6] = options_0, -- קובץ
[10] = options_0, -- תבנית
[12] = options_rest, -- עזרה
[14] = options_0, -- קטגוריה
[100] = options_0, -- פורטל
[108] = options_rest, -- ספר
[118] = options_rest, -- טיוטה
[446] = options_rest, -- הוראה
[828] = options_rest, -- יחידה
[2300] = options_rest, -- גאדג'ט
[2302] = options_rest, -- הגדרת גאדג'ט
[2600] = options_rest, -- נושא
}
return result