Moduł:H2H: Różnice pomiędzy wersjami
Wygląd
Nie podano opisu zmian |
Nie podano opisu zmian |
||
| Linia 10: | Linia 10: | ||
-- | -- | ||
-- Identyfikacja rywalizacji: | -- Identyfikacja rywalizacji: | ||
-- nazwa_statystyki1 | -- Mecze.nazwa_statystyki1 | ||
-- Mecze.nazwa_statystyki2 | |||
-- | |||
-- Dzięki temu zmiana nazwy sponsorskiej nie rozbija H2H. | |||
-- | -- | ||
-- Zawiera: | -- Zawiera: | ||
| Linia 20: | Linia 23: | ||
-- 6. Analizę kwart | -- 6. Analizę kwart | ||
-- 7. Wszystkie mecze | -- 7. Wszystkie mecze | ||
-- 8. | -- 8. Dogrywka 1, 2 i 3 | ||
-- ========================================================= | -- ========================================================= | ||
| Linia 39: | Linia 42: | ||
-- ===================================================== | -- ===================================================== | ||
-- | -- SQL | ||
-- ===================================================== | -- ===================================================== | ||
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 team1SQL = sql(team1) | ||
local team2SQL = sql(team2) | local team2SQL = sql(team2) | ||
-- ===================================================== | |||
-- FUNKCJE POMOCNICZE | |||
-- ===================================================== | |||
local function liczba(value) | local function liczba(value) | ||
| Linia 58: | Linia 63: | ||
end | end | ||
local tekst = tostring(value) | |||
tekst = mw.ustring.gsub( | |||
tekst, | |||
"%s+", | |||
"" | |||
) | |||
return tonumber( | -- WAŻNE: | ||
-- nie przekazujemy bezpośrednio gsub() do tonumber(), | |||
-- ponieważ gsub zwraca dwa wyniki. | |||
return tonumber(tekst) or 0 | |||
end | end | ||
| Linia 73: | Linia 85: | ||
end | end | ||
local | local wartosc = | ||
(wygrane / mecze) * 100 | |||
local tekst = | |||
string.format( | string.format( | ||
"%.1f", | "%.1f", | ||
wartosc | |||
) | ) | ||
tekst = | |||
mw.ustring.gsub( | mw.ustring.gsub( | ||
tekst, | |||
"%.", | "%.", | ||
"," | "," | ||
) | ) | ||
return | return tekst .. "%" | ||
end | end | ||
-- ===================================================== | |||
-- USTALENIE STRONY TEAM1 | |||
-- ===================================================== | |||
if | local function miejsce(row) | ||
return | |||
if row.ns1 == team1 then | |||
return "dom" | |||
end | end | ||
if row.ns2 == team1 then | |||
return "wyjazd" | |||
end | end | ||
return | return nil | ||
end | end | ||
-- ===================================================== | |||
-- WYNIK TEAM1 | |||
-- ===================================================== | |||
local function wynikDruzyny(row) | local function wynikDruzyny(row) | ||
| Linia 128: | Linia 147: | ||
-- ===================================================== | |||
-- NAZWA MECZU | |||
-- ===================================================== | |||
local function nazwaMeczu(row) | local function nazwaMeczu(row) | ||
| Linia 147: | Linia 155: | ||
local d1 = row.druzyna1 or "" | local d1 = row.druzyna1 or "" | ||
local d2 = row.druzyna2 or "" | local d2 = row.druzyna2 or "" | ||
local tekst = | local tekst = | ||
d1 .. " – " .. d2 | d1 .. " – " .. d2 | ||
local strona = | |||
row.strona_meczu or "" | |||
if strona ~= "" then | if strona ~= "" then | ||
| Linia 168: | Linia 178: | ||
-- ===================================================== | -- ===================================================== | ||
-- | -- PARSOWANIE KWARTY | ||
-- ===================================================== | -- ===================================================== | ||
local | local function parseCzesciowy(value) | ||
if value == nil or value == "" then | |||
return nil, nil | |||
end | |||
local tekst = | |||
tostring(value) | |||
local a, b = | |||
tekst:match( | |||
"(%d+)%s*:%s*(%d+)" | |||
) | |||
if not a or not b then | |||
return nil, nil | |||
end | |||
return tonumber(a), tonumber(b) | |||
end | |||
-- ===================================================== | |||
-- POBRANIE MECZÓW | |||
-- ===================================================== | |||
local fieldsMecze = | |||
table.concat({ | |||
"M.id=mecz", | |||
"M.data=data", | |||
"M.sezon=sezon", | |||
"M.druzyna1=druzyna1", | |||
"M.druzyna2=druzyna2", | |||
"M.nazwa_statystyki1=ns1", | |||
"M.nazwa_statystyki2=ns2", | |||
"M.gole1=gole1", | |||
"M.gole2=gole2", | |||
"M.wynik=wynik", | |||
"M.wynik_do_przerwy=wynik_do_przerwy", | |||
"M.kwarta1=kwarta1", | |||
"M.kwarta2=kwarta2", | |||
"M.kwarta3=kwarta3", | |||
"M.kwarta4=kwarta4", | |||
"M.dogrywka1=dogrywka1", | |||
"M.dogrywka2=dogrywka2", | |||
"M.dogrywka3=dogrywka3", | |||
"M.hala=hala", | |||
"M.widzowie=widzowie", | |||
"M.sedziowie=sedziowie", | |||
"M.strona_meczu=strona_meczu" | |||
}, ",") | |||
| Linia 235: | Linia 249: | ||
fieldsMecze, | fieldsMecze, | ||
{ | { | ||
where = | where = | ||
"(" .. | |||
"(M.nazwa_statystyki1='" .. | |||
team1SQL .. | |||
"' AND " .. | |||
"M.nazwa_statystyki2='" .. | |||
team2SQL .. | |||
"')" .. | |||
" OR " .. | |||
"(M.nazwa_statystyki1='" .. | |||
team2SQL .. | |||
"' AND " .. | |||
"M.nazwa_statystyki2='" .. | |||
team1SQL .. | |||
"')" .. | |||
")", | |||
orderBy = | orderBy = | ||
| Linia 259: | Linia 292: | ||
-- ===================================================== | -- ===================================================== | ||
-- BILANS | -- BILANS | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 379: | Linia 411: | ||
if wartosc > obecna then | if wartosc > obecna then | ||
lista = { | lista = { | ||
item | item | ||
} | } | ||
item.wartosc = wartosc | |||
return lista | |||
elseif wartosc == obecna then | elseif wartosc == obecna then | ||
| Linia 413: | Linia 447: | ||
local miejsceMeczu = | local miejsceMeczu = | ||
miejsce(row) | miejsce(row) | ||
if zdobyte and stracone and miejsceMeczu then | if zdobyte and stracone and miejsceMeczu then | ||
| Linia 421: | Linia 454: | ||
if zdobyte > stracone then | if zdobyte > stracone then | ||
wynikMeczu = "W" | wynikMeczu = "W" | ||
elseif zdobyte < stracone then | elseif zdobyte < stracone then | ||
wynikMeczu = "P" | wynikMeczu = "P" | ||
else | else | ||
wynikMeczu = "R" | wynikMeczu = "R" | ||
| Linia 448: | Linia 483: | ||
if wynikMeczu == "W" then | if wynikMeczu == "W" then | ||
b.wygrane = | b.wygrane = | ||
b.wygrane + 1 | b.wygrane + 1 | ||
elseif wynikMeczu == "P" then | elseif wynikMeczu == "P" then | ||
b.przegrane = | b.przegrane = | ||
b.przegrane + 1 | b.przegrane + 1 | ||
end | end | ||
| Linia 464: | Linia 496: | ||
-- ============================================= | -- ============================================= | ||
b = | |||
bilans[miejsceMeczu] | bilans[miejsceMeczu] | ||
b.mecze = | |||
b.mecze + 1 | |||
b.punktyZdobyte = | |||
b.punktyZdobyte + | |||
zdobyte | zdobyte | ||
b.punktyStracone = | |||
b.punktyStracone + | |||
stracone | stracone | ||
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 526: | Linia 555: | ||
local lista = | local lista = | ||
rekordyMeczowe.zwyciestwo[ | rekordyMeczowe. | ||
zwyciestwo[miejsceMeczu] | |||
if #lista == 0 | if #lista == 0 then | ||
item.wartosc = roznica | |||
item.wartosc = | |||
table.insert( | table.insert( | ||
| Linia 553: | Linia 567: | ||
) | ) | ||
else | |||
local obecna = | |||
lista[1].wartosc | |||
if roznica > obecna then | |||
item.wartosc = | |||
roznica | |||
rekordyMeczowe. | |||
zwyciestwo[miejsceMeczu] = { | |||
item | |||
} | |||
elseif roznica == obecna then | |||
item.wartosc = | |||