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 RYWALIZACJI: | ||
-- | -- nazwa_statystyki1 / nazwa_statystyki2 | ||
-- | -- | ||
-- Dzięki temu zmiana nazwy sponsorskiej | -- Dzięki temu zmiana nazwy sponsorskiej nie rozbija H2H. | ||
-- | -- | ||
-- ZAWIERA: | -- ZAWIERA: | ||
-- 1. Bilans ogółem / dom / wyjazd | -- 1. Bilans ogółem / dom / wyjazd | ||
-- 2. Trenerów team1 | -- 2. Trenerów team1 | ||
-- 3. Najlepszych strzelców obu drużyn | -- 3. Najlepszych strzelców obu drużyn | ||
-- 4. Rekordy indywidualne team1 | -- 4. Rekordy indywidualne team1 | ||
-- 5. Serie zwycięstw / porażek | -- 5. Serie zwycięstw / porażek | ||
-- 6. Analizę kwart | -- 6. Analizę kwart | ||
-- 7. Wszystkie mecze | -- 7. Rekordy meczowe | ||
-- | -- 8. Wszystkie mecze | ||
-- 9. Dogrywkę 1, 2 i 3 | |||
-- ========================================================= | -- ========================================================= | ||
| Linia 30: | Linia 29: | ||
function p.main(frame) | function p.main(frame) | ||
local team1 = mw.text.trim(frame.args.team1 or "") | local team1 = | ||
local team2 = mw.text.trim(frame.args.team2 or "") | mw.text.trim( | ||
frame.args.team1 or "" | |||
) | |||
local team2 = | |||
mw.text.trim( | |||
frame.args.team2 or "" | |||
) | |||
if team1 == "" then | if team1 == "" then | ||
| Linia 43: | Linia 50: | ||
-- ===================================================== | -- ===================================================== | ||
-- | -- SQL | ||
-- ===================================================== | -- ===================================================== | ||
local function sql(value) | local function sql(value) | ||
return mw.ustring.gsub( | return mw.ustring.gsub( | ||
value, | tostring(value or ""), | ||
"'", | "'", | ||
"''" | "''" | ||
| Linia 64: | Linia 69: | ||
-- ===================================================== | -- ===================================================== | ||
-- | -- LICZBA | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 73: | Linia 78: | ||
end | end | ||
value = | value = | ||
mw.ustring.gsub( | |||
tostring(value), | |||
"%s+", | |||
"" | |||
) | |||
return tonumber(value) or 0 | return tonumber(value) or 0 | ||
| Linia 86: | Linia 90: | ||
local function procent(wygrane, mecze) | -- ===================================================== | ||
-- PROCENT | |||
-- ===================================================== | |||
local function procent( | |||
wygrane, | |||
mecze | |||
) | |||
if not mecze or mecze == 0 then | if not mecze or mecze == 0 then | ||
| Linia 109: | Linia 120: | ||
-- WARUNEK H2H DLA TABELI MECZE | -- WARUNEK H2H DLA TABELI MECZE | ||
-- | -- | ||
-- | -- Tutaj NIE MA ALIASU. | ||
-- ===================================================== | -- ===================================================== | ||
local whereMecze = | local whereMecze = | ||
"(" .. | "(" .. | ||
"(Mecze.nazwa_statystyki1='" .. | "(Mecze.nazwa_statystyki1='" .. | ||
team1SQL .. | team1SQL .. | ||
"' AND " .. | "' AND " .. | ||
"Mecze.nazwa_statystyki2='" .. | "Mecze.nazwa_statystyki2='" .. | ||
team2SQL .. | team2SQL .. | ||
| Linia 126: | Linia 139: | ||
team2SQL .. | team2SQL .. | ||
"' AND " .. | "' AND " .. | ||
"Mecze.nazwa_statystyki2='" .. | "Mecze.nazwa_statystyki2='" .. | ||
team1SQL .. | team1SQL .. | ||
| Linia 134: | Linia 148: | ||
-- ===================================================== | -- ===================================================== | ||
-- WARUNEK H2H DLA | -- WARUNEK H2H DLA ZAPYTAŃ Z ALIASEM M | ||
-- ===================================================== | -- ===================================================== | ||
local whereM = | local whereM = | ||
"(" .. | "(" .. | ||
"(M.nazwa_statystyki1='" .. | "(M.nazwa_statystyki1='" .. | ||
team1SQL .. | team1SQL .. | ||
"' AND " .. | "' AND " .. | ||
"M.nazwa_statystyki2='" .. | "M.nazwa_statystyki2='" .. | ||
team2SQL .. | team2SQL .. | ||
| Linia 155: | Linia 167: | ||
team2SQL .. | team2SQL .. | ||
"' AND " .. | "' AND " .. | ||
"M.nazwa_statystyki2='" .. | "M.nazwa_statystyki2='" .. | ||
team1SQL .. | team1SQL .. | ||
| Linia 168: | Linia 181: | ||
local function wynikDruzyny(row) | local function wynikDruzyny(row) | ||
local g1 = liczba(row.gole1) | local g1 = | ||
local g2 = liczba(row.gole2) | liczba(row.gole1) | ||
local g2 = | |||
liczba(row.gole2) | |||
if row.ns1 == team1 then | if row.ns1 == team1 then | ||
| Linia 180: | Linia 197: | ||
end | end | ||
return nil, nil | return nil, nil | ||
| Linia 187: | Linia 205: | ||
-- ===================================================== | -- ===================================================== | ||
-- | -- MIEJSCE TEAM1 | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 219: | Linia 237: | ||
local strona = | local strona = | ||
row.strona_meczu or "" | row.strona_meczu or "" | ||
local tekst = | local tekst = | ||
| Linia 224: | Linia 243: | ||
" – " .. | " – " .. | ||
d2 | d2 | ||
if strona ~= "" then | if strona ~= "" then | ||
| Linia 234: | Linia 254: | ||
end | end | ||
return tekst | return tekst | ||
| Linia 241: | Linia 262: | ||
-- ===================================================== | -- ===================================================== | ||
-- PARSOWANIE | -- PARSOWANIE KWART / DOGRYWEK | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 250: | Linia 271: | ||
end | end | ||
local a, b = | local a, b = | ||
tostring(value):match( | |||
"(%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 270: | Linia 291: | ||
-- ===================================================== | -- ===================================================== | ||
-- | -- MECZE | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 304: | Linia 325: | ||
"Mecze.widzowie=widzowie", | "Mecze.widzowie=widzowie", | ||
"Mecze.sedziowie=sedziowie", | "Mecze.sedziowie=sedziowie", | ||
"Mecze.strona_meczu=strona_meczu" | "Mecze.strona_meczu=strona_meczu" | ||
| Linia 525: | Linia 547: | ||
local b = | local b = | ||
bilans.wszystkie | bilans.wszystkie | ||
b.mecze = | b.mecze = | ||
| Linia 562: | Linia 585: | ||
local bm = | local bm = | ||
bilans[miejsceMeczu] | bilans[miejsceMeczu] | ||
bm.mecze = | bm.mecze = | ||
| Linia 653: | Linia 677: | ||
aktualnaSeria.wszystkie.P = 0 | aktualnaSeria.wszystkie.P = 0 | ||
if aktualnaSeria.wszystkie.W > | if aktualnaSeria.wszystkie.W > | ||
| Linia 669: | Linia 694: | ||
aktualnaSeria.wszystkie.W = 0 | aktualnaSeria.wszystkie.W = 0 | ||
if aktualnaSeria.wszystkie.P > | if aktualnaSeria.wszystkie.P > | ||
| Linia 704: | Linia 730: | ||
s.P = 0 | s.P = 0 | ||
if s.W > sr.W then | if s.W > sr.W then | ||
| Linia 716: | Linia 743: | ||
s.W = 0 | s.W = 0 | ||
if s.P > sr.P then | if s.P > sr.P then | ||
| Linia 735: | Linia 763: | ||
-- ===================================================== | -- ===================================================== | ||
-- | -- ZAWODNICY | ||
-- | -- | ||
-- WAŻNA ZMIANA: | |||
-- | |||
-- Nie filtrujemy: | |||
-- U.druzyna='Enea Basket Poznań' | |||
-- | |||
-- Pobieramy wszystkich zawodników z meczów H2H. | |||
-- | |||
-- Następnie ustalamy stronę na podstawie: | |||
-- M.nazwa_statystyki1/2 | |||
-- oraz M.druzyna1/2. | |||
-- | |||
-- Dzięki temu zmiana sponsora nie powoduje utraty | |||
-- zawodników w historii. | |||
-- ===================================================== | -- ===================================================== | ||
| Linia 773: | Linia 814: | ||
} | } | ||
local fieldsZawodnicy = | local fieldsZawodnicy = | ||
| Linia 790: | Linia 824: | ||
"U.minuty=minuty", | "U.minuty=minuty", | ||
"U.minuty_format=minuty_format", | "U.minuty_format=minuty_format", | ||
"U.asysta=asysta", | "U.asysta=asysta", | ||
"U.zbiorka=zbiorka", | "U.zbiorka=zbiorka", | ||
"U.eval=eval", | "U.eval=eval", | ||
"U.plusminus=plusminus", | "U.plusminus=plusminus", | ||
| Linia 816: | Linia 852: | ||
mw.ext.cargo.query( | mw.ext.cargo.query( | ||
"UdzialZawodnika=U,Mecze=M", | "UdzialZawodnika=U,Mecze=M", | ||
fieldsZawodnicy, | fieldsZawodnicy, | ||
{ | { | ||
join = | join = | ||
| Linia 823: | Linia 861: | ||
where = | where = | ||
whereM .. | whereM .. | ||
" AND U.minuty > 0", | " AND U.minuty > 0", | ||
| Linia 831: | Linia 866: | ||
"M.data ASC", | "M.data ASC", | ||
limit = | limit = 20000 | ||
} | } | ||
) | ) | ||
| Linia 837: | Linia 872: | ||
-- ===================================================== | -- ===================================================== | ||
-- | -- OKREŚLENIE STRONY ZAWODNIKA | ||
-- ===================================================== | -- ===================================================== | ||
local function | local function stronaZawodnika(row) | ||
local druzyna = | |||
row.druzyna_zawodnika or "" | |||
local | local d1 = | ||
row.druzyna1 or "" | |||
local d2 = | |||
row.druzyna2 or "" | |||
-- ----------------------------------------------- | |||
-- Team1 jako pierwsza drużyna | |||
-- ----------------------------------------------- | |||
if row.ns1 == team1 then | |||
return | if druzyna == d1 then | ||
return "team1" | |||
end | |||
end | end | ||
-- ----------------------------------------------- | |||
-- Team1 jako druga drużyna | |||
-- ----------------------------------------------- | |||
if row.ns2 == team1 then | |||
if druzyna == d2 then | |||
return "team1" | |||
end | |||
end | |||
-- ----------------------------------------------- | |||
-- Team2 jako pierwsza drużyna | |||
-- ----------------------------------------------- | |||
if row.ns1 == team2 then | |||
if druzyna == d1 then | |||
return "team2" | |||
end | |||
end | end | ||
-- ----------------------------------------------- | |||
-- Team2 jako druga drużyna | |||
-- ----------------------------------------------- | |||
if row.ns2 == team2 then | |||
if druzyna == d2 then | |||
return "team2" | |||
end | |||
end | |||
return nil | |||
end | |||
-- ===================================================== | |||
-- DODAWANIE REKORDU ZAWODNIKA | |||
-- ===================================================== | |||
local function dodajRekordZawodnika( | |||
tabela, | |||
miejsceMeczu, | |||
wartosc, | |||
item | |||
) | |||
local lista = | |||
tabela[miejsceMeczu] | |||