无编辑摘要
imported>=海豚= 无编辑摘要 |
imported>=海豚= 无编辑摘要 |
||
第2行: | 第2行: | ||
local getArgs = require('Module:Arguments').getArgs | local getArgs = require('Module:Arguments').getArgs | ||
function table.unique(t, bArray) | function table.unique(t, bArray) | ||
第73行: | 第47行: | ||
end | end | ||
return "" | return "" | ||
end | |||
function conv(talk) | |||
-- 关键词替换 | |||
-- 如有字符导致生成错误,请在这里添加转换 | |||
talk = talk | |||
:gsub('===(.-)===', '%1') | |||
:gsub('Special:用户贡献/', 'User:ip:') -- ip user handle first | |||
:gsub('用户', 'User') | |||
:gsub('user', 'User') | |||
return talk | |||
end | |||
function titleConv(talk) | |||
-- 论题转换 | |||
talk = talk | |||
:gsub('<.->', '') | |||
:gsub('%[%[', '') | |||
:gsub('|.-%]%]', '') | |||
:gsub('%]%]', '') | |||
:gsub('^%s', '') | |||
:gsub('%s$', '') | |||
return talk | |||
end | end | ||
第114行: | 第111行: | ||
function getTalkTime(talk) | function getTalkTime(talk) | ||
return talk:match '[%s%S]*(%d%d%d%d.*) %(CST%)' | |||
end | end | ||
第122行: | 第117行: | ||
-- 输入讨论的文本,输出和User有关的转换部分table | -- 输入讨论的文本,输出和User有关的转换部分table | ||
local userList = {} | local userList = {} | ||
for user in text:gmatch 'User:([^\n]-)%|[^\n]-CST' do | |||
for user in text:gmatch ' | |||
userList[#userList + 1] = user | userList[#userList + 1] = user | ||
end | end | ||
local userNum = #userList | local userNum = #userList | ||
local uniqueUserNum = #(table.unique(userList | local uniqueUserNum = #(table.unique(userList)) | ||
return {userNum = userNum, uniqueUserNum = uniqueUserNum, firstUser = userList[1], lastUser = userList[#userList]} | return {userNum = userNum, uniqueUserNum = uniqueUserNum, firstUser = userList[1], lastUser = userList[#userList]} | ||
第137行: | 第129行: | ||
function generateTable(talkTitle, talkText) | function generateTable(talkTitle, talkText) | ||
local body = { | local body = { | ||
'{| class="wikitable sortable collapsible talktable" style="text-align: center | '{| class="wikitable sortable collapsible talktable" style="text-align: center;"', | ||
'|-', | '|-', | ||
'! # !! 话题 !! 发言条数 !! 参与人数 | '! # !! 话题 !! 发言条数 !! 参与人数 !! 发起者 !! 最后发言者 ', | ||
'! class="talkpage-topic-list-time" | 最后发言时间(CST)' | '! class="talkpage-topic-list-time" | 最后发言时间(CST)' | ||
} | } | ||
第162行: | 第152行: | ||
'|-', | '|-', | ||
'! style="' .. serialStyle .. '" | ' .. i, | '! style="' .. serialStyle .. '" | ' .. i, | ||
'| [[#' .. titleConv(trim(talkTitle[i])) .. '|' .. titleConv(trim(talkTitle[i])) .. ']]', | '| ' .. '[[#' .. titleConv(trim(talkTitle[i])) .. '|' .. titleConv(trim(talkTitle[i])) .. ']]', | ||
'| style="' .. userStyle .. '" | ' .. userInfo.userNum, | '| style="' .. userStyle .. '" | ' .. userInfo.userNum, | ||
'| style="' .. uniqueUserStyle .. '" | ' .. userInfo.uniqueUserNum, | '| style="' .. uniqueUserStyle .. '" | ' .. userInfo.uniqueUserNum, | ||
' | '| ' .. makeUserLink(userInfo.firstUser), | ||
'| | '| style="' .. timeStyle .. '" | ' .. makeUserLink(userInfo.lastUser), | ||
'| class="talkpage-topic-list-time" style="' .. timeStyle .. '" | ' .. time | '| class="talkpage-topic-list-time" style="' .. timeStyle .. '" | ' .. time | ||
}, | }, |