Ugrás a tartalomhoz

Modul:Dobszay

A Wikipédiából, a szabad enciklopédiából

Dobszay[mi ez?] • [dokumentáció: mutat, szerkeszt] • [tesztek: létrehozás]

Dobszay László: A magyar dal könyve és Vargyas Lajos: A magyarság népzenéje című könyvének fejezetei az interneten külön lapon vannak. A modul linket ad vissza a kottát tartalmazó fejezetre (Dobszay) ill. a kottára (Vargyas).

A modult a {{Dal infobox}}(?) használja.

local dalkonyv = {}

local function szam(param)
	-- elhagyjuk a kottaszám végéről a betűt (ha van)
	return tonumber( string.match( param, '^%d+' ) )
end
 
function dalkonyv.dobszay(frame)
	-- A fejezetek kezdő kottaszámai
	local fejezet = { 0, 121, 146, 179, 238, 260, 274, 301, 340, 370, 394, 401, 421, 456, 489, 500, 539, 546, 651 }
	local link = '[http://www.tankonyvtar.hu/hu/tartalom/tamop425/2011_0001_550_a_magyar_dal_konyve/ch%02d.html %s]'
	
	param = frame.args['kotta']
	kotta = szam(param)
	
	if not kotta then
		return param                     -- hibás bemenő paraméter: nem teszünk rá linket
	end
	
	for i, v in ipairs( fejezet ) do     -- megkeressük, melyik fejezetben van a kotta
		if kotta < v then
			return string.format( link, i, param )
		end
	end
end

function dalkonyv.vargyas2(frame)
	-- A fejezetek kezdő kottaszámai
	local daltar = { 146, 153, 197, 208, 247, 255, 256, 303, 311, 319, 395 }
	local fejezet = { 0, 46, 79, 104, 128, 135, 139, 147, 191, 206, 266, 269, 282 }
	
	param = frame.args['kotta']
	kotta = szam(param)
	
	if not kotta then
		return param                   -- hibás bemenő paraméter: nem teszünk rá linket
	end
	elso = string.sub(param,1,1)       -- a kottaszám első karaktere 0: dallamtár, egyébként fejezetszám
	if elso == '0' then
		tomb = daltar
	else
		tomb = fejezet
	end
	
	urleleje = '['..'http://www.tankonyvtar.hu/hu/tartalom/tkt/magyarsag-nepzeneje/ch'
	urlvege  = ' '..param..']'
	for i, v in ipairs( tomb ) do          -- megkeressük, melyik fejezetben van a kotta
		if kotta < v then                  -- megtaláltuk
			szam = string.format('%02d',i) -- i értéke két számjegyen
			if elso == '0' then            -- daltár
				if i == 1 then
					fej = ''
				else
					fej = 's'..szam
				end
				return urleleje..'14'..fej..'.html#dgy-'..param..urlvege
			else
				return urleleje..szam..'.html#dsz-'..param..urlvege
			end
		end
	end
end

return dalkonyv