Modul:WTA ChinesischeTop10
Erscheinungsbild
Die Dokumentation für dieses Modul kann unter Modul:WTA ChinesischeTop10/Doku erstellt werden
local p = {}
local function nameAnpassen(name)
local s = {}
local i = 0
if name == nil then
return ''
end
if name:find('(', 1, true) == nil then
return name
end
-- Namensteile in Array s speichern und Anzahl in i
for teil in string.gmatch(name, "%S+") do
i = i + 1
s[i] = teil
end
if i == 2 then
return name
end
-- der Klammerzusatz kann mehrteilig sein (zB Tennisspielerin, 2000)
-- ab dem erste Teil mit einer öffnenden Klammer wird der Name daher
-- abgebrochen
name = '[[' .. name .. '|'
for j=1,i,1 do
if (s[j]:find('(', 1, true) ~= nil) then
break
end
name = name .. s[j] .. ' '
end
name = name .. ']]'
return name
end
-- ed ist entweder 'einzel' oder 'Doppel' und entscheidet welche der beiden
-- Listen angezeigt wird
local function TopTen(frame, ed)
local retVal
local name = tostring(mw.title.getCurrentTitle())
if not name then
retVal = ''
else
-- die Top10 werden aus dem Modul WTA_Top10_Daten geladen
-- da sie ReadOnly sind werden die anzuzeigenden Daten auf die Variable
-- ZehnBeste kopiert
local Top10
local ZehnBeste = {}
-- heute berechnet die Tage des aktuellen Datums an Hand der
-- Jahreszahl * 365 + Monat * 30 + Tag
-- also zb 2026-08-15 --> 2026 * 365 + 8 * 30 + 15
local heute = tonumber(frame.args.Datum:sub(1, 4)) * 365 + tonumber(frame.args.Datum:sub(6, 7)) * 30 + tonumber(frame.args.Datum:sub(9, 10))
-- aus dem Modul WTA_Top10_Daten die Daten laden
if ed == 'Einzel' then
Top10 = mw.loadData('Modul:WTA_Top10_Daten').CHN.Einzel
else
Top10 = mw.loadData('Modul:WTA_Top10_Daten').CHN.Doppel
end
if tonumber(Top10.Stand:sub(1,4)) * 365 + tonumber(Top10.Stand:sub(6, 7)) * 30 + tonumber(Top10.Stand:sub(9, 10)) < heute - 100 then
-- der Stand der Daten wird ebenso wie das aktuelle Datum (siehe heute weiter oben)
-- in eine Zahl an Tagen umgerechnet
-- ist der Stand mehr als 100 Tage sind die Daten veraltet
retVal = ''
else
-- jetzt ist noch fest zu stellen, ob sich die Spielerin in der Liste der
-- Top 10 befindet
if name == Top10.Name1 or
name == Top10.Name2 or
name == Top10.Name3 or
name == Top10.Name4 or
name == Top10.Name5 or
name == Top10.Name6 or
name == Top10.Name7 or
name == Top10.Name8 or
name == Top10.Name9 or
name == Top10.Name10 then
-- befindet sie sich in der Liste muss der Name noch angepasst werden
-- um Patronyme und Klammerzusätze zu entfernen
ZehnBeste.Name1 = nameAnpassen(Top10.Name1, Top10.Land1)
ZehnBeste.Position1 = Top10.Position1
ZehnBeste.Aenderung1 = Top10.Aenderung1
ZehnBeste.Land1 = Top10.Land1
ZehnBeste.Name2 = nameAnpassen(Top10.Name2, Top10.Land2)
ZehnBeste.Position2 = Top10.Position2
ZehnBeste.Aenderung2 = Top10.Aenderung2
ZehnBeste.Land2 = Top10.Land2
ZehnBeste.Name3 = nameAnpassen(Top10.Name3, Top10.Land3)
ZehnBeste.Position3 = Top10.Position3
ZehnBeste.Aenderung3 = Top10.Aenderung3
ZehnBeste.Land3 = Top10.Land3
ZehnBeste.Name4 = nameAnpassen(Top10.Name4, Top10.Land4)
ZehnBeste.Position4 = Top10.Position4
ZehnBeste.Aenderung4 = Top10.Aenderung4
ZehnBeste.Land4 = Top10.Land4
ZehnBeste.Name5 = nameAnpassen(Top10.Name5, Top10.Land5)
ZehnBeste.Position5 = Top10.Position5
ZehnBeste.Aenderung5 = Top10.Aenderung5
ZehnBeste.Land5 = Top10.Land5
ZehnBeste.Name6 = nameAnpassen(Top10.Name6, Top10.Land6)
ZehnBeste.Position6 = Top10.Position6
ZehnBeste.Aenderung6 = Top10.Aenderung6
ZehnBeste.Land6 = Top10.Land6
ZehnBeste.Name7 = nameAnpassen(Top10.Name7, Top10.Land7)
ZehnBeste.Position7 = Top10.Position7
ZehnBeste.Aenderung7 = Top10.Aenderung7
ZehnBeste.Land7 = Top10.Land7
ZehnBeste.Name8 = nameAnpassen(Top10.Name8, Top10.Land8)
ZehnBeste.Position8 = Top10.Position8
ZehnBeste.Aenderung8 = Top10.Aenderung8
ZehnBeste.Land8 = Top10.Land8
ZehnBeste.Name9 = nameAnpassen(Top10.Name9, Top10.Land9)
ZehnBeste.Position9 = Top10.Position9
ZehnBeste.Aenderung9 = Top10.Aenderung9
ZehnBeste.Land9 = Top10.Land9
ZehnBeste.Name10 = nameAnpassen(Top10.Name10, Top10.Land10)
ZehnBeste.Position10 = Top10.Position10
ZehnBeste.Aenderung10 = Top10.Aenderung10
ZehnBeste.Land10 = Top10.Land10
ZehnBeste.Titel = "[[Women’s Tennis Association|WTA]]-Weltrangliste: [[Datei:Flag of the People's Republic of China.svg|20px|border|class=noviewer|link=China]] Die zehn bestplatzierten chinesischen Tennisspielerinnen im " .. ed
retVal = frame:expandTemplate{title = 'Rangliste10OU', args = ZehnBeste}
else
-- die Spielerin befindet sich nicht unter den Top 10
-- die Liste wird also nicht angezeigt
retVal = ''
end
end
end
return retVal
end
function p.Einzel(frame)
return TopTen(frame, 'Einzel')
end
function p.Doppel(frame)
return TopTen(frame, 'Doppel')
end
return p