Module:沙盒/Economy666/SongCollectionMulti

可在Module:沙盒/Economy666/SongCollectionMulti/doc创建此模块的帮助文档

local mad = require 'Module:AnotherData'
local render = mw.html.create()
local p = {}

function p.main()
	local version_song={}
	local a2z = {}
	for _, song in ipairs(mad.listOf('songs', 'mobile')) do
		local id = song.id
		if song.version then
			if not version_song[song.version] then 
				version_song[song.version] = {}
				table.insert(a2z, song.version)
			end
			version_song[song.version][song.title_localized.en]=id
		end
	end
	
	function split(str, delimiter)
		local result = {}
		string.gsub(str, '[^'..delimiter..']+', function(w)
		table.insert(result, w)
		end)
		return result
	end
	
	local function ver_sort(a,b)
		local aa = split(a,'.')
		local bb = split(b,'.')
		local num_a=tonumber(aa[1])*100+tonumber(aa[2])
		local num_b=tonumber(bb[1])*100+tonumber(bb[2])
		return num_a>num_b
	end
	table.sort(a2z, ver_sort)
	
	for _,ver in pairs(a2z) do
		songs=version_song[ver]
		render
			:wikitext(('<h2>%s</h2>')
				:format(ver))
			:newline()
		local wt = render:tag 'table'
		wt:attr {class = 'wikitable', border = '1', cellspacing = '1', cellpadding = '5', style = 'text-align:center;width: 100%'}
			:tag 'tr'
			:tag 'th':attr {style = 'width: 50%;'}:wikitext '曲目名称':done()
			:tag 'th':attr {style = 'width: 50%;'}:wikitext 'ID':done()
		for name,id in pairs(songs) do
			wt:tag 'tr'
				:tag 'td':wikitext(name):done()
				:tag 'td':wikitext(id):done()
		end
	end
	return tostring(render)
end

return p