无编辑摘要
imported>=海豚= 无编辑摘要 |
imported>=海豚= 无编辑摘要 |
||
第2行: | 第2行: | ||
local getArgs = require('Module:Arguments').getArgs | local getArgs = require('Module:Arguments').getArgs | ||
function conv(talk) | |||
-- 关键词替换 | |||
-- 如有字符导致生成错误,请在这里添加转换 | |||
talk = talk | |||
:gsub('===(.-)===', '%1') | |||
:gsub('Special:用户贡献/(%d+%.%d+%.%d+%.%d+)', 'User:ip:%1') -- handle ip user first | |||
:gsub('Special:Contributions/(%d+%.%d+%.%d+%.%d+)', 'User:ip:%1') | |||
:gsub('Special:Contribs/(%d+%.%d+%.%d+%.%d+)', 'User:ip:%1') | |||
:gsub('用户', 'User') | |||
:gsub('user', 'User') | |||
return talk | |||
end | |||
function titleConv(talk) | |||
-- 论题转换 | |||
talk = talk | |||
:gsub('<.->', '') | |||
:gsub('%[%[', '') | |||
:gsub('|.-%]%]', '') | |||
:gsub('%]%]', '') | |||
:gsub('^%s', '') | |||
:gsub('%s$', '') | |||
return talk | |||
end | |||
function table.unique(t, bArray) | function table.unique(t, bArray) | ||
第47行: | 第72行: | ||
end | end | ||
return "" | return "" | ||
end | end | ||
第111行: | 第113行: | ||
function getTalkTime(talk) | function getTalkTime(talk) | ||
local result = talk:match '[%s%S]*(%d%d%d%d.*) %(CST%)' or '未知日期' | |||
return result | |||
end | end | ||
第117行: | 第121行: | ||
-- 输入讨论的文本,输出和User有关的转换部分table | -- 输入讨论的文本,输出和User有关的转换部分table | ||
local userList = {} | local userList = {} | ||
for user in text:gmatch 'User:([^\n]-)%|[^\n]-CST' do | if text:match '[^\n]*User:([^\n]-)%|[^\n]-CST' == nil then | ||
return {userNum = '?', uniqueUserNum = '?', firstUser = '?', lastUser = '?'} | |||
end | |||
for user in text:gmatch '[^\n]*User:([^\n]-)%|[^\n]-CST' do | |||
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, true)) | ||
return {userNum = userNum, uniqueUserNum = uniqueUserNum, firstUser = userList[1], lastUser = userList[#userList]} | return {userNum = userNum, uniqueUserNum = uniqueUserNum, firstUser = userList[1], lastUser = userList[#userList]} | ||
第131行: | 第138行: | ||
'{| class="wikitable sortable collapsible talktable" style="text-align: center;"', | '{| class="wikitable sortable collapsible talktable" style="text-align: center;"', | ||
'|-', | '|-', | ||
'! # !! 话题 !! 发言条数 !! 参与人数 ! | '! # !! 话题 !! 发言条数 !! 参与人数 ', | ||
'! class="talkpage-topic-list-author" | 发起者', | |||
'! class="talkpage-topic-list-last-editor" | 最后发言者', | |||
'! class="talkpage-topic-list-time" | 最后发言时间(CST)' | '! class="talkpage-topic-list-time" | 最后发言时间(CST)' | ||
} | } | ||
第152行: | 第161行: | ||
'|-', | '|-', | ||
'! style="' .. serialStyle .. '" | ' .. i, | '! style="' .. serialStyle .. '" | ' .. 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), | '| class="talkpage-topic-list-author" |' .. makeUserLink(userInfo.firstUser), | ||
'| 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 | ||
}, | }, |