跳到内容

Module:Topic list:修订间差异

添加1,141字节 、​ 2021年4月3日 (星期六)
update
(update)
(update)
第1行: 第1行:
local p = {}
local p = {}
--
--配置文件
--
--讨论页使用的时区
time_zone="CST"
--当相差时间超过1个月,显示timestyle1的背景色。
timestyle1=[[background-color: #bbb;]]
--相差日数低于30日,大于time2时,显示timestyle2的背景色。
time2=7
timestyle2=[[background-color: #ddd;]]
--相差日数低于time2,大于time3时,显示timestyle3的背景色。
time3=1
timestyle3=[[]]
--相差日数低于time3时,显示timestyle4的背景色。
timestyle4=[[background-color: #efe;]]
--发言条数小于等于rare,显示rarestyle的背景色。
rare=1
rarestyle=[[background-color: #fcc;"]]
--发言人数小于等于rareind,显示rareindstyle的背景色。
rareind=1
rareindstyle=[[background-color: #fcc;"]]
--此函数为全部字符串的文本处理。当有字符影响生成时,在此处添加文本替换。
function cov(talk)
--关键词替换
--如有字符导致生成错误,请在这里添加转换
talk=string.gsub(talk, "===(.-)===", "%1")
talk=string.gsub(talk, "用户", "User")
talk=string.gsub(talk, "user", "User")
return talk
end
--此函数为表格内标题字符串的文本处理。当有字符影响生成时,在此处添加文本替换。
--此处本来应该添加内部链接功能,但由于神奇bug没有实装。
function link(text)
--此处添加导致链接工作不正常的文本
text=trim(trim(text))
text=string.gsub(text, " (.*)", "%1")
text=LuaReomve(text,"%[")
text=LuaReomve(text,"%]")
return text
end
--检查讨论是否结束
function close(text,timestyle)
--mcwiki
local yes=string.match(text, "closed%-topic%-yes")
local no=string.match(text, "closed%-topic%-no")
--arcaeawiki
local closed=string.match(text, "以下讨论已结束")
if yes then return [[background-color: #efe;]] end
if no then return [[background-color: #fee;]] end
if closed then return [[background-color: #efe;]] end
return timestyle
end
--
--拟库
--


function split(input, delimiter)
function split(input, delimiter)
第68行: 第130行:
return len
return len
end
end
--
--函数主体
--


function time_style(time)
function time_style(time)
第78行: 第144行:




if string.format("%02d", t_time.month)~="00" then return [[background-color: #bbb;]] end
if string.format("%02d", t_time.month)~="00" then return timestyle1 end
if tonumber(string.format("%02d", t_time.day))>=7 then return [[background-color: #ddd;]] end
if tonumber(string.format("%02d", t_time.day))>=time2 then return timestyle2 end
if tonumber(string.format("%02d", t_time.day))>=1 then return [[]] end
if tonumber(string.format("%02d", t_time.day))>=time3 then return timestyle3 end
return [[background-color: #efe;]]
return timestyle4
end
end


第96行: 第162行:
end
end
return diff
return diff
end
function close(text,timestyle)
local yes=string.match(text, "closed-topic-yes")
local no=string.match(text, "closed-topic-no")
if yes then return [[background-color: #efe;]] end
if no then return [[background-color: #fee;]] end
return timestyle
end
function cov(talk)
--关键词替换
--如有字符导致生成错误,请在这里添加转换
talk=string.gsub(talk, "===(.-)===", "%1")
talk=string.gsub(talk, "用户", "User")
talk=string.gsub(talk, "user", "User")
return talk
end
function link(text)
--此处添加导致链接工作不正常的文本
text=trim(trim(text))
text=string.gsub(text, " (.*)", "%1")
text=LuaReomve(text,"%[")
text=LuaReomve(text,"%]")
return text
end
end


第162行: 第202行:


function talk_time(talk)
function talk_time(talk)
local result=string.match(talk,"[%s%S]*(%d%d%d%d.*) %(CST%)")
local result=string.match(talk,"[%s%S]*(%d%d%d%d.*) %("..time_zone.."%)")
return result
return result
end
end
第169行: 第209行:
--输入讨论的文本,输出和User有关的转换部分table
--输入讨论的文本,输出和User有关的转换部分table
--1-4分别为发言条数,发言人数,发起人,最后发言的人。
--1-4分别为发言条数,发言人数,发起人,最后发言的人。
local match=string.gmatch (text,".-User:(.-)%|.-CST")
local match=string.gmatch (text,".-User:(.-)%|.-"..time_zone)
local userlist={}
local userlist={}
local user,firstuser,lastuser="","",""
local user,firstuser,lastuser="","",""
第190行: 第230行:


function get_table(talktitle,talktext)
function get_table(talktitle,talktext)
local result=[[<table class="wikitable sortable mw-collapsible" style="text-align:center"><tr><th>#</td><th>话题</td><th>发言</td><th>参与</td><th>发起者</td><th>最近发言</td><th>最后发言时间(CST)</td></tr>]]
local result=[[<table class="wikitable sortable mw-collapsible" style="text-align:center"><tr><th>#</td><th>话题</td><th>发言</td><th>参与</td><th>发起者</td><th>最近发言</td><th>最后发言时间(]]..time_zone..[[)</td></tr>]]
local tableend=[[</table>]]
local tableend=[[</table>]]
local part=""
local part=""
第199行: 第239行:
do
do
time,userinf=talk_time(talktext[i]),user_manage(talktext[i])
time,userinf=talk_time(talktext[i]),user_manage(talktext[i])
if userinf[1]==1 then userstyle=[[text-align: right;background-color: #fcc;"]] else userstyle=[[text-align: right;]] end
if userinf[1]<=rare then userstyle=rarestyle else userstyle=[[]] end
if userinf[2]==1 then userstyleind=[[text-align: right;background-color: #fcc;"]] else userstyleind=[[text-align: right;]] end
if userinf[2]<=rareind then userstyleind=rareindstyle else userstyleind=[[]] end
timestyle=close(talktext[i],time_style(time))
timestyle=close(talktext[i],time_style(time))
part=[[<tr><th>]]..i..[[</td><td>]]..link(talktitle[i])..[[</td><td style="]]..userstyle..[[">]]..userinf[1]..[[</td><td style="]]..userstyleind..[[">]]..userinf[2]..[[</td><td>]].."[[User:"..userinf[3].."|"..userinf[3].."]]"..[[</td><td style="]]..timestyle..[[">]].."[[User:"..userinf[4].."|"..userinf[4].."]]"..[[</td><td style="]]..timestyle..[[">]]..tostring(time)
part=[[<tr><th>]]..i..[[</td><td>]]..link(talktitle[i])..[[</td><td style="]]..userstyle..[[">]]..userinf[1]..[[</td><td style="]]..userstyleind..[[">]]..userinf[2]..[[</td><td>]].."[[User:"..userinf[3].."|"..userinf[3].."]]"..[[</td><td style="]]..timestyle..[[">]].."[[User:"..userinf[4].."|"..userinf[4].."]]"..[[</td><td style="]]..timestyle..[[">]]..tostring(time)