Module:Topic list:修订间差异

删除545字节 、​ 2021年5月19日 (星期三)
无编辑摘要
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')
: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)
第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)
local result = talk:match '[%s%S]*(%d%d%d%d.*) %(CST%)' or '未知日期'
return talk:match '[%s%S]*(%d%d%d%d.*) %(CST%)'
 
return result
end
end


第122行: 第117行:
-- 输入讨论的文本,输出和User有关的转换部分table
-- 输入讨论的文本,输出和User有关的转换部分table
local userList = {}
local userList = {}
if text:match '[^\n]*User:([^\n]-)%|[^\n]-CST' == nil then
for user in text:gmatch 'User:([^\n]-)%|[^\n]-CST' do
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, true))
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; float: left;"',
'{| 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)'
}
}
第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,
'| class="talkpage-topic-list-author" |' .. makeUserLink(userInfo.firstUser),
'| ' .. makeUserLink(userInfo.firstUser),
'| class="talkpage-topic-list-last-editor" style="' .. timeStyle .. '" | ' .. makeUserLink(userInfo.lastUser),
'| style="' .. timeStyle .. '" | ' .. makeUserLink(userInfo.lastUser),
'| class="talkpage-topic-list-time" style="' .. timeStyle .. '" | ' .. time
'| class="talkpage-topic-list-time" style="' .. timeStyle .. '" | ' .. time
},
},
匿名用户