Module:Sandbox/Chao

local p = {} local cargo = mw.ext.cargo

function p.BBRadio( frame ) intro = frame.args['intro'] or '' intro = html_escape(intro) limit = frame.args['limit'] or 100 link_parts = { 'tables=Files,BBRadio_Cuts', 'fields=Files._pageName, Files.Caption', 'where=Files.Characters HOLDS "' .. html_escape(frame.args[1]) .. '" AND BBRadio_Cuts.Season="' .. frame.args[2] .. '"', 'join_on=Files._pageName=BBRadio_Cuts._pageName', 'order_by=_pageName', 'format=gallery', 'offset=0', 'limit=' .. limit, 'default=', 'intro=' .. intro, 'show bytes=0', 'show dimensions=0', 'show filename=0', 'caption field=Caption', 'image width=250' }	link = html_escape(concatvalues(link_parts,"&")) parts = { 'https://blazblue.wiki/index.php\?title=Special:ViewData&', link, '">'	}	final_link = concatvalues(parts,"")	mw.log(final_link)	return final_link end

-- concat all the strings in table s together with the given delimiter function concatvalues(s,delimiter) local t = { } for k,v in ipairs(s) do       t[#t+1] = tostring(v) end return table.concat(t,delimiter) end

function html_escape(s) return (string.gsub(s, "[<>\"'/ ,]", {       ["<"] = "%3C",        [">"] = "%3E",        ['"'] = "%22", ["'"] = "%27",       ["/"] = "%2F", [" "] = "+",       [","] = "%2C" })) end

return p