Modul:NOB
NOB[mi ez?] • [dokumentáció: mutat, ] • [tesztek: létrehozás]
local NOB = {}
function NOB.adatok(frame)
--A NOB.adatok az összes sablonnál használt, általános adatokat hívja be, ezt a többi funkció behívja --
--SABLON BEHÍVÁSOK
zaszlo = frame:expandTemplate{ title = 'Nemzeti zászló ' .. NOBkod .. ' NOB-kóddal', args = { ev, tipuskod } }
nemzetnev = frame:expandTemplate{ title = 'Nemzetnév ' .. NOBkod .. ' NOB-kóddal', args = { ev } }
--nevelo = frame:expandTemplate{ title = 'Nemzetnevek névelővel NOB-kóddal', args = { NOBkod , ev, tipuskod } }
--NOBkod = frame:expandTemplate{ title = 'Nemzetek régi NOB-kódjai' , args = { ev, NOBkod , tipuskod } }
--ÉVSZÁM NÉVELŐJE
evTrim = mw.text.trim( ev )
first = mw.ustring.sub(evTrim, 1, 1) -- évszám első karaktere
length = mw.ustring.len(evTrim) -- évszám hossza (karakterek száma)
if first == '5' or (length==4 and first == '1') then
evnevelo = 'az'
else
evnevelo = 'a'
end
if tonumber(evTrim) == nil -- évszám további használata számformátumban
then ev = 0
else
ev = tonumber(evTrim)
end
--NÉVELŐK LISTA
nevelo = {
--AFRIKA
['COM'] = 'A', --Comore-szigetek
['COD'] = 'A', --Kongói Demokratikus Köztársaság
['RAU'] = 'Az', --Egyesült Arab Köztársaság
['CGO'] = 'A', --Kongói Köztársaság
['CAF'] = 'A', --Közép-afrikai Köztársaság
['SEY'] = 'A', --Seychelle-szigetek
['CPV'] = 'A', --Zöld-foki Köztársaság
--AMERIKA
['USA'] = 'Az Amerikai', --Egyesült Államok
['ISV'] = 'Az', --Amerikai Virgin-szigetek
['BAH'] = 'A', --Bahama-szigetek
['IVB'] = 'A', --Brit Virgin-szigetek
['DMA'] = 'A', --Dominikai Közösség
['DOM'] = 'A', --Dominikai Köztársaság
['AHO'] = 'A', --Holland Antillák
['CAY'] = 'A', --Kajmán-szigetek
--ÁZSIA
['UAE'] = 'Az', --Egyesült Arab Emírségek
['PHI'] = 'A', --Fülöp-szigetek
['MDV'] = 'A', --Maldív-szigetek
--EURÓPA
['BOH'] = 'A', --Cseh Királyság
['EUA'] = 'Az', --Egyesült Német Csapat
['GDR'] = 'Az', --NDK
['FRG'] = 'Az', --NSZK
['SAA'] = 'A', --Saar-vidék
['URS'] = 'A', --Szovjetunió
--ÓCEÁNIA
['COK'] = 'A', --Cook-szigetek
['FIJ'] = 'A', --Fidzsi-szigetek
['MHL'] = 'A', --Marshall-szigetek
['SOL'] = 'A', --Salamon-szigetek
--EGYÉB
['EUN'] = 'Az', --Egyesített Csapat
['ZZX'] = 'A' --Nemzetközi Csapat
}
if nevelo[NOBkod] == nil then
nevelo =''
else
nevelo = nevelo[NOBkod] .. ' '
end
if NOBkod == 'RSA' then if ev == 1904 or ev == 1908 then nevelo = '' -- Fokföld
else nevelo='A ' end end -- Dél-afirkai Köztársaság
if NOBkod == 'ROC' then if ev == 1964 or ev == 1968 then nevelo = '' -- Tajvan (1964, 1968)
elseif ev == 2020 or ev == 2022 then -- Orosz Olimpiai Bizottság (2020)
nevelo = 'Az '
else nevelo='A ' end end -- Kínai Köztársaság
if NOBkod == 'COD' then if ev == 1984 or ev == 1988 or ev == 1992 or ev == 1996 then nevelo = '' -- Zaire
else nevelo='A ' end end -- A Kongói Demokratikus Köztársaság
--TÍPUSOK
if tipuskod == 'nyári' then
tipus = 'nyári olimpiai játékokon'
elseif tipuskod == 'téli' then
tipus = 'téli olimpiai játékokon'
elseif tipuskod == 'nyári ifjúsági' then
tipus = 'nyári ifjúsági olimpiai játékokon'
elseif tipuskod == 'téli ifjúsági' then
tipus = 'téli ifjúsági olimpiai játékokon'
elseif tipuskod == 'nyári paralimpiai' then
tipus = 'nyári paralimpiai játékokon'
elseif tipuskod == 'téli paralimpiai' then
tipus = 'téli paralimpiai játékokon'
elseif tipuskod == 'Európa' then
tipus = 'Európa-játékokon'
else
tipus = 'nyári olimpiai játékokon'
end
if tipuskod == 'nyári' or tipuskod == 'téli' then
tipus2 = 'az olimpiai játékokon'
elseif tipuskod == 'nyári ifjúsági' or tipuskod == 'téli ifjúsági' then
tipus2 = 'az ifjúsági olimpiai játékokon'
elseif tipuskod == 'nyári paralimpiai' or tipuskod == 'téli paralimpiai' then
tipus2 = 'a paralimpiai játékokon'
elseif tipuskod == 'Európa' then
tipus2 = 'az Európa-játékokon'
else
tipus2 = 'az olimpiai játékokon'
end
--RÉGI NOB-KÓDOK
--Holland Antillák
if NOBkod == 'AHO' then
if ev == 1960 then NOBkod = 'ATO' end
if ev == 1964 then NOBkod = 'NAN' end end
--Algéria
if NOBkod == 'ALG' then
if ev == 1964 then NOBkod = 'AGR' end
if ev == 1968 and tipuskod == 'nyári' then NOBkod = 'AGL' end end
--Bosznia-Hercegovina
if NOBkod == 'BIH' and ev == 1992 then NOBkod = 'BSH' end
--Belize
if NOBkod == 'BIZ' and (ev >= 1968 and ev <=1972) then NOBkod = 'HBR' end
--Közép-Afrikai Köztársaság
if NOBkod == 'CAF' and ev == 1968 then NOBkod = 'AFC' end
--Kambodzsa
if NOBkod == 'CAM' then
if ev == 1964 then NOBkod = 'CAB' end
if (ev >= 1972 and ev <=1976) then NOBkod = 'KHM' end end
--Csád
if NOBkod == 'CHA' then
if ev == 1964 then NOBkod = 'CHD' end
if ev == 1968 then NOBkod = 'TCH' end end
--Chile
if NOBkod == 'CHI' and ((ev == 1956 and tipuskod == 'téli')
or (ev == 1960 and tipuskod == 'nyári')) then NOBkod = 'CIL' end
--Elefántcsontpart
if NOBkod == 'CIV' then
if ev == 1964 then NOBkod = 'IVC' end
if ev == 1968 then NOBkod = 'CML' end end
--Kongói Demokratikus Köztársaság
if NOBkod == 'COD' then
if ev == 1968 then NOBkod = 'COK' end
if ev >= 1984 and ev <= 1996 then NOBkod = 'ZAI' end end
--Costa Rica
if NOBkod == 'CRC' then
if ev == 1964 then NOBkod = 'COS' end
if ev == 1984 and tipuskod == 'téli' then NOBkod = 'CTC' end end
--Dánia
if NOBkod == 'DEN' then
if ((ev == 1960 and tipuskod == 'nyári')
or (ev == 1968 and tipuskod == 'téli')) then NOBkod = 'DAN' end
if ev == 1968 and tipuskod == 'nyári' then NOBkod = 'DIN' end end
--Salvador
if NOBkod == 'ESA' and (ev >= 1968 and ev <=1972) then NOBkod = 'SAL' end
--Egyesült Arab Köztársaság
if NOBkod == 'RAU' and ev == 1964 then NOBkod = 'UAR' end
--Spanyolország
if NOBkod == 'ESP' and ((ev >= 1956 and ev <=1964)
or (ev == 1968 and tipuskod == 'téli')) then NOBkod = 'SPA' end
--Etiópia
if NOBkod == 'ETH' and (ev >= 1960 and ev <=1968) then NOBkod = 'ETI' end
--Fidzsi-szigetek
if NOBkod == 'FIJ' and ev == 1960 then NOBkod = 'FIG' end
--Nagy-Britannia
if NOBkod == 'GBR' then
if ((ev == 1956 and tipuskod == 'téli') or ev == 1960) then NOBkod = 'GRB' end
if ev == 1964 then NOBkod = 'GBI' end end
--Guyana
if NOBkod == 'GUY' then
if ev == 1960 then NOBkod = 'GUA' end
if ev == 1964 then NOBkod = 'GUI' end end
--Hongkong
if NOBkod == 'HKG' and (ev >= 1960 and ev <=1968) then NOBkod = 'HOK' end
--Magyarország
--if NOBkod == 'HUN' and ((ev == 1956 and tipuskod == 'téli')
--or ev == 1960) then NOBkod = 'UNG' end
--Indonézia
if NOBkod == 'INA' and ev == 1960 then NOBkod = 'INS' end
--Irán
if NOBkod == 'IRI' then
if ev == 1968 and tipuskod == 'téli' then NOBkod = 'IRA' end
if (ev == 1968 and tipuskod == 'nyári') or ev == 1976 or ev == 1988 then NOBkod = 'IRN' end end
--Irak
if NOBkod == 'IRQ' and (ev == 1960 or ev ==1968) then NOBkod = 'IRK' end
--Izland
if NOBkod == 'ISL' and ((ev == 1960 or ev ==1964) and tipuskod == 'téli') then NOBkod = 'ICE' end
--Japán
if NOBkod == 'JPN' then
if ((ev == 1956 and tipuskod == 'téli') or (ev == 1960 and tipuskod == 'nyári')) then NOBkod = 'GIA' end
if ev == 1960 and tipuskod == 'nyári' then NOBkod = 'JAP' end end
--Dél-Korea
--Szaúd-Arábia
if NOBkod == 'KSA' then
if (ev == 1972 or ev == 1976) then NOBkod = 'ARS' end
if ev == 1984 then NOBkod = 'SAU' end end
--Libanon
if NOBkod == 'LIB' and ((ev == 1960 and tipuskod == 'téli')
or (ev == 1964 and tipuskod == 'nyári')) then NOBkod = 'LEB' end
--Litvánia
if NOBkod == 'LTU' and ev == 1992 then NOBkod = 'LIT' end
--Malajzia
if NOBkod == 'MAS' and (ev >= 1956 and ev <=1988) then NOBkod = 'MAL' end
--Mongólia
if NOBkod == 'MGL' and ev == 1968 and tipuskod == 'téli' then NOBkod = 'MON' end
--Mianmar
if NOBkod == 'MYA' then
if ev >= 1948 and ev <=1988 then NOBkod = 'BIR' end -- 1964 esetén az alsó felülírja
if ev == 1964 then NOBkod = 'BUR' end end
--Nicaragua
if NOBkod == 'NCA' then
if ev == 1964 then NOBkod = 'NCG' end
if ev == 1968 then NOBkod = 'NIC' end end
--Hollandia
if NOBkod == 'NED' and (ev >= 1900 and ev <=1988) then NOBkod = 'HOL' end
--Fülöp-szigetek
if NOBkod == 'PHI' and (ev == 1964 or ev ==1968) then NOBkod = 'FIL' end
--Pápua Új-Guinea
if NOBkod == 'PNG' then
if ev == 1976 then NOBkod = 'NGY' end
if (ev == 1980 or ev ==1984) then NOBkod = 'NGU' end end
--Puerto Rico
if NOBkod == 'PUR' then
if ev == 1960 then NOBkod = 'PRI' end
if ev == 1968 then NOBkod = 'PRO' end end
--Románia
if NOBkod == 'ROU' then
if (ev >= 1960 and ev <=2006) then NOBkod = 'ROM' end
if (ev == 1964 or ev ==1968) then NOBkod = 'RUM' end
end
--Dél-Afrika
if NOBkod == 'RSA' and (ev >= 1900 and ev <=1960) then NOBkod = 'SAF' end
--Srí Lanka
if NOBkod == 'SRI' and (ev >= 1948 and ev <=1972) then NOBkod = 'CEY' end
--Szerbia és Montenegró-->
if NOBkod == 'SCG' and (ev == 1996 or ev ==2000) then NOBkod = 'YUG' end
--Szíria
if NOBkod == 'SYR' and ev == 1968 then NOBkod = 'SIR' end
--Thaiföld
if NOBkod == 'THA' and (ev == 1960 or ev ==1968) then NOBkod = 'TAI' end
--Uruguay
if NOBkod == 'URU' and ev == 1968 then NOBkod = 'URG' end
--Vietnam
if NOBkod == 'VIE' then
if ev == 1964 then NOBkod = 'VET' end
if ev >= 1968 and ev <=1976 then NOBkod = 'VNM' end end
--NOB-KÓDOK VÉGE
--Egyedi nemzetnevek
if NOBkod == 'ROC' and (ev == 2020 or ev == 2022) then
utotag =' versenyzői'
else
utotag =''
end
--KIMENETELEK
zaszlo = '[[Kép:' .. zaszlo .. '|22x20px|border|' .. nemzetnev .. ']]'
szocikk1 = nevelo .. ' ' .. nemzetnev .. utotag .. ' ' .. evnevelo .. ' '.. ev .. '. évi ' .. tipus
szocikk2 = nevelo .. ' ' .. nemzetnev .. utotag .. ' ' .. tipus2
--ifexist kivételek
--AMI BIZTOSAN LÉTEZIK
--ÉV SZERINT
if
(ev >=1960 and ev <=2024 and tipuskod == 'nyári') -- nyári 1972 és 2024 között
or (ev == 1896 and tipuskod == 'nyári') -- nyári 1896
--típusonként
or (ev <= 2022 and tipuskod == 'téli') -- téli 1924 és 2022 között
--EGYEDIEK
or (ev == 2024 and NOBkod == 'AIN') -- AIN (Független résztvevők) 2024 nyári
or (ev >= 2020 and NOBkod == 'ROC') -- ROC (Orosz Olimpiai Bizottság) 2020 nyári, 2022 téli
or (ev == 2018 and NOBkod == 'OAR') -- OAR (Oroszország) 2018 téli
or (ev == 2018 and NOBkod == 'COR') -- COR (Korea) 2018 téli
--NEMZETEK SZERINT
or (NOBkod == 'HUN' and ev> 0 ) -- Magyarország
--kivételek 1900 és 1936 között
or (NOBkod == 'LUX' and (ev>=1924 and ev<=1936)) -- Luxemburg 1924 és 1936 között
--kivételek 1908 és 1920 között
or (NOBkod == 'ARG' and (ev>=1908 and ev<=1920)) -- Argentína 1908 és 1920 között
then szocikk = szocikk1
--AMI BIZTOSAN NEM LÉTEZIK
elseif
(ev == 0) -- ha NOB, vagy NOBcsapatnál nincs megadva évszám
or ((tipuskod == 'nyári') and -- nyáriak
(ev >=1900 and ev <= 1948 and NOBkod == 'GRE')
or (ev ==1956 and NOBkod == 'GRE')
or (ev >=1900 and ev <= 1948 and NOBkod == 'USA')
or (ev ==1956 and NOBkod == 'USA')
or (ev >=1952 and ev <= 1956 and NOBkod == 'URS')
or (ev >=1900 and ev <= 1936)) -- mindegyik 1900 és 1936 között
then szocikk = szocikk2
else
--IFEXIST-HÍVÁS
szocikk = frame:preprocess( '{{#ifexist: ' .. szocikk1 .. '|' .. szocikk1 .. '|' .. szocikk2 .. '}}' )
end
end
-- zászlóNOB2 - csak zászló --
function NOB.zaszlo(frame)
NOBkod = frame.args[1]
ev = frame.args[2]
tipuskod = frame.args[3]
NOB.adatok(frame) -- adatok behívása
return ' ' .. zaszlo
end
-- zászlóNOBj --
function NOB.zaszloNOBj(frame)
NOBkod = frame.args[1]
ev = frame.args[2]
tipuskod = frame.args[3]
NOB.adatok(frame) -- adatok behívása
return '[[' .. szocikk .. '|' .. nemzetnev .. ']] ' .. zaszlo
end
-- zászlóNOB --
function NOB.zaszloNOB(frame)
NOBkod = frame.args[1]
ev = frame.args[2]
tipuskod = frame.args[3]
sportolokadat = tonumber(frame.args[4])
ferfiadat = tonumber(frame.args[5])
noiadat = tonumber(frame.args[6])
NOB.adatok(frame) -- adatok behívása
-- sportolók száma --
if sportolokadat == nil then
osszessportolo = tonumber(0)
else
osszessportolo = sportolokadat
end
if ferfiadat == nil then
ferfisportolo = tonumber(0)
else
ferfisportolo = ferfiadat
end
if noiadat == nil then
noisportolo = tonumber(0)
else
noisportolo = noiadat
end
-- if-ek --
if osszessportolo == 0 then
sportolok = ''
else
if ferfisportolo == 0 and noisportolo == 0 then
sportolok = '(' .. osszessportolo .. ')'
else
if ferfisportolo + noisportolo ~= osszessportolo then
sportolok = '(<big><b>HIBA!</b></big>)[[Kategória:Hibásan használt zászlóNOB sablont tartalmazó lapok]]'
else
if ferfisportolo > 0 then
if noisportolo > 0 then
sportolok = '(' .. osszessportolo .. ' – ' .. ferfisportolo .. ' férfi, ' .. noisportolo .. ' nő)'
else
sportolok = '(' .. osszessportolo .. ' – ' .. ferfisportolo .. ' férfi)'
end
else
if noisportolo > 0 then
sportolok = '(' .. osszessportolo .. ' – ' .. noisportolo .. ' nő)'
else
end
end
end
end
end
if sportolokadat == '?' or sportolokadat == nil or sportolokadat == 0 then
sportolokszama = ''
else
sportolokszama = ' <span style="font-size:90%;">(' .. NOBkod .. ') ' .. sportolok .. '</span>'
end
return zaszlo .. ' [[' .. szocikk .. '|' .. nemzetnev .. ']]' .. sportolokszama
end
-- zászlóNOBérmes --
function NOB.zaszloNOBermes(frame)
ermes = frame.args[1]
NOBkod = frame.args[2]
ev = frame.args[3]
tipuskod = frame.args[4]
NOB.adatok(frame) -- adatok behívása
return zaszlo .. ' ' .. ermes .. '<br /><i>' .. '[[' .. szocikk .. '|' .. nemzetnev .. ']] <span style="font-size:90%;">(' .. NOBkod .. ')</span></i>'
end
-- zászlóNOBcsapat --
function NOB.zaszloNOBcsapat(frame)
NOBkod = frame.args[1]
ev = frame.args[2]
tipuskod = frame.args[3]
csapat = frame.args[4]
NOB.adatok(frame) -- adatok behívása
if frame.args[4] == '0' then csapat = '' else csapat = '<br />' .. frame.args[4] end
return zaszlo .. ' [[' .. szocikk .. '|' .. nemzetnev .. ']] <span style="font-size:90%;">(' .. NOBkod .. ')</span>' .. csapat
end
-- zászlóNOBsportoló --
function NOB.zaszloNOBsportolo(frame)
local Args = frame.args
local oldal = Args['oldal'] or 'b'
sportolo = frame.args[1]
NOBkod = frame.args[2]
ev = frame.args[3]
tipuskod = frame.args[4]
NOB.adatok(frame) -- adatok behívása
if sportolo == '[[]]' and NOBkod == '???' then
return zaszlo
else
if oldal == 'j' then
return sportolo .. ' <span style="font-size:90%;">([[' .. szocikk .. '|' .. NOBkod .. ']])</span> ' .. zaszlo
else
return zaszlo .. ' ' .. sportolo .. ' <span style="font-size:90%;">([[' .. szocikk .. '|' .. NOBkod .. ']])</span>'
end
end
end
-- zászlóNOBvál sablonok --
-- mindkettőre érvényes adatok --
function NOB.zaszloNOBvaladatok(frame)
sport = frame.args[1]
valogatott = frame.args['vál']
NOBkod = frame.args[2]
ev = frame.args[3]
tipuskod = frame.args[4]
NOB.adatok(frame) -- adatok behívása
melleknev = frame:expandTemplate{ title = 'ZászlóNOBvál/melléknevek', args = { frame.args[2]} }
if valogatott ~= nil then
valogatottcikk = valogatott
else
if sport ~= nil then
--Kikeressük a 'válogatott' elé kerülő sportágat jelölő szócskat, es meghatározzuk a szótagszámát
--Ugyanis 6 szótagszám alatt mindenképpen egybe kell írni a 'válogatott'-tal. (pl. rögbiválogatott)
sportSzavak = mw.text.split(sport, " ", true)
prefixValogatott = sportSzavak[table.maxn(sportSzavak)]
_, szotagszam=mw.ustring.gsub(prefixValogatott, "[AÁEÉIÍOÓÖŐUÚÜŰaáeéiíoóöőuúüű]", "")
-- A 'válogatott' szó 4 szótagú tehát ha a prefix 2 szótagnál nem több, akkor egybeírjuk
if szotagszam <= 2 then
valogatottcikk = melleknev .. ' ' .. sport .. 'válogatott'
else
valogatottcikk = melleknev .. ' ' .. sport .. '-válogatott'
end
else
end
end
end
-- zászlóNOBvál - bal oldali zászlós --
function NOB.zaszloNOBval(frame)
NOB.zaszloNOBvaladatok(frame)
return zaszlo .. ' [[' .. valogatottcikk .. '|' .. nemzetnev .. ']] <span style="font-size:90%;">([[' .. szocikk .. '|' .. NOBkod .. ']])</span>'
end
-- zászlóNOBvál - jobb oldali zászlós --
function NOB.zaszloNOBvalj(frame)
NOB.zaszloNOBvaladatok(frame)
return '[[' .. valogatottcikk .. '|' .. nemzetnev .. ']] <span style="font-size:90%;">([[' .. szocikk .. '|' .. NOBkod .. ']])</span> ' .. zaszlo
end
return NOB