Module:Sandbox/Ypnypn/Review: Difference between revisions

Content deleted Content added
No edit summary
length
 
(9 intermediate revisions by the same user not shown)
Line 2:
 
function p.review(frame)
page = frame.args['page'] or frame.args[1]
article = mw.title.new(page,'')
content = article:getContent()
Line 15:
return result
else
--[[for issue, details in pairs(issues) do
result = result..text(issue, details)
end]]--
if result == '' then
result = 'The article is perfect!'
else
result = "The article '''[["..page.."]]''' has some problems:\n"..result
end
return result
end
end
 
function p.critique(content)
issues = {}
 
prose = content
prose = string.gsub(prose, '{|.-|}', '')
prose = string.gsub(prose, '<ref>.-</ref>', '')
prose = string.gsub(prose, '%[%[Category:.-%]%]', '')
prose = string.gsub(prose, '%[%[File:.-%]%]', '')
prose = string.gsub(prose, '%b{}', '')
 
--infobox
if not string.match(content, '{{Infobox') then
issues['infobox'] = 'none'
end
 
--categories
if not string.match(content, '%[%[Category:') then
issues['category'] = 'none'
elseif not string.match(content, '%[%[Category:.+%[%[Category:') then
issues['category'] = 'one'
end
 
--length
length = #prose
if length > 100000 then
issues['length'] = 'too long'
elseif length < 10000 then
issues['length'] = 'too short'
end
 
return issues
end
 
function p.text(issue, details)
 
return 'Error: issue not found! Issue: '..issue..' = '..details
if issue == 'infobox' and details == 'none' then
return '* There is no infobox.\n'
end
 
if issue == 'category' then
if details == 'none' then
return '* There are no categories.\n'
elseif details == 'one' then
return '* There is only one category.\n'
end
end
 
if issue == 'length' then
if details == 'too long' then
return '* The article is very long.\n'
elseif details == 'too short' then
return '* The article is very short.\n'
end
end
 
return '<strong><span style="color:red">Error: issuetext not found! Issue:</span> '..issue..' = '..details..'</strong>\n'
end