本WIKI由呜呜kurumi申请于2021年03月15日创建,编辑权限开放

如有内容错误,可以联系站长呜呜kurumi提交错误,赛马娘WIKI力求给大家带来最好的体验,也欢迎训练员们和我们一起建设
bugfix0531
全站通知:

模块:文档解析

来自赛马娘WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:文档解析/doc创建

local p={}
function split(input, delimiter)
    input = tostring(input)
    delimiter = tostring(delimiter)
    if (delimiter == "") then return false end
    local pos, arr = 0, {}
    for st, sp in function() return string.find(input, delimiter, pos, true) end do
        table.insert(arr, string.sub(input, pos, st - 1))
        pos = sp + 1
    end
    table.insert(arr, string.sub(input, pos))
    return arr
end

p['文档解析']=function(frame)
	local a=frame.args['text']
	local title1='<h1>%s</h1>'
	local title2='<h2>%s</h2>'
	local title3='<h3>%s</h3>'
	local graphic='[[file:%s]]'
	local video='<div class="panel panel-info"><div class="panel-heading"><span class="clearfix show paneltitle" data-toggle="collapse" data-parent="#mc_accordion-1" data-target="#mc_collapse-%d"><span class="panel-title pull-left"><span style="font-weight:bold;color: #31708f">%s</span></span><span class="badge pull-right">展开/折叠</span></span></div><div id="mc_collapse-%d" class="panel-body panel-collapse collapse"><div style="overflow-x:auto"><div class="bvideo" data-id="%s" data-cid="0" data-page="%d" data-title="%s" data-width="720" data-height="360"></div></div></div></div>'
	local temp=''
	local text='%s<br>'
	local j=split(a,'\n')
	local counter=100
	for i, v in ipairs(j) do
	    if string.match(v,'图片') then
	        local start=string.find(v,'%(图片.*',0)+8
	        local final=string.find(v,')',start)-1
	        local gphname=string.sub(v,start,final)
	        v=string.sub(v,1,start-9)..string.format(graphic,gphname)..string.sub(v,final+2)
	        
	    end
		if string.match(v,'BV号') then
	        local start=string.find(v,'%(BV号.*',0)+8
	        local final=string.find(v,')',start)-1
	        local page=1
	        local videoinfo=split(string.sub(v,start,final),',')
	        if #videoinfo>2 then
	        	page=videoinfo[3]
	        end
	        v=string.format(video,counter,videoinfo[2],counter,'B'..videoinfo[1],page,videoinfo[2])
	        counter=counter-1
	    end
	
	    if string.match(v,'h1') then
	        v=string.format(title1,string.sub(v,3))
	    elseif string.match(v,'h2') then
	        v=string.format(title2,string.sub(v,3))
	    elseif string.match(v,'h3') then
	        v=string.format(title3,string.sub(v,3))
	
	    else
	        v=string.format(text,v)
	    end
	    temp=temp..v
	
	end
	frame:callParserFunction{name='#vardefine',args={"text",temp}}
end
p['加载图集']=function(frame)
	local gphs=frame.args['gphs']
	gphs=split(gphs,',')
	local txt=''
	for i, v in ipairs(gphs) do
		txt=txt..'[[file:'..v..']]'
	end
	
	frame:callParserFunction{name='#vardefine',args={"图集",txt}}
end
p['多贡献者解析']=function(frame)
	local contributors=frame.args['贡献者']
	contributors=split(contributors,':')

	frame:callParserFunction{name='#vardefine',args={"贡献者用户名",contributors[1]}}
	frame:callParserFunction{name='#vardefine',args={"贡献者id",contributors[2]}}
end
return p