Module:Guidance: Difference between revisions
Jump to navigation
Jump to search
imported>Camenati No edit summary |
imported>Camenati (starting over) |
||
| Line 2: | Line 2: | ||
r = { --keyword, short name, formatted name, severity | r = { --keyword, short name, formatted name, severity | ||
{ "flashing", | |||
"flashing images", | |||
"[[:wikipedia:photosensitive epilepsy|flashing images]]", | |||
1, | |||
}, | |||
{ "graphic", | |||
"graphic violence", | |||
"graphic violence or gore", | |||
2, | |||
}, | |||
{ "jumpscare", | |||
"a jump scare", | |||
"a [[:wikipedia:jump scare|jump scare]]", | |||
1, | |||
}, | |||
{ "nudity", | |||
"nudity", | |||
"nudity", | |||
2, | |||
}, | |||
{ "sex", | |||
"sexual activity", | |||
"sexual activity", | |||
2, | |||
}, | |||
{ | |||
"language", | |||
"strong language", | |||
"strong language", | |||
2, | |||
} | |||
} | } | ||
ri = 6 | ri = 6 | ||
function p.reasons(frame) | 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 | end | ||
function p.warn_1(frame) | 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 | end | ||
function p.warn_2(frame) | 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 | end | ||
function p.category(frame) | 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 = "[[Category:Logos with content warnings for "..r[i][2].."]]" | |||
else | |||
rc = rc.."[[Category:Logos with content warnings for "..r[i][2].."]]" | |||
end | |||
end | |||
end | |||
return rc | |||
end | end | ||
-- Function for the smaller "guidance detail" notices (under testing) | -- Function for the smaller "guidance detail" notices (under testing) | ||
function p.small(frame) | function p.small(frame) | ||
-- Banners | |||
bd = "none" | |||
b = { | |||
frame:expandTemplate{title="ambox",args={ | |||
small = "left", | |||
type = "style", | |||
nocat = "yes", | |||
image = "[[File:Sound icon.png|30px]]", | |||
style = "margin:auto;max-width:480px;width:inherit;background:#fcfcfc;border: 0px solid #a2a9b1;border-left: 15px solid #ffa800;padding: 10px 0 10px 0.5em;", | |||
text = "The video of this logo '''may be too loud''' or severely distorted." | |||
}}, | |||
frame:expandTemplate{title="ambox",args={ | |||
small = "left", | |||
type = "style", | |||
nocat = "yes", | |||
image = "[[File:Phone icon.png|30px]]", | |||
style = "margin:auto;max-width:480px;width:inherit;background:#fcfcfc;border: 0px solid #a2a9b1;border-left: 15px solid #ffa800;padding: 10px 0 10px 0.5em;", | |||
text = "This logo '''contains an old telephone number'''. Please do not try to dial it." | |||
}}, | |||
} | |||
-- Text | |||
for i = ri,1,-1 do | |||
if string.find(frame.args[1],r[i][1]) and r[i][4] == 1 then | |||
if string.match(frame.args[1],r[i][1]..'%([%d,:-]*%)') then | |||
ti = 0 | |||
tt = {} | |||
for j in string.gmatch(string.match(frame.args[1],r[i][1].."%([%d,:-]*%)"),"[%d:-]+") do | |||
ti = ti + 1 | |||
tt[ti] = j | |||
end | |||
for j = ti,1,-1 do | |||
if ts == nil then | |||
ts = tt[j] | |||
elseif string.find(ts," and ") then | |||
ts = tt[j]..", "..ts | |||
else | |||
ts = tt[j].." and "..ts | |||
end | |||
end | |||
td = r[i][3].."''' at "..ts | |||
else | |||
td = r[i][3].."''' for the whole duration" | |||
end | |||
if rd == nil then | |||
rd = td | |||
elseif string.find(rd,", and ") then | |||
rd = td..", '''"..rd | |||
else | |||
rd = td..", and '''"..rd | |||
end | |||
end | |||
end | |||
if rd ~= nil then | |||
rd = frame:expandTemplate{title="ambox",args={ | |||
small = "left", | |||
type = "content", | |||
nocat = "yes", | |||
image = "[[File:Alert icon.png|30px]]", | |||
style = "margin:auto;max-width:480px;width:inherit;background:#fcfcfc;border: 0px solid #a2a9b1;border-left: 15px solid #da0c3f;padding: 10px 0 10px 0.5em;", | |||
text = "This logo '''contains "..rd.."."}} | |||
end | |||
if string.find(frame.args[1],"audio") then | |||
if rd ~= nil then | |||
rd = rd..b[1] | |||
else | |||
rd = b[1] | |||
end | |||
end | |||
if string.find(frame.args[1],"phone") then | |||
if rd ~= nil then | |||
rd = rd..b[2] | |||
else | |||
rd = b[2] | |||
end | |||
end | |||
return rd | |||
end | end | ||
return p | return p | ||
Revision as of 19:09, 1 August 2023
Documentation for this module may be created at Module:Guidance/doc
local p = {} --p stands for package
r = { --keyword, short name, formatted name, severity
{ "flashing",
"flashing images",
"[[:wikipedia:photosensitive epilepsy|flashing images]]",
1,
},
{ "graphic",
"graphic violence",
"graphic violence or gore",
2,
},
{ "jumpscare",
"a jump scare",
"a [[:wikipedia:jump scare|jump scare]]",
1,
},
{ "nudity",
"nudity",
"nudity",
2,
},
{ "sex",
"sexual activity",
"sexual activity",
2,
},
{
"language",
"strong language",
"strong language",
2,
}
}
ri = 6
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 = "[[Category:Logos with content warnings for "..r[i][2].."]]"
else
rc = rc.."[[Category:Logos with content warnings for "..r[i][2].."]]"
end
end
end
return rc
end
-- Function for the smaller "guidance detail" notices (under testing)
function p.small(frame)
-- Banners
bd = "none"
b = {
frame:expandTemplate{title="ambox",args={
small = "left",
type = "style",
nocat = "yes",
image = "[[File:Sound icon.png|30px]]",
style = "margin:auto;max-width:480px;width:inherit;background:#fcfcfc;border: 0px solid #a2a9b1;border-left: 15px solid #ffa800;padding: 10px 0 10px 0.5em;",
text = "The video of this logo '''may be too loud''' or severely distorted."
}},
frame:expandTemplate{title="ambox",args={
small = "left",
type = "style",
nocat = "yes",
image = "[[File:Phone icon.png|30px]]",
style = "margin:auto;max-width:480px;width:inherit;background:#fcfcfc;border: 0px solid #a2a9b1;border-left: 15px solid #ffa800;padding: 10px 0 10px 0.5em;",
text = "This logo '''contains an old telephone number'''. Please do not try to dial it."
}},
}
-- Text
for i = ri,1,-1 do
if string.find(frame.args[1],r[i][1]) and r[i][4] == 1 then
if string.match(frame.args[1],r[i][1]..'%([%d,:-]*%)') then
ti = 0
tt = {}
for j in string.gmatch(string.match(frame.args[1],r[i][1].."%([%d,:-]*%)"),"[%d:-]+") do
ti = ti + 1
tt[ti] = j
end
for j = ti,1,-1 do
if ts == nil then
ts = tt[j]
elseif string.find(ts," and ") then
ts = tt[j]..", "..ts
else
ts = tt[j].." and "..ts
end
end
td = r[i][3].."''' at "..ts
else
td = r[i][3].."''' for the whole duration"
end
if rd == nil then
rd = td
elseif string.find(rd,", and ") then
rd = td..", '''"..rd
else
rd = td..", and '''"..rd
end
end
end
if rd ~= nil then
rd = frame:expandTemplate{title="ambox",args={
small = "left",
type = "content",
nocat = "yes",
image = "[[File:Alert icon.png|30px]]",
style = "margin:auto;max-width:480px;width:inherit;background:#fcfcfc;border: 0px solid #a2a9b1;border-left: 15px solid #da0c3f;padding: 10px 0 10px 0.5em;",
text = "This logo '''contains "..rd.."."}}
end
if string.find(frame.args[1],"audio") then
if rd ~= nil then
rd = rd..b[1]
else
rd = b[1]
end
end
if string.find(frame.args[1],"phone") then
if rd ~= nil then
rd = rd..b[2]
else
rd = b[2]
end
end
return rd
end
return p