Modul:Article: Forskjell mellom sideversjoner
Hopp til navigering
Hopp til søk
Tømmer siden |
m Tilbakestilte endring av Russisk ubåtkaptein (bidrag) til siste versjon av KristofferAG |
||
| Linje 1: | Linje 1: | ||
local scrubs | |||
scrubs = { | |||
["scrub-tags"] = function(text) | |||
return mw.ustring.gsub(text, '%b<>', '' ) | |||
end, | |||
["scrub-templates"] = function(text) | |||
return mw.ustring.gsub(text, '%b{}', '' ) | |||
end, | |||
["scrub-extlinks"] = function(text) | |||
return mw.ustring.gsub(text, '%[[htps]*:?//%w[^%s]+%s*([^%]]*)%]', '%1' ) | |||
end, | |||
["scrub-magics"] = function(text) | |||
return mw.ustring.gsub(text, '__[_%w]+__', '' ) | |||
end, | |||
["scrub-links"] = function(text) | |||
local text = mw.ustring.gsub(text, '%[%[[^|%]]+%|([^%]]+)%]%]', '%1' ) | |||
text = mw.ustring.gsub(text, '%[%[([^|%]]+)%]%]', '%1' ) | |||
return text | |||
end, | |||
["scrub-sections"] = function(text) | |||
return mw.ustring.gsub(text, '==+[^=\n]+==+', '' ) | |||
end, | |||
["scrub-all"] = function(text) | |||
text = scrubs["scrub-tags"](text) | |||
text = scrubs["scrub-templates"](text) | |||
text = scrubs["scrub-links"](text) | |||
text = scrubs["scrub-extlinks"](text) | |||
text = scrubs["scrub-magics"](text) | |||
text = scrubs["scrub-sections"](text) | |||
return text | |||
end | |||
} | |||
local tests | |||
tests = { | |||
["length"] = function(text) | |||
return mw.ustring.len( text ) | |||
end, | |||
["extlinks"] = function(text) | |||
local count = 0 | |||
for line in string.gmatch(text, '%[[htps]*:?//%w[^%s]+%s*([^%]]*)%]') do | |||
count = 1 + count | |||
end | |||
return count | |||
end, | |||
["links"] = function(text) | |||
mw.log('enter links') | |||
local count = 0 | |||
for line in string.gmatch(text, '%[%[[^|%]]+%|[^%]]+%]%]') do | |||
count = 1 + count | |||
end | |||
for line in string.gmatch(text, '%[%[[^|%]]+%]%]') do | |||
count = 1 + count | |||
end | |||
return count | |||
end, | |||
["lines"] = function(text) | |||
local count = 0 | |||
for line in string.gmatch(text, '([^\n]+)') do | |||
if mw.ustring.find( line, '%w', init, plain ) then | |||
count = 1 + count | |||
end | |||
end | |||
return count | |||
end, | |||
["words"] = function(text) | |||
local count = 0 | |||
for line in string.gmatch(text, '([^%s]+)') do | |||
if mw.ustring.find( line, '%a', init, plain ) then | |||
count = 1 + count | |||
end | |||
end | |||
return count | |||
end, | |||
-- anslag | |||
["characters"] = function(text) | |||
local _,count = mw.ustring.gsub(text, '%s', '') | |||
return mw.ustring.len( text ) - count | |||
end | |||
} | |||
local p = {} | |||
p.tests=tests | |||
p.scrubs = scrubs | |||
function p._stats(content, args) | |||
for k,v in ipairs(args) do | |||
local num = tonumber(k) | |||
if num and num ~= 1 then | |||
if scrubs[v] then | |||
content = scrubs[v](content) | |||
end | |||
end | |||
end | |||
local acc = 0 | |||
for k,v in pairs(args) do | |||
local num = tonumber(k) | |||
if not num and k then | |||
if tests[k] then | |||
acc = acc + tonumber(v) * tests[k](content) | |||
end | |||
end | |||
end | |||
return acc | |||
end | |||
function p.stats(frame) | |||
return p._stats(mw.title.getCurrentTitle():getContent(), (frame or mw.getCurrentFrame()).args) | |||
end | |||
return p | |||
Sideversjonen fra 17. apr. 2019 kl. 11:52
Dokumentasjon for denne modulen kan opprettes på Modul:Article/dok
local scrubs
scrubs = {
["scrub-tags"] = function(text)
return mw.ustring.gsub(text, '%b<>', '' )
end,
["scrub-templates"] = function(text)
return mw.ustring.gsub(text, '%b{}', '' )
end,
["scrub-extlinks"] = function(text)
return mw.ustring.gsub(text, '%[[htps]*:?//%w[^%s]+%s*([^%]]*)%]', '%1' )
end,
["scrub-magics"] = function(text)
return mw.ustring.gsub(text, '__[_%w]+__', '' )
end,
["scrub-links"] = function(text)
local text = mw.ustring.gsub(text, '%[%[[^|%]]+%|([^%]]+)%]%]', '%1' )
text = mw.ustring.gsub(text, '%[%[([^|%]]+)%]%]', '%1' )
return text
end,
["scrub-sections"] = function(text)
return mw.ustring.gsub(text, '==+[^=\n]+==+', '' )
end,
["scrub-all"] = function(text)
text = scrubs["scrub-tags"](text)
text = scrubs["scrub-templates"](text)
text = scrubs["scrub-links"](text)
text = scrubs["scrub-extlinks"](text)
text = scrubs["scrub-magics"](text)
text = scrubs["scrub-sections"](text)
return text
end
}
local tests
tests = {
["length"] = function(text)
return mw.ustring.len( text )
end,
["extlinks"] = function(text)
local count = 0
for line in string.gmatch(text, '%[[htps]*:?//%w[^%s]+%s*([^%]]*)%]') do
count = 1 + count
end
return count
end,
["links"] = function(text)
mw.log('enter links')
local count = 0
for line in string.gmatch(text, '%[%[[^|%]]+%|[^%]]+%]%]') do
count = 1 + count
end
for line in string.gmatch(text, '%[%[[^|%]]+%]%]') do
count = 1 + count
end
return count
end,
["lines"] = function(text)
local count = 0
for line in string.gmatch(text, '([^\n]+)') do
if mw.ustring.find( line, '%w', init, plain ) then
count = 1 + count
end
end
return count
end,
["words"] = function(text)
local count = 0
for line in string.gmatch(text, '([^%s]+)') do
if mw.ustring.find( line, '%a', init, plain ) then
count = 1 + count
end
end
return count
end,
-- anslag
["characters"] = function(text)
local _,count = mw.ustring.gsub(text, '%s', '')
return mw.ustring.len( text ) - count
end
}
local p = {}
p.tests=tests
p.scrubs = scrubs
function p._stats(content, args)
for k,v in ipairs(args) do
local num = tonumber(k)
if num and num ~= 1 then
if scrubs[v] then
content = scrubs[v](content)
end
end
end
local acc = 0
for k,v in pairs(args) do
local num = tonumber(k)
if not num and k then
if tests[k] then
acc = acc + tonumber(v) * tests[k](content)
end
end
end
return acc
end
function p.stats(frame)
return p._stats(mw.title.getCurrentTitle():getContent(), (frame or mw.getCurrentFrame()).args)
end
return p