Modulis:Šaha ārējās saites

Dokumentācijas ikona Moduļa dokumentācija[izveidot]
local p = {}
local getArgs = require('Module:Arguments').getArgs
local entity = mw.wikibase.getEntityObject()
local enikona = mw.getCurrentFrame():expandTemplate{ title="en ikona" }

function makeLink(url, text)
	
	result = "* [" .. url .. " " .. text .. "] "
									
return result
end

function get_param(args,names)
	result = ''
	for _,name in ipairs(names) do
		if args[name] then
			result = args[name]
			break
		end
	end
	
	return result
end

local data = {
	{{'fide','fideId'},'http://ratings.fide.com/card.phtml?event=','Šahista profils FIDE mājaslapā','P1440'},
	{{'chessgames','chessgamesId'},'http://www.chessgames.com/perl/chessplayer?pid=','Šahista profils chessgames.com mājaslapā','P1665'},
	{{'365chess'},'http://www.365chess.com/players/','Šahista profils 365chess.com mājaslapā','P3314'},
	{{'chesstempo'},'http://chesstempo.com/gamedb/player/','Šahista profils chesstempo.com mājaslapā','P3315'},
	{{'chess-db'},'http://chess-db.com/public/pinfo.jsp?id=','Šahista profils chess-db.com mājaslapā',''},
	{{'iccf','iccfId'},'https://www.iccf.com/player?id=','Korespondecšahista profils ICCF mājaslapā','P3316'},
	{{'olimp'},'http://www.olimpbase.org/players/','Šahista profils olimpbase.org mājaslapā (Pasaules šaha olimpiāde)',''},
	{{'olimp2'},'http://www.olimpbase.org/playerst/','Šahista profils olimpbase.org mājaslapā (Pasaules komandu šaha čempionāts)',''},
	{{'olimp3'},'http://www.olimpbase.org/playerse/','Šahista profils olimpbase.org mājaslapā (Eiropas komandu šaha čempionāts)',''},
	{{'olimp4'},'http://www.olimpbase.org/playersy/','Šahista profils olimpbase.org mājaslapā (Pasaules studentu komandu šaha čempionāts)',''},
	{{'olimp5'},'http://www.olimpbase.org/playersq/','Šahista profils olimpbase.org mājaslapā (Klāras Benediktas kauss)',''},
	{{'olimpw'},'http://www.olimpbase.org/playersw/','Šahista profils olimpbase.org mājaslapā (Pasaules sieviešu šaha olimpiāde)',''},
	{{'olimp2w'},'http://www.olimpbase.org/playersv/','Šahista profils olimpbase.org mājaslapā (Pasaules sieviešu komandu šaha čempionāts)',''},
	{{'olimp3w'},'http://www.olimpbase.org/playersu/','Šahista profils olimpbase.org mājaslapā (Eiropas sieviešu komandu šaha čempionāts)',''}
}

function one_id(id,link,label,wdprop)
	local result
	
	if id and id~='' then
		result = makeLink(link .. id, label) .. enikona
	elseif wdprop~='' and entity and entity.claims[wdprop] then
		if entity.claims[wdprop][1].mainsnak.snaktype == 'value' then
			result = makeLink(link .. entity.claims[wdprop][1].mainsnak.datavalue.value, label) .. enikona
		end
	end
	
	return result--table.concat( {id,link,label,wdprop,entity.claims[wdprop][1].mainsnak.datavalue.value}, "\n" )--result
end

function p._main(args)
	local outputtable = {}
	--local parentArgs = frame:getParent().args
	

	for _, params in pairs( data ) do
		table.insert(outputtable,one_id(get_param(args,params[1]),params[2],params[3],params[4]))
    end
	return table.concat( outputtable, "\n" )
end

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

return p