This page allows you to examine the variables generated by the Edit Filter for an individual change.

Variables generated for this change

VariableValue
Edit count of the user (user_editcount)
62292
Name of the user account (user_name)
'Izno'
Age of the user account (user_age)
454854002
Groups (including implicit) the user is in (user_groups)
[ 0 => 'interface-admin', 1 => 'sysop', 2 => '*', 3 => 'user', 4 => 'autoconfirmed' ]
Rights that the user has (user_rights)
[ 0 => 'editinterface', 1 => 'editsitecss', 2 => 'editsitejson', 3 => 'editsitejs', 4 => 'editusercss', 5 => 'edituserjson', 6 => 'edituserjs', 7 => 'oathauth-enable', 8 => 'templateeditor', 9 => 'changetags', 10 => 'extendedconfirmed', 11 => 'suppressredirect', 12 => 'noratelimit', 13 => 'deleterevision', 14 => 'deletelogentry', 15 => 'editcontentmodel', 16 => 'block', 17 => 'createaccount', 18 => 'delete', 19 => 'deletedhistory', 20 => 'deletedtext', 21 => 'undelete', 22 => 'import', 23 => 'move', 24 => 'move-subpages', 25 => 'move-rootuserpages', 26 => 'move-categorypages', 27 => 'patrol', 28 => 'autopatrol', 29 => 'protect', 30 => 'editprotected', 31 => 'rollback', 32 => 'upload', 33 => 'reupload', 34 => 'reupload-shared', 35 => 'unwatchedpages', 36 => 'autoconfirmed', 37 => 'editsemiprotected', 38 => 'ipblock-exempt', 39 => 'blockemail', 40 => 'markbotedits', 41 => 'apihighlimits', 42 => 'browsearchive', 43 => 'movefile', 44 => 'mergehistory', 45 => 'managechangetags', 46 => 'deletechangetags', 47 => 'abusefilter-revert', 48 => 'autoreview', 49 => 'stablesettings', 50 => 'movestable', 51 => 'review', 52 => 'unreviewedpages', 53 => 'tboverride', 54 => 'titleblacklistlog', 55 => 'transcode-reset', 56 => 'transcode-status', 57 => 'globalblock-whitelist', 58 => 'nuke', 59 => 'skipcaptcha', 60 => 'override-antispoof', 61 => 'centralauth-createlocal', 62 => 'abusefilter-log-detail', 63 => 'abusefilter-view-private', 64 => 'abusefilter-log-private', 65 => 'abusefilter-modify-restricted', 66 => 'massmessage', 67 => 'read', 68 => 'edit', 69 => 'createtalk', 70 => 'writeapi', 71 => 'viewmywatchlist', 72 => 'editmywatchlist', 73 => 'viewmyprivateinfo', 74 => 'editmyprivateinfo', 75 => 'editmyoptions', 76 => 'centralauth-merge', 77 => 'abusefilter-view', 78 => 'abusefilter-log', 79 => 'vipsscaler-test', 80 => 'collectionsaveasuserpage', 81 => 'reupload-own', 82 => 'createpage', 83 => 'minoredit', 84 => 'editmyusercss', 85 => 'editmyuserjson', 86 => 'editmyuserjs', 87 => 'purge', 88 => 'sendemail', 89 => 'applychangetags', 90 => 'spamblacklistlog', 91 => 'mwoauthmanagemygrants', 92 => 'collectionsaveascommunitypage', 93 => 'createpagemainns' ]
Whether the user is editing from mobile app (user_app)
false
Whether or not a user is editing through the mobile interface (user_mobile)
false
Page ID (page_id)
43454483
Page namespace (page_namespace)
828
Page title without namespace (page_title)
'Lockbox'
Full page title (page_prefixedtitle)
'Module:Lockbox'
Edit protection level of the page (page_restrictions_edit)
[ 0 => 'sysop' ]
Page age in seconds (page_age)
213094441
Action (action)
'edit'
Edit summary/reason (summary)
'swap to error'
Old content model (old_content_model)
'Scribunto'
New content model (new_content_model)
'Scribunto'
Old page wikitext, before the edit (old_wikitext)
'local export = {} -- XXX: OUTRAGEOUS ABUSE OF SCRIBUNTO API -- Generates a transclusion without incrementing the "expensive function" count local generate_transclusion do local mock_title = mw.title.new(mw.title.getCurrentTitle().id) local getContent = mock_title.getContent function generate_transclusion(title) local full_text = type(title) == 'table' and title.fullText or title rawset(mock_title, 'fullText', full_text) getContent(mock_title) end end local function make_wikitext_warning(msg) return string.format('<strong class="warning">Warning: %s.</strong>', msg) end function export.lock(frame) local warnings, transclusion_list = {}, {} -- Check if the transcluding page is cascade-protected. -- -- Only pages transcluded from a cascade-protected page appear in -- CASCADINGSOURCES, so normally we would not be able to tell if the lockbox -- itself is cascade-protected. To work around this, we generate a -- transclusion from the lockbox to itself, so that it will have an entry -- for itself in CASCADINGSOURCES. -- -- We cannot generate this transclusion using the title object for the -- parent title (the lockbox), as if the lockbox is transcluded on another -- page, we will generate a transclusion *from* the lockbox *to* that page -- as well, and the page will be cascade-protected. Instead we generate it -- with the title object for the current title. -- -- When the current title is the parent title (i.e. we are rendering the -- lockbox page), this creates the required entry in the link table in the -- database. When the current title is the grandparent title or up (i.e. we -- are rendering a page transcluding the lockbox), transclusions are only -- created from the page itself, not from the lockbox, and it is not -- cascade-protected. -- -- This creates an extaneous self-transclusion for all pages using the -- module, but we treat that as a necessary evil. do mw.title.getCurrentTitle():getContent() -- Generate self-transclusion local parent_title = frame:getParent():getTitle() if not mw.title.new(parent_title).cascadingProtection.sources[1] then warnings[#warnings + 1] = make_wikitext_warning(string.format( 'the page "%s" is not cascade-protected', parent_title )) end end -- Generate transclusions to the templates, and build the output list. for i, item in ipairs(frame.args) do item = mw.text.trim(item) local title = mw.title.new(item) if title then local ns = title.namespace local prefixed_text = title.prefixedText if ns == 0 then -- The item had no namespace text. If the item starts with a -- colon, assume it is a mainspace page. Otherwise, assume it is -- a template. if item:sub(1, 1) == ':' then generate_transclusion(title) table.insert(transclusion_list, '* [[' .. prefixed_text .. ']]') else generate_transclusion('Template:' .. prefixed_text) table.insert(transclusion_list, '* [[Template:' .. prefixed_text .. ']]') end elseif ns == 6 or ns == 14 then -- File or Category namespace generate_transclusion(title) table.insert(transclusion_list, '* [[:' .. prefixed_text .. ']]') else generate_transclusion(title) table.insert(transclusion_list, '* [[' .. prefixed_text .. ']]') end else warnings[#warnings + 1] = make_wikitext_warning(string.format( 'invalid title "%s" in argument #%d', item, i )) end end if frame.args.silent then return '' else -- If there were any warnings, show them at the top. Then show the list -- of transcluded pages. local ret = '' if #warnings > 0 then if #warnings > 1 then for i, warning in ipairs(warnings) do warnings[i] = '* ' .. warning end end ret = ret .. table.concat(warnings, '\n') .. '\n\n' end return ret .. table.concat(transclusion_list, '\n') end end return export'
New page wikitext, after the edit (new_wikitext)
'local export = {} -- XXX: OUTRAGEOUS ABUSE OF SCRIBUNTO API -- Generates a transclusion without incrementing the "expensive function" count local generate_transclusion do local mock_title = mw.title.new(mw.title.getCurrentTitle().id) local getContent = mock_title.getContent function generate_transclusion(title) local full_text = type(title) == 'table' and title.fullText or title rawset(mock_title, 'fullText', full_text) getContent(mock_title) end end local function make_wikitext_warning(msg) return string.format('<strong class="error">Warning: %s.</strong>', msg) end function export.lock(frame) local warnings, transclusion_list = {}, {} -- Check if the transcluding page is cascade-protected. -- -- Only pages transcluded from a cascade-protected page appear in -- CASCADINGSOURCES, so normally we would not be able to tell if the lockbox -- itself is cascade-protected. To work around this, we generate a -- transclusion from the lockbox to itself, so that it will have an entry -- for itself in CASCADINGSOURCES. -- -- We cannot generate this transclusion using the title object for the -- parent title (the lockbox), as if the lockbox is transcluded on another -- page, we will generate a transclusion *from* the lockbox *to* that page -- as well, and the page will be cascade-protected. Instead we generate it -- with the title object for the current title. -- -- When the current title is the parent title (i.e. we are rendering the -- lockbox page), this creates the required entry in the link table in the -- database. When the current title is the grandparent title or up (i.e. we -- are rendering a page transcluding the lockbox), transclusions are only -- created from the page itself, not from the lockbox, and it is not -- cascade-protected. -- -- This creates an extaneous self-transclusion for all pages using the -- module, but we treat that as a necessary evil. do mw.title.getCurrentTitle():getContent() -- Generate self-transclusion local parent_title = frame:getParent():getTitle() if not mw.title.new(parent_title).cascadingProtection.sources[1] then warnings[#warnings + 1] = make_wikitext_warning(string.format( 'the page "%s" is not cascade-protected', parent_title )) end end -- Generate transclusions to the templates, and build the output list. for i, item in ipairs(frame.args) do item = mw.text.trim(item) local title = mw.title.new(item) if title then local ns = title.namespace local prefixed_text = title.prefixedText if ns == 0 then -- The item had no namespace text. If the item starts with a -- colon, assume it is a mainspace page. Otherwise, assume it is -- a template. if item:sub(1, 1) == ':' then generate_transclusion(title) table.insert(transclusion_list, '* [[' .. prefixed_text .. ']]') else generate_transclusion('Template:' .. prefixed_text) table.insert(transclusion_list, '* [[Template:' .. prefixed_text .. ']]') end elseif ns == 6 or ns == 14 then -- File or Category namespace generate_transclusion(title) table.insert(transclusion_list, '* [[:' .. prefixed_text .. ']]') else generate_transclusion(title) table.insert(transclusion_list, '* [[' .. prefixed_text .. ']]') end else warnings[#warnings + 1] = make_wikitext_warning(string.format( 'invalid title "%s" in argument #%d', item, i )) end end if frame.args.silent then return '' else -- If there were any warnings, show them at the top. Then show the list -- of transcluded pages. local ret = '' if #warnings > 0 then if #warnings > 1 then for i, warning in ipairs(warnings) do warnings[i] = '* ' .. warning end end ret = ret .. table.concat(warnings, '\n') .. '\n\n' end return ret .. table.concat(transclusion_list, '\n') end end return export'
Unified diff of changes made by edit (edit_diff)
'@@ -15,5 +15,5 @@ local function make_wikitext_warning(msg) - return string.format('<strong class="warning">Warning: %s.</strong>', msg) + return string.format('<strong class="error">Warning: %s.</strong>', msg) end '
New page size (new_size)
3877
Old page size (old_size)
3879
Size change in edit (edit_delta)
-2
Lines added in edit (added_lines)
[ 0 => ' return string.format('<strong class="error">Warning: %s.</strong>', msg)' ]
Whether or not the change was made through a Tor exit node (tor_exit_node)
false
Unix timestamp of change (timestamp)
1620066850