AllPageAccess, Bureaucrats, Check users, Comment administrators, confirmed, import, Interface administrators, rollback, Suppressors, Administrators, Widget editors
16,150
edits
Screamer Forums, Screamer Gallery, Pollbay, and Screamer Host will be restored within the coming days.
Tankmanfan44 (talk | contribs) (test) Tags: Blanking Reverted |
Tankmanfan44 (talk | contribs) (Undo revision 151850 by Tankman fan 44 (talk)) Tag: Undo |
||
Line 1: | Line 1: | ||
-- Inputs: | |||
-- image - Can either be a bare filename (with or without the File:/Image: prefix) or a fully formatted image link | |||
-- page - page to display for multipage images (DjVu) | |||
-- size - size to display the image | |||
-- maxsize - maximum size for image | |||
-- sizedefault - default size to display the image if size param is blank | |||
-- alt - alt text for image | |||
-- title - title text for image | |||
-- border - set to yes if border | |||
-- center - set to yes, if the image has to be centered | |||
-- upright - upright image param | |||
-- suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it | |||
-- link - page to visit when clicking on image | |||
-- Outputs: | |||
-- Formatted image. | |||
-- More details available at the "Module:InfoboxImage/doc" page | |||
local i = {}; | |||
function i.IsPlaceholder(image) | |||
-- change underscores to spaces | |||
image = mw.ustring.gsub(image, "_", " "); | |||
assert(image ~= nil, 'mw.ustring.gsub(image, "_", " ") must not return nil') | |||
-- if image starts with [[ then remove that and anything after | | |||
if mw.ustring.sub(image,1,2) == "[[" then | |||
image = mw.ustring.sub(image,3); | |||
image = mw.ustring.gsub(image, "([^|]*)|.*", "%1"); | |||
assert(image ~= nil, 'mw.ustring.gsub(image, "([^|]*)|.*", "%1") must not return nil') | |||
end | |||
-- Trim spaces | |||
image = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1'); | |||
assert(image ~= nil, "mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1') must not return nil") | |||
-- remove prefix if exists | |||
local allNames = mw.site.namespaces[6].aliases | |||
allNames[#allNames + 1] = mw.site.namespaces[6].name | |||
allNames[#allNames + 1] = mw.site.namespaces[6].canonicalName | |||
for i, name in ipairs(allNames) do | |||
if mw.ustring.lower(mw.ustring.sub(image, 1, mw.ustring.len(name) + 1)) == mw.ustring.lower(name .. ":") then | |||
image = mw.ustring.sub(image, mw.ustring.len(name) + 2); | |||
break | |||
end | |||
end | |||
-- Trim spaces | |||
image = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1'); | |||
-- capitalise first letter | |||
image = mw.ustring.upper(mw.ustring.sub(image,1,1)) .. mw.ustring.sub(image,2); | |||
for i,j in pairs(placeholder_image) do | |||
if image == j then | |||
return true | |||
end | |||
end | |||
return false | |||
end | |||
function i.InfoboxImage(frame) | |||
local image = frame.args["image"]; | |||
if image == "" or image == nil then | |||
return ""; | |||
end | |||
if image == " " then | |||
return image; | |||
end | |||
if frame.args["suppressplaceholder"] ~= "no" then | |||
if i.IsPlaceholder(image) == true then | |||
return ""; | |||
end | |||
end | |||
if mw.ustring.lower(mw.ustring.sub(image,1,5)) == "http:" then | |||
return ""; | |||
end | |||
if mw.ustring.lower(mw.ustring.sub(image,1,6)) == "[http:" then | |||
return ""; | |||
end | |||
if mw.ustring.lower(mw.ustring.sub(image,1,7)) == "[[http:" then | |||
return ""; | |||
end | |||
if mw.ustring.lower(mw.ustring.sub(image,1,6)) == "https:" then | |||
return ""; | |||
end | |||
if mw.ustring.lower(mw.ustring.sub(image,1,7)) == "[https:" then | |||
return ""; | |||
end | |||
if mw.ustring.lower(mw.ustring.sub(image,1,8)) == "[[https:" then | |||
return ""; | |||
end | |||
if mw.ustring.sub(image,1,2) == "[[" then | |||
-- search for thumbnail images and add to tracking cat if found | |||
if mw.title.getCurrentTitle().namespace == 0 and (mw.ustring.find(image, "|%s*thumb%s*[|%]]") or mw.ustring.find(image, "|%s*thumbnail%s*[|%]]")) then | |||
return image .. "[[Category:Pages using infoboxes with thumbnail images]]"; | |||
elseif mw.title.getCurrentTitle().namespace == 0 then | |||
return image .. "[[Category:Pages using deprecated image syntax]]"; | |||
else | |||
return image; | |||
end | |||
elseif mw.ustring.sub(image,1,2) == "{{" and mw.ustring.sub(image,1,3) ~= "{{{" then | |||
return image; | |||
elseif mw.ustring.sub(image,1,1) == "<" then | |||
return image; | |||
elseif mw.ustring.sub(image,1,5) == mw.ustring.char(127).."UNIQ" then | |||
-- Found strip marker at begining, so pass don't process at all | |||
return image; | |||
elseif mw.ustring.sub(image,4,9) == "`UNIQ-" then | |||
-- Found strip marker at begining, so pass don't process at all | |||
return image; | |||
else | |||
local result = ""; | |||
local page = frame.args["page"]; | |||
local size = frame.args["size"]; | |||
local maxsize = frame.args["maxsize"]; | |||
local sizedefault = frame.args["sizedefault"]; | |||
local alt = frame.args["alt"]; | |||
local link = frame.args["link"]; | |||
local title = frame.args["title"]; | |||
local border = frame.args["border"]; | |||
local upright = frame.args["upright"] or ""; | |||
local thumbtime = frame.args["thumbtime"] or ""; | |||
local center= frame.args["center"]; | |||
-- remove prefix if exists | |||
local allNames = mw.site.namespaces[6].aliases | |||
allNames[#allNames + 1] = mw.site.namespaces[6].name | |||
allNames[#allNames + 1] = mw.site.namespaces[6].canonicalName | |||
for i, name in ipairs(allNames) do | |||
if mw.ustring.lower(mw.ustring.sub(image, 1, mw.ustring.len(name) + 1)) == mw.ustring.lower(name .. ":") then | |||
image = mw.ustring.sub(image, mw.ustring.len(name) + 2); | |||
break | |||
end | |||
end | |||
if maxsize ~= "" and maxsize ~= nil then | |||
-- if no sizedefault then set to maxsize | |||
if sizedefault == "" or sizedefault == nil then | |||
sizedefault = maxsize | |||
end | |||
-- check to see if size bigger than maxsize | |||
if size ~= "" and size ~= nil then | |||
local sizenumber = tonumber(mw.ustring.match(size,"%d*")) or 0; | |||
local maxsizenumber = tonumber(mw.ustring.match(maxsize,"%d*")) or 0; | |||
if sizenumber>maxsizenumber and maxsizenumber>0 then | |||
size = maxsize; | |||
end | |||
end | |||
end | |||
-- add px to size if just a number | |||
if (tonumber(size) or 0) > 0 then | |||
size = size .. "px"; | |||
end | |||
-- add px to sizedefault if just a number | |||
if (tonumber(sizedefault) or 0) > 0 then | |||
sizedefault = sizedefault .. "px"; | |||
end | |||
result = "[[File:" .. image; | |||
if page ~= "" and page ~= nil then | |||
result = result .. "|page=" .. page; | |||
end | |||
if size ~= "" and size ~= nil then | |||
result = result .. "|" .. size; | |||
elseif sizedefault ~= "" and sizedefault ~= nil then | |||
result = result .. "|" .. sizedefault; | |||
else | |||
result = result .. "|frameless"; | |||
end | |||
if center == "yes" then | |||
result = result .. "|center" | |||
end | |||
if alt ~= "" and alt ~= nil then | |||
result = result .. "|alt=" .. alt; | |||
end | |||
if link ~= "" and link ~= nil then | |||
result = result .. "|link=" .. link; | |||
end | |||
if border == "yes" then | |||
result = result .. "|border"; | |||
end | |||
if upright == "yes" then | |||
result = result .. "|upright"; | |||
elseif upright ~= "" then | |||
result = result .. "|upright=" .. upright; | |||
end | |||
if thumbtime ~= "" then | |||
result = result .. "|thumbtime=" .. thumbtime; | |||
end | |||
if title ~= "" and title ~= nil then | |||
result = result .. "|" .. title; | |||
elseif alt ~= "" and alt ~= nil then | |||
result = result .. "|" .. alt; | |||
end | |||
result = result .. "]]"; | |||
return result; | |||
end | |||
end | |||
return i; |
edits