6,571
个编辑
小 (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 | if string.format("%02d", t_time.month)~="00" then return timestyle1 end | ||
if tonumber(string.format("%02d", t_time.day))>= | if tonumber(string.format("%02d", t_time.day))>=time2 then return timestyle2 end | ||
if tonumber(string.format("%02d", t_time.day))>= | if tonumber(string.format("%02d", t_time.day))>=time3 then return timestyle3 end | ||
return | return timestyle4 | ||
end | end | ||
第96行: | 第162行: | ||
end | end | ||
return diff | return diff | ||
end | end | ||
第162行: | 第202行: | ||
function talk_time(talk) | function talk_time(talk) | ||
local result=string.match(talk,"[%s%S]*(%d%d%d%d.*) %( | 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:(.-)%|.- | 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>最后发言时间( | 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]= | if userinf[1]<=rare then userstyle=rarestyle else userstyle=[[]] end | ||
if userinf[2]= | 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) |