编辑“Module:Topic list

跳到导航 跳到搜索
警告:您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您登录创建一个账户,您的编辑将归属于您的用户名,且将享受其他好处。

该编辑可以被撤销。 请检查下面的对比以核实您想要撤销的内容,然后发布下面的更改以完成撤销。

最后版本 您的文本
第1行: 第1行:
-- 中文Minecraft Wiki同名模块,原作者为Star00和MysticNebula70
-- 授权协议:CC BY-NC-SA 3.0
local p = {}
local p = {}


第14行: 第11行:
:gsub('Special:Contributions/(%d+%.%d+%.%d+%.%d+)', 'User:ip:%1')
:gsub('Special:Contributions/(%d+%.%d+%.%d+%.%d+)', 'User:ip:%1')
:gsub('Special:Contribs/(%d+%.%d+%.%d+%.%d+)', 'User:ip:%1')
:gsub('Special:Contribs/(%d+%.%d+%.%d+%.%d+)', 'User:ip:%1')
:gsub('用户', 'User')
:gsub('[[ 用户', 'User')
:gsub('user', 'User')
:gsub('[[user', 'User')
:gsub('UTC', 'CST')
return talk
return talk
end
end


function titleStrip(talk)
function titleConv(talk)
-- 论题转换
-- 论题转换
talk = talk
talk = talk
:gsub('===(.-)===', '%1')
:gsub('<.->', '')
:gsub('%[%[', '')
:gsub('|.-%]%]', '')
:gsub('%]%]', '')
:gsub('^%s', '')
:gsub('%s$', '')
return talk
return talk
end
function titleConv(title)
-- 论题转换
title = title
:gsub('<.->', '')
:gsub('%[%[:?.-|(.-)%]%]', '%1')
:gsub('%[%[:?(.-)%]%]', '%1')
return title
end
end


第55行: 第47行:


function getTimeStyle(time)
function getTimeStyle(time)
if time == ' 该讨论主题已被移动' then
if time == ' 未知日期' then
return 'background-color: #fee;'
return 'background-color: #fee;'
end
end
第87行: 第79行:
function trim(text)
function trim(text)
-- remove special strip markers and spaces
-- remove special strip markers and spaces
text = mw.text.killMarkers(text):gsub('^[%s\t\r\n\f]*(.-)[%s\t\r\n\f]*$', '%1')
text = mw.text.killMarkers(text):gsub('^[\t\r\n\f]*(.-)[\t\r\n\f]*$', '%1')
return text
return text
end
end
第117行: 第109行:


function getTitleList(pageName)
function getTitleList(pageName)
local talk = titleStrip(mw.getCurrentFrame():expandTemplate {title = ':' .. pageName})
local talk = conv(mw.getCurrentFrame():expandTemplate {title = ':' .. pageName})
local titleList = {}
local titleList = {}
for title in talk:gmatch '==(.-)==' do
for title in talk:gmatch '==(.-)==' do
titleList[#titleList + 1] = titleConv(trim(title))
titleList[#titleList + 1] = title
end
end


第127行: 第119行:


function getTalkTime(talk)
function getTalkTime(talk)
local result = talk:match '[%s%S]*(%d%d%d%d.*) %(CST%)' or ' 该讨论主题已被移动'
local result = talk:match '[%s%S]*(%d%d%d%d.*) %(CST%)' or ' 未知日期'


return result
return result
第136行: 第128行:
local userList = {}
local userList = {}
if text:match '[^\n]*User:([^\n]-)%|[^\n]-CST' == nil then
if text:match '[^\n]*User:([^\n]-)%|[^\n]-CST' == nil then
return {userNum = '-', uniqueUserNum = '-', firstUser = '-', lastUser = '-'}
return {userNum = '?', uniqueUserNum = '?', firstUser = '?', lastUser = '?'}
end
end
for user in text:gmatch '[^\n]*User:([^\n]-)%|[^\n]-CST' do
for user in text:gmatch '[^\n]*User:([^\n]-)%|[^\n]-CST' do
第150行: 第142行:
function generateTable(pageName, talkTitle, talkText)
function generateTable(pageName, talkTitle, talkText)
local body = {
local body = {
'{| class="wikitable sortable mw-collapsible talktable" style="text-align: center; margin: 0 auto; width: 100%;"',
'{| class="wikitable sortable collapsible talktable" style="text-align: center;"',
'|-',
'|-',
'! # !! 话题 !! 发言条 数 !! 参与人 数 ',
'! # !! 话题 !! 发言条数 ',
'! class="talkpage-topic-list-author" | 发起者',
'! class="talkpage-topic-list-author" | 发起者',
'! class="talkpage-topic-list-last-editor" | 最后发言者',
'! class="talkpage-topic-list-last-editor" | 最后发言者',
第175行: 第167行:
'|-',
'|-',
'! style="' .. serialStyle .. '" | ' .. i,
'! style="' .. serialStyle .. '" | ' .. i,
'| [[' .. pageName .. '#' .. talkTitle[i] .. '|' .. talkTitle[i].. ']]',
'| [[' .. pageName .. '#' .. titleConv(trim(talkTitle[i])) .. '|' .. titleConv(trim(talkTitle[i])) .. ']]',
'| style="' .. userStyle .. '" | ' .. userInfo.userNum,
'| style="' .. userStyle .. '" | ' .. userInfo.userNum,
     '| style="' .. uniqueUserStyle .. '" | ' .. userInfo.uniqueUserNum,
'| class="talkpage-topic-list-author" |' .. makeUserLink(userInfo.firstUser),
'| class="talkpage-topic-list-author" | ' .. makeUserLink(userInfo.firstUser),
'| class="talkpage-topic-list-last-editor" style="' .. timeStyle .. '" | ' .. makeUserLink(userInfo.lastUser),
'| class="talkpage-topic-list-last-editor" style="' .. timeStyle .. '" | ' .. makeUserLink(userInfo.lastUser),
'| class="talkpage-topic-list-time" style="' .. timeStyle .. '" | ' .. time
'| class="talkpage-topic-list-time" style="' .. timeStyle .. '" | ' .. time
第196行: 第187行:


local talkTitle, talkText = getTitleList(args[1]), getTalkList(args[1])
local talkTitle, talkText = getTitleList(args[1]), getTalkList(args[1])
if #talkTitle ~= #talkText then
return error 'Topic list获取错误。'
end
for i = 1, #talkTitle do
for i = 1, #talkTitle do
talkTitle[i] = f:preprocess(talkTitle[i])
talkTitle[i] = f:preprocess(talkTitle[i])
end
end
return generateTable(args[1], talkTitle, talkText)
local result = generateTable(args[1], talkTitle, talkText)
 
if #talkTitle == #talkText then
return result
else
return error 'Topic list获取错误。'
end
end
end


return p
return p
请注意您对H萌娘的所有贡献都被认为是在知识共享署名-相同方式共享下发布,请查看在H萌娘:版权的细节。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源。 未经许可,请勿提交受版权保护的作品!
取消 编辑帮助(在新窗口中打开)
预览使用本模板的页面