Module:AfC explained
local p =
local diffString = '%s'
function p.row(frame) local status = frame.args.s local title = frame.args.t local short = p.shorttitle(title, 40) local size = frame.args.z local modified_by = frame.args.mr local modified_at = frame.args.md local old_id = frame.args.mi local special_user = frame.args.sr local special_time = frame.args.sd local special_id = tonumber(frame.args.si) local display_notes = tonumber(frame.args.n) local rowtemplate = "
%s
" local colorthing = p.color(status, false) local cols = local is_userspace = string.sub(frame.args.t, 1, 4)
"User" if is_userspace or display_notes then cols[3] = string.format("%s | ", p.notes(frame)) else cols[3] = " | " end if special_id then cols[4] = p.printuser(special_user) cols[5] = string.format('%s | ', special_id, string.format(diffString, special_id, special_time)) else cols[4] = "Unknown | " cols[5] = "Unknown | " end cols[6] = p.printuser(modified_by) cols[7] = string.format('%s | ', old_id, string.format(diffString, old_id, modified_at)) return string.format(rowtemplate, colorthing, table.concat(cols))end
function p.notes(frame) local result = "" local is_suspected_copyvio = tonumber(frame.args.nc) local is_unsourced = tonumber(frame.args.nu) local no_inline = tonumber(frame.args.ni) local is_short = tonumber(frame.args.ns) local is_resubmit = tonumber(frame.args.nr) local is_old = tonumber(frame.args.no) local is_rejected = tonumber(frame.args.nj) local submitter_is_blocked = tonumber(frame.args.nb) local is_userspace = string.sub(frame.args.t, 1, 4)
"User" if is_suspected_copyvio then result = result .. "copyvio " end if is_unsourced then result = result .. "unsourced " end if no_inline then result = result .. "no-inline " end if is_short then result = result .."short " end if is_resubmit then result = result .. "resubmit " end if is_old then result = result .. "old " end if is_rejected then result = result .. "rejected " end if submitter_is_blocked then result = result .. "blocked " end if is_userspace then result = result .. "userspace " end return resultend
function p.color(status, dark) local result local dark_colors = local normal_colors = if dark then return dark_colors[status] or "#777" else return normal_colors[status] or "#ddc" endend
function p.printuser(user) local url = tostring(mw.uri.canonicalUrl("User:" .. user)) return string.format('
[%s %s] (t) | ', url, user, user)end
function p.shorttitle(fulltitle, maxlength) --strip off namespace:basepage/ if it exists and anything is left --if not, strip off namespace --truncate to maxlength local startindex, size, namespace, basetitle, subtitle = mw.ustring.find(fulltitle, "([^:]*):([^\/]*)\/?(.*)") if subtitle
then subtitle = nil end local effective_title = subtitle or basetitle if effective_title
nil or effective_title
then effective_title = fulltitle end effective_title = string.gsub(effective_title, "^Submissions/", "") -- return mw.text.truncate(effective_title, maxlength) (mw.text is not yet deployed!) if (mw.ustring.len(effective_title) > maxlength) then return mw.ustring.sub(effective_title, 1, maxlength - 3) .. "..." else return effective_title end end
return p