Module:Guidance

local p = {} --p stands for package

r = { --keyword, short name, formatted name, severity {	"flashing", "flashing images", "flashing images", 1,	},	{	"graphic", "graphic violence", "graphic violence or gore", 2,	},	{	"jumpscare", "jump scares", "jump scares", 1,	},	{	"nudity", "nudity", "nudity", 2,	},	{	"sex", "sexual activity", "sexual activity", 2,	} } ri = 5

function p.reasons(frame) for i = ri,1,-1 do if string.find(frame.args[1],r[i][1]) then if ro == nil then ro = r[i][3] elseif string.find(ro,", and ") then ro = r[i][3]..", "..ro			else ro = r[i][3]..", and "..ro			end end end return ro; end function p.warn_1(frame) for i = ri,1,-1 do if string.find(frame.args[1],r[i][1]) and (r[i][4] == 1) then if w1 == nil then w1 = r[i][2].." occur." elseif string.find(w1," and ") then w1 = r[i][2]..", "..w1			else w1 = r[i][2].." and "..w1			end end end return w1; end

function p.warn_2(frame) for i = ri,1,-1 do if string.find(frame.args[1],r[i][1]) and (r[i][4] == 2) then if (w2 == nil) then w2 = r[i][2] elseif string.find(w2," and ") then w2 = r[i][2]..", "..w2			else w2 = r[i][2].." and "..w2			end end end if w2 ~= nil then if string.find(w2," and ") then w2 = w2.." are" else w2 = w2.." is" end end return w2; end

function p.category(frame) for i = 1,ri,1 do if string.find(frame.args[1],r[i][1]) then if rc == nil then rc = "" else rc = rc.."" end end end return rc end

-- Function for the smaller "guidance detail" notices (under testing) function p.details(frame) for i = ri,1,-1 do -- Timestamp parsing if string.match(frame.args[1],r[i][1]..'%([%d,:-]*%)') then rs = string.match(frame.args[1],r[i][1]..'%([%d,:-]*%)') rt = string.match(rs,'%([%d,:-]*%)') mw.log(rt) if string.match(rt,"-") then rt = string.gsub(rt,'%('," (from ") rt = string.gsub(rt,"-"," to ") else rt = string.gsub(rt,'%('," (at ") end mw.log(rt) rs = r[i][2]..rt		elseif string.find(frame.args[1],r[i][1]) then rs = r[i][2].." (for the whole duration)" end if rd == nil then rd = rs		else rd = rs.." and "..rd		end end return rd end

return p