Moduł:H2H: Różnice pomiędzy wersjami
Wygląd
Nie podano opisu zmian |
Nie podano opisu zmian |
||
| Linia 9: | Linia 9: | ||
-- team2 = przeciwnik | -- team2 = przeciwnik | ||
-- | -- | ||
-- | -- Identyfikacja drużyn odbywa się przez: | ||
-- nazwa_statystyki1 / nazwa_statystyki2 | |||
-- | -- | ||
-- | -- Dzięki temu zmiana nazwy sponsorskiej nie rozbija H2H. | ||
-- | |||
-- ZAWARTOŚĆ: | |||
-- 1. Bilans ogółem / dom / wyjazd | -- 1. Bilans ogółem / dom / wyjazd | ||
-- 2. | -- 2. Trenerzy team1 w rywalizacji | ||
-- 3. | -- 3. Najlepsi strzelcy obu drużyn | ||
-- 4. Rekordy indywidualne team1 | -- 4. Rekordy indywidualne team1 | ||
-- 5. Serie zwycięstw / porażek | -- 5. Serie zwycięstw / porażek | ||
-- 6. | -- 6. Analiza kwart | ||
-- 7. Wszystkie mecze | -- 7. Wszystkie mecze | ||
-- 8. | -- 8. Dogrywka 1 / 2 / 3 | ||
-- ========================================================= | -- ========================================================= | ||
| Linia 25: | Linia 28: | ||
function p.main(frame) | function p.main(frame) | ||
local team1 = mw.text.trim(frame.args.team1 or "") | -- ===================================================== | ||
local team2 = mw.text.trim(frame.args.team2 or "") | -- PARAMETRY | ||
-- ===================================================== | |||
local team1 = | |||
mw.text.trim( | |||
frame.args.team1 or "" | |||
) | |||
local team2 = | |||
mw.text.trim( | |||
frame.args.team2 or "" | |||
) | |||
if team1 == "" then | if team1 == "" then | ||
| Linia 42: | Linia 57: | ||
local function sql(value) | local function sql(value) | ||
return mw.ustring.gsub(value, "'", "''") | return mw.ustring.gsub( | ||
value, | |||
"'", | |||
"''" | |||
) | |||
end | end | ||
local team1SQL = sql(team1) | |||
local team2SQL = sql(team2) | local team1SQL = | ||
sql(team1) | |||
local team2SQL = | |||
sql(team2) | |||
| Linia 54: | Linia 78: | ||
-- ===================================================== | -- ===================================================== | ||
local function liczba(value) | local function liczba(value) | ||
| Linia 69: | Linia 84: | ||
end | end | ||
value = | |||
mw.ustring.gsub( | |||
tostring(value), | |||
"%s+", | |||
"" | |||
) | |||
return tonumber( | return tonumber(value) or 0 | ||
end | end | ||
local function procent(wygrane, mecze) | local function procent( | ||
wygrane, | |||
mecze | |||
) | |||
if mecze == 0 then | if mecze == 0 then | ||
| Linia 88: | Linia 105: | ||
end | end | ||
local | local wynik = | ||
string.format( | string.format( | ||
"%.1f", | "%.1f%%", | ||
(wygrane / mecze) * 100 | |||
) | ) | ||
return mw.ustring.gsub( | |||
wynik, | |||
"%.", | |||
"," | |||
) | |||
end | end | ||
| Linia 120: | Linia 131: | ||
local g2 = | local g2 = | ||
liczba(row.gole2) | liczba(row.gole2) | ||
if row.ns1 == team1 then | if row.ns1 == team1 then | ||
| Linia 130: | Linia 142: | ||
end | end | ||
return nil, nil | return nil, nil | ||
| Linia 137: | Linia 150: | ||
-- ===================================================== | -- ===================================================== | ||
-- DOM / WYJAZD | -- DOM / WYJAZD | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 169: | Linia 182: | ||
local strona = | local strona = | ||
row.strona_meczu or "" | row.strona_meczu or "" | ||
local tekst = | local tekst = | ||
d1 .. " – " .. d2 | d1 .. | ||
" – " .. | |||
d2 | |||
if strona ~= "" then | if strona ~= "" then | ||
return "[[" .. | return | ||
"[[" .. | |||
strona .. | strona .. | ||
"|" .. | "|" .. | ||
| Linia 182: | Linia 200: | ||
end | end | ||
return tekst | return tekst | ||
| Linia 189: | Linia 208: | ||
-- ===================================================== | -- ===================================================== | ||
-- PARSOWANIE | -- PARSOWANIE KWARTY / DOGRYWKI | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 197: | Linia 216: | ||
return nil, nil | return nil, nil | ||
end | end | ||
local tekst = | local tekst = | ||
tostring(value) | tostring(value) | ||
local a, b = | local a, b = | ||
| Linia 205: | Linia 226: | ||
"(%d+)%s*:%s*(%d+)" | "(%d+)%s*:%s*(%d+)" | ||
) | ) | ||
if not a or not b then | if not a or not b then | ||
return nil, nil | return nil, nil | ||
end | end | ||
return | return | ||
| Linia 221: | Linia 244: | ||
-- ===================================================== | -- ===================================================== | ||
local fieldsMecze = table.concat({ | local fieldsMecze = | ||
table.concat({ | |||
"Mecze.id=mecz", | |||
"Mecze.data=data", | |||
"Mecze.sezon=sezon", | |||
"Mecze.druzyna1=druzyna1", | |||
"Mecze.druzyna2=druzyna2", | |||
"Mecze.nazwa_statystyki1=ns1", | |||
"Mecze.nazwa_statystyki2=ns2", | |||
"Mecze.gole1=gole1", | |||
"Mecze.gole2=gole2", | |||
"Mecze.wynik=wynik", | |||
"Mecze.wynik_do_przerwy=wynik_do_przerwy", | |||
"Mecze.kwart1=kwart1", | |||
"Mecze.kwart2=kwart2", | |||
"Mecze.kwart3=kwart3", | |||
"Mecze.kwart4=kwart4", | |||
"Mecze.dogrywka1=dogrywka1", | |||
"Mecze.dogrywka2=dogrywka2", | |||
"Mecze.dogrywka3=dogrywka3", | |||
"Mecze.hala=hala", | |||
"Mecze.widzowie=widzowie", | |||
"Mecze.sedziowie=sedziowie", | |||
"Mecze.strona_meczu=strona_meczu" | |||
}, ",") | |||
| Linia 261: | Linia 286: | ||
fieldsMecze, | fieldsMecze, | ||
{ | { | ||
where = | where = | ||
"(" .. | "(" .. | ||
| Linia 270: | Linia 296: | ||
"Mecze.nazwa_statystyki2='" .. | "Mecze.nazwa_statystyki2='" .. | ||
team2SQL .. | team2SQL .. | ||
")" .. | "')" .. | ||
" OR " .. | " OR " .. | ||
| Linia 280: | Linia 306: | ||
"Mecze.nazwa_statystyki2='" .. | "Mecze.nazwa_statystyki2='" .. | ||
team1SQL .. | team1SQL .. | ||
")" .. | "')" .. | ||
")", | ")", | ||
| Linia 288: | Linia 314: | ||
limit = 5000 | limit = 5000 | ||
} | } | ||
) | ) | ||
| Linia 402: | Linia 429: | ||
local function dodajRekordMeczowy( | local function dodajRekordMeczowy( | ||
lista, | lista, | ||
wartosc, | |||
item | item | ||
) | ) | ||
| Linia 409: | Linia 436: | ||
item.wartosc = | item.wartosc = | ||
wartosc | |||
table.insert( | table.insert( | ||
| Linia 425: | Linia 452: | ||
if | if wartosc > obecna then | ||
item.wartosc = | item.wartosc = | ||
wartosc | |||
lista[1] = | lista[1] = | ||
item | item | ||
elseif | elseif wartosc == obecna then | ||
item.wartosc = | item.wartosc = | ||
wartosc | |||
table.insert( | table.insert( | ||
| Linia 452: | Linia 479: | ||
-- ===================================================== | -- ===================================================== | ||
for _, row in ipairs(mecze) do | for _, row | ||
in ipairs(mecze) do | |||
local zdobyte, stracone = | local zdobyte, | ||
stracone = | |||
wynikDruzyny(row) | wynikDruzyny(row) | ||
local miejsceMeczu = | local miejsceMeczu = | ||
miejsce(row) | miejsce(row) | ||
if zdobyte | |||
stracone | if zdobyte | ||
miejsceMeczu then | and stracone | ||
and miejsceMeczu then | |||
local wynikMeczu | local wynikMeczu | ||
if zdobyte > stracone then | if zdobyte > stracone then | ||
| Linia 483: | Linia 516: | ||
-- ============================================= | -- ============================================= | ||
-- OGÓŁEM | -- BILANS OGÓŁEM | ||
-- ============================================= | -- ============================================= | ||
bilans.wszystkie.mecze = | |||
bilans.wszystkie | bilans.wszystkie.mecze + 1 | ||
bilans.wszystkie.punktyZdobyte = | |||
bilans.wszystkie.punktyZdobyte + | |||
zdobyte | zdobyte | ||
bilans.wszystkie.punktyStracone = | |||
bilans.wszystkie.punktyStracone + | |||
stracone | stracone | ||
| Linia 503: | Linia 535: | ||
if wynikMeczu == "W" then | if wynikMeczu == "W" then | ||
bilans.wszystkie.wygrane = | |||
bilans.wszystkie.wygrane + 1 | |||
elseif wynikMeczu == "P" then | elseif wynikMeczu == "P" then | ||
bilans.wszystkie.przegrane = | |||
bilans.wszystkie.przegrane + 1 | |||
end | end | ||
| Linia 518: | Linia 550: | ||
-- ============================================= | -- ============================================= | ||
local | local b = | ||
bilans[miejsceMeczu] | bilans[miejsceMeczu] | ||
b.mecze = | |||
b.mecze + 1 | |||
b.punktyZdobyte = | |||
b.punktyZdobyte + | |||
zdobyte | zdobyte | ||
b.punktyStracone = | |||
b.punktyStracone + | |||
stracone | stracone | ||
| Linia 535: | Linia 570: | ||
if wynikMeczu == "W" then | if wynikMeczu == "W" then | ||
b.wygrane = | |||
b.wygrane + 1 | |||
elseif wynikMeczu == "P" then | elseif wynikMeczu == "P" then | ||
b.przegrane = | |||
b.przegrane + 1 | |||
end | end | ||
| Linia 547: | Linia 582: | ||
-- ============================================= | -- ============================================= | ||
-- | -- REKORD MECZOWY | ||
-- ============================================= | -- ============================================= | ||
| Linia 580: | Linia 615: | ||
dodajRekordMeczowy( | dodajRekordMeczowy( | ||
rekordyMeczowe.zwyciestwo[miejsceMeczu], | rekordyMeczowe.zwyciestwo[ | ||
miejsceMeczu | |||
], | |||
roznica, | roznica, | ||
item | item | ||
| Linia 588: | Linia 625: | ||