Module:Submit an edit request: Difference between revisions
From Zoophilia Wiki
Jump to navigationJump to search
meta>Mr. Stradivarius various bug fixes |
meta>Mr. Stradivarius don't pass the query string through the uri object so that we can be sure that the parameters are in the right order |
||
| Line 87: | Line 87: | ||
local query = {} | local query = {} | ||
query[#query + 1] = encode('preload', preloadTemplate) | query[#query + 1] = encode('preload', preloadTemplate) | ||
query[#query + 1] = encode('editintro', editintro) | query[#query + 1] = encode('editintro', editintro) | ||
| Line 95: | Line 94: | ||
query[#query + 1] = encode('preloadparams[]', titleObj.prefixedText) | query[#query + 1] = encode('preloadparams[]', titleObj.prefixedText) | ||
local url = mw.uri.fullUrl(talkpagename, table.concat(query, '&' | local url = mw.uri.fullUrl(talkpagename, {action = 'edit'}) | ||
return | url = tostring(url) .. '&' .. table.concat(query, '&') | ||
return url | |||
end | end | ||
return p | return p | ||
Revision as of 07:16, 10 June 2014
Documentation for this module may be created at Module:Submit an edit request/doc
-- This module implements {{Submit an edit request}}.
local cfg = {}
cfg['preload-template'] = 'Template:Submit an edit request/preload'
cfg['preload-title-text'] = '$1 edit request on $2'
cfg['preload-title-date-format'] = 'j F Y'
cfg['semi-editintro'] = 'Template:Edit semi-protected/editintro'
cfg['semi-request-template'] = 'edit semi-protected'
cfg['semi-protectionlevel'] = 'Semi-protected'
cfg['template-editintro'] = 'Template:Edit template-protected/editintro'
cfg['template-request-template'] = 'edit template-protected'
cfg['template-protectionlevel'] = 'Template-protected'
cfg['full-editintro'] = 'Template:Edit protected/editintro'
cfg['full-request-template'] = 'edit protected'
cfg['full-protectionlevel'] = 'Protected'
local mRedirect = require('Module:Redirect')
local p = {}
local function message(key, ...)
local params = {...}
local msg = cfg[key]
if #params < 1 then
return msg
else
return mw.message.newRawMessage(msg):params(params):plain()
end
end
function p.makeRequestUrl(level, titleObj)
titleObj = titleObj or mw.title.getCurrentTitle()
local editintro, requestTemplate, levelText
do
local messages = {
semi = {
editintro = 'semi-editintro',
requestTemplate = 'semi-request-template',
levelText = 'semi-protectionlevel'
},
template = {
editintro = 'template-editintro',
requestTemplate = 'template-request-template',
levelText = 'template-protectionlevel'
},
full = {
editintro = 'full-editintro',
requestTemplate = 'full-request-template',
levelText = 'full-protectionlevel'
}
}
local levelMessages = messages[level]
editintro = message(levelMessages.editintro)
requestTemplate = message(levelMessages.requestTemplate)
levelText = message(levelMessages.levelText)
end
local preloadtitle, talkpagename
do
-- Get the date text.
local dateFormat = message('preload-title-date-format')
local lang = mw.language.getContentLanguage()
local date = lang:formatDate(dateFormat)
-- Get the talk page name, and resolve it if it is a redirect.
local namespace = titleObj.namespace
if namespace % 2 == 0 then
namespace = namespace + 1
end
talkpagename = mw.site.namespaces[namespace].name .. ':' .. titleObj.text
talkpagename = mRedirect.main{talkpagename}
preloadtitle = message('preload-title-text', levelText, date)
end
local preloadTemplate = message('preload-template')
local function encode(key, value)
key = mw.uri.encode(key)
value = mw.uri.encode(value)
return key .. '=' .. value
end
local query = {}
query[#query + 1] = encode('preload', preloadTemplate)
query[#query + 1] = encode('editintro', editintro)
query[#query + 1] = encode('preloadparams[]', requestTemplate)
query[#query + 1] = encode('preloadtitle', preloadtitle)
query[#query + 1] = 'section=new'
query[#query + 1] = encode('preloadparams[]', titleObj.prefixedText)
local url = mw.uri.fullUrl(talkpagename, {action = 'edit'})
url = tostring(url) .. '&' .. table.concat(query, '&')
return url
end
return p