模块:Old vfd multi
如果您计划大幅修改、移动或提出删除该模板,请在此页通知Twinkle的使用者与维护员。 Twinkle默认会用到该模板,修改可能会影响大量用户。谢谢您的配合! |
现由机器人每周维护讨论页之存废讨论纪录与模板 {{Old vfd multi}}。参见页面存废讨论维护报告。
|
此模块使用Lua语言: |
此模板一般在讨论页标示。
若某页面通过Wikipedia:页面存废讨论或Wikipedia:档案存废讨论后结果为保留或无共识保留,请在讨论页上挂{{Old vfd multi}}标示保留。
用法
{{Old vfd multi|提刪日期|處理結果|page=頁面名稱}}
- 注1:2008年8月12日起至今,提删日期的格式为“yyyy/mm/dd”(例:2024/12/24,链接到Wikipedia:页面存废讨论/记录/2024/12/24)。不过在此之前,提删日期的格式为“yyyy年m月d日”(例:2008年8月11日,删除讨论页的名称格式如Wikipedia:删除投票和请求/2008年8月11日,模板能向下兼容,所以早于2008年8月12日的日期,不论使用新旧格式均可。
- 注2:处理结果的格式一般可填入“保留”、“删除”、“无共识保留”等,亦可省略,预设结果为“保留”。
- 注3:page参数都可以省略,预设结果将由talk page产生。
处理结果之代码
- 保留(预设):kept, k, 保留
- 暂时保留:tk, 暂时保留, 暂时保留
- 快速保留:sk, 快速保留
- 删除:deleted, d, 删除
- 无共识:nc, 無共識, 无共识
- 移动:m, move, moved, 移動, 移动
- 合并:merge, merged, 并入, 合并
- 重定向:r, 重定向
- 无效:ir, 無效, 无效
- 请求理由已消失:rr
- 重新提交讨论:relist
多次存废讨论
- 加上“multi=1”之参数,即可变换成与{{Multidel}}相同外型之模板。
- 使用date2、result2、page2、target2可添加第二次存废讨论纪录。
- 目前最多可记录五次存废讨论纪录。
例子
输入:
{{Old vfd multi|2012/09/11|保留|page=司馬氏專權}}
将显示成:
输入:
{{Old vfd multi|2012/09/14|無共識|page=艾神}}
将显示成:
输入:
{{Old vfd multi|2012/09/19|併入|page=奥尔赛|奧賽}}
将显示成:
输入:
{{Old vfd multi|2012/09/14|重定向|page=Ren|NU'EST}}
将显示成:
输入:
{{Old vfd multi|2011/06/10|移動|page=基督教统治者联盟|皮埃尔·杜波依斯}}
将显示成:
输入:
{{Old vfd multi|2012/09/14|快速保留|page=李若虛 (宋朝)}}
将显示成:
输入:
{{Old vfd multi|2012/09/14|無效|page=艾薇薇}}
将显示成:
输入:
{{Old vfd multi|2012/09/27|rr|page=將軍澳體育館}}
将显示成:
多次存废讨论
输入:
{{Old vfd multi|2008/07/09|刪除|page=爆吧
| multi = 1
| date2 = 2010/7/2 | page2 = 爆吧 | result2 = 保留
| date3 = 2012/3/11 | page3 = 爆吧 | result3 = 重定向 | target3 = 百度貼吧
| date4 = 2012/4/13 | page4 = 爆吧 | result4 = 保留
}}
将显示成:
本页面曾被多次送交存废讨论。
若要再次提交存废讨论,请先参考下列过往讨论记录: |
重定向
- {{Oldafdfull}}
- {{Vfd-kept}}
- {{存废讨论被保留}}
- {{页面存废讨论被保留}}
另见
local ovm={}
local getArgs
local timeParserFunction
local head=[[
{| class="plainlinks tmbox tmbox-notice"
|-
| class="mbox-image" | ]]..'[[File:Clipboard.svg|50px|link=]]\n'..[[
| class="mbox-text" | ]]
local foot='|}'
local resultFunctionMap={
['cc']=function(args,index) return [['''撤回請求''']] end,
['kept']=function(args,index) return [['''保留''']] end,
['nc']=function(args,index) return [['''無共識''',本页面暫時'''保留''']] end,
['move']=function(args,index)
local target=''
if index==1 then
target=args['3']
end
if target=='' or target==nil then
target=args['target'..index]
end
if target=='' or target==nil then
target='其他位置'
else
target='[['..target..']]'
end
return [['''移動'''到]]..target
end,
['r']=function(args,index)
local target=''
if index==1 then
target=args['3']
end
if target=='' or target==nil then
target=args['target'..index]
end
if target~='' and target~=nil then
target='至[['..target..']]'
else
target=''
end
return [['''-{A|zh-cn:重定向; zh-tw:重新導向;}-''']]..target
end,
['sk']=function(args,index) return [['''快速保留''']] end,
['ir']=function(args,index)
local type=( args['type'] or args ['Type'] ) or '請求'
return type..[['''無效''']]
end,
['rr']=function(args,index) return [['''請求理由已消失''',页面'''保留''']] end,
['merge']=function(args,index)
local target=''
if index==1 then
target=args['3']
end
if target=='' or target==nil then
target=args['target'..index]
end
if target=='' or target==nil then
target='其他位置'
else
target='[['..target..']]'
end
return [['''併入''']]..target
end,
['deleted']=function(args,index) return [['''刪除''']] end,
['sd']=function(args,index) return [['''快速刪除''']] end,
['tk']=function(args,index) return [['''暫時保留''']] end,
['cv']=function(args,index) return [['''轉送]]..'[[Wikipedia:頁面存廢討論/疑似侵權|疑似侵權討論]]'..[[''']] end,
['relist']=function(args,index) return [['''重新提交討論''']] end,
['_default_']=function(args,index)
local result=((index ==1 and args['2']) or args['result'..index]) or [['''保留''']]
return result
end
}
local resultMap={
['cc']=resultFunctionMap['cc'],
--
['kept']=resultFunctionMap['kept'],
['k']=resultFunctionMap['kept'],
['保留']=resultFunctionMap['kept'],
--
['nc']=resultFunctionMap['nc'],
['無共識']=resultFunctionMap['nc'],
['无共识']=resultFunctionMap['nc'],
--
['m']=resultFunctionMap['move'],
['moved']=resultFunctionMap['move'],
['move']=resultFunctionMap['move'],
['移動']=resultFunctionMap['move'],
['移动']=resultFunctionMap['move'],
--
['r']=resultFunctionMap['r'],
['重定向']=resultFunctionMap['r'],
['重新導向']=resultFunctionMap['r'],
--
['sk']=resultFunctionMap['sk'],
['快速保留']=resultFunctionMap['sk'],
['速留']=resultFunctionMap['sk'],
--
['ir']=resultFunctionMap['ir'],
['無效']=resultFunctionMap['ir'],
['无效']=resultFunctionMap['ir'],
--
['rr']=resultFunctionMap['rr'],
--
['merge']=resultFunctionMap['merge'],
['merged']=resultFunctionMap['merge'],
['併入']=resultFunctionMap['merge'],
['合併']=resultFunctionMap['merge'],
['并入']=resultFunctionMap['merge'],
['合并']=resultFunctionMap['merge'],
--
['deleted']=resultFunctionMap['deleted'],
['d']=resultFunctionMap['deleted'],
['刪除']=resultFunctionMap['deleted'],
['删除']=resultFunctionMap['deleted'],
--
['sd']=resultFunctionMap['sd'],
['speedy delete']=resultFunctionMap['sd'],
['快速刪除']=resultFunctionMap['sd'],
['快速删除']=resultFunctionMap['sd'],
--
['tk']=resultFunctionMap['tk'],
['暫時保留']=resultFunctionMap['tk'],
['暂时保留']=resultFunctionMap['tk'],
--
['cv']=resultFunctionMap['cv'],
['copyvio']=resultFunctionMap['cv'],
['侵權']=resultFunctionMap['cv'],
['侵权']=resultFunctionMap['cv'],
--
['relist']=resultFunctionMap['relist'],
--
['_default_']=resultFunctionMap['_default_']
}
--检查
function isDate(inputStr)
local pass=true
local model = {'(%d%d%d%d)年(%d%d?)月(%d%d?)日','(%d%d%d%d)/(%d%d?)/(%d%d?)','(%d%d%d%d)(%d%d?)(%d%d?)'}
local year,month,day=nil,nil,nil
for _,_model in ipairs( model ) do
year,month,day=nil,nil,nil
for y,m,d in mw.ustring.gmatch('2022年11月12日','(%d%d%d%d)年(%d%d)月(%d%d)日') do
year,month,day=y,m,d
break
end
if year~=nil and month~=nil and day~=nil then
year,month,day=tonumber(year),tonumber(month),tonumber(day)
break
else
pass=false
end
end
if pass then
if year <=2001 then
return false
else
if (1<=month and month<=12) and day >=1 then
local m1={[1]=true,[3]=true,[5]=true,[7]=true,[8]=true,[10]=true,[12]=true}
local m2={[4]=true,[6]=true,[9]=true,[11]=true}
local leapyear=((year %4 ==0) and (year %100 ~=0 )) or (year%400==0)
if (m1[month] and day<=31) or
(m2[month] and day<=30) or
(month==2 and ((leapyear and day<=29) or (day<=28 and not leapyear)) )
then
return year,month,day
else
return false
end
else
return false
end
end
else
return false
end
end
function generateDateLink(index,args,timestampVal,pageVal,isOnlyOne)
--mw.log(index,args,timestampVal,pageVal,isOnlyOne)
local pageType=args['_namespacenum_']==7 and '檔案' or '頁面'
local t_date,isDate=nil,false
local dateStr=''
-- 测试1
t_date=ovm.timeParserFunction('Ymd',timestampVal)
if t_date==false then
--测试2
t_date=ovm.timeParserFunction('Y年n月j日',timestampVal)
if t_date==false then
dateStr=timestampVal or ''
else
dateStr=timestampVal
isDate=true
end
else
dateStr=timestampVal
isDate=true
end
local afdlink=''
--存废记录链接
if isDate==false then
afdlink=[[''']]..'[[Wikipedia:删除投票和请求/'..dateStr..'#'..pageVal..'|讨论结果]]'..[[''']]
else
t_date=ovm.timeParserFunction('Ymd',timestampVal)
if t_date~=false and t_date < '20080812' then
t_date=ovm.timeParserFunction('Y年n月j日',timestampVal)
t_date = (t_date~=false and t_date) or ''
afdlink=[[''']]..'[[Wikipedia:删除投票和请求/'..t_date..'#'..pageVal..'|讨论结果]]'..[[''']]
else
t_date=ovm.timeParserFunction('Y/m/d',timestampVal)
t_date = (t_date~=false and t_date) or ''
afdlink=[[''']]..'[[Wikipedia:'..pageType..'存廢討論/記錄/'..t_date..'#'..pageVal..'|讨论结果]]'..[[''']]
end
end
--
local resultVal = (index ==1 and args['2']) or args['result'..index] or ''
local resultFunction = resultMap['_default_']
if (resultVal~=nil and resultVal~='') and resultMap[string.lower(resultVal)]~=nil then
--mw.log("select:",string.lower(resultVal))
resultFunction = resultMap[string.lower(resultVal)]
end
local result = resultFunction(args,index)
--mw.log(resultVal,result)
--
local head=''
if isOnlyOne then
t_date=ovm.timeParserFunction('Y年n月j日',timestampVal)
head='本'..pageType..'曾於'..((t_date~=false and t_date) or timestampVal)..'被送交[[Wikipedia:删除方针#存废讨论|存廢討論]],'
else
t_date=ovm.timeParserFunction('Y年n月j日',timestampVal)
head='* '..((t_date~=false and t_date) or timestampVal)..','
end
--
return head..afdlink..'為'..result..'。'
end
function ovm._main(args)
local items={}
local isMulti = (args['multi']~=nil and args['multi']~='')
if isMulti then
--多模式
table.insert(items,
[[<div align="center">'''本頁面曾被多次送交]]..'[[Wikipedia:删除方针#存废讨论|存廢討論]]'
..[[。'''<br/>若要再次提交存廢討論,請先參考下列過往討論記錄:</div>]])
end
--
local index=1
while true do
local dateStr= (index ==1 and args['1']) or args['date'..index]
if (dateStr=='' or dateStr == nil) then
break
else
local pageStr = (( index == 1 and args['page'] ) or args['page'..index]) or args['_subpagename_']
local str=generateDateLink(index,args,dateStr,pageStr,(not isMulti))
table.insert(items,str)
index = index + 1
end
if not isMulti then --单模式的话,跳出
break
end
end
--
table.insert(items,1,head)
table.insert(items,foot)
return table.concat(items,'\n')
end
function ovm.main(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
local args = getArgs(frame, {parentFirst=true})
local curPage_obj=mw.title.getCurrentTitle()
args["_subpagename_"] = curPage_obj.subjectPageTitle.prefixedText
args["_namespacenum_"] = curPage_obj.namespace
timeParserFunction=function(formatStr,timestamp)
--local func=frame.callParserFunction
--return frame:callParserFunction( '#time', formatStr, timestamp)
local lang=mw.getContentLanguage()
local ok,result=pcall(lang.formatDate,lang,formatStr,timestamp,true)
--mw.log(timestamp,ok,result)
if ok then
return result
else
return false
end
end
ovm.timeParserFunction=timeParserFunction
return ovm._main(args)
end
return ovm