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 | -- nazwa_statystyki1 / nazwa_statystyki2 | ||
-- | -- | ||
-- Dzięki temu zmiana nazwy sponsorskiej nie rozbija H2H. | -- Dzięki temu zmiana nazwy sponsorskiej drużyny | ||
-- nie rozbija historii H2H. | |||
-- | -- | ||
-- | -- ZAWIERA: | ||
-- 1. Bilans ogółem / dom / wyjazd | -- 1. Bilans ogółem / dom / wyjazd | ||
-- 2. | -- 2. Trenerów team1 | ||
-- 3. | -- 3. Najlepszych strzelców obu drużyn | ||
-- 4. Rekordy indywidualne team1 | -- 4. Rekordy indywidualne team1 | ||
-- 5. Serie zwycięstw | -- 5. Serie zwycięstw i porażek | ||
-- 6. | -- 6. Analizę kwart | ||
-- 7. Wszystkie mecze | -- 7. Rekordy meczowe | ||
-- | -- 8. Wszystkie mecze | ||
-- 9. Dogrywkę 1, 2 i 3 | |||
-- ========================================================= | -- ========================================================= | ||
| Linia 28: | Linia 30: | ||
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 "") | |||
local team1 = | |||
local team2 = | |||
| Linia 46: | Linia 37: | ||
return "'''Błąd:''' nie podano team1." | return "'''Błąd:''' nie podano team1." | ||
end | end | ||
if team2 == "" then | if team2 == "" then | ||
| Linia 57: | Linia 49: | ||
local function sql(value) | local function sql(value) | ||
value = tostring(value or "") | |||
return mw.ustring.gsub( | return mw.ustring.gsub( | ||
| Linia 67: | Linia 61: | ||
local team1SQL = | local team1SQL = sql(team1) | ||
local team2SQL = sql(team2) | |||
local team2SQL = | |||
-- ===================================================== | -- ===================================================== | ||
-- | -- LICZBA | ||
-- ===================================================== | -- ===================================================== | ||
local function liczba(value) | local function liczba(value) | ||
if value == nil | if value == nil then | ||
return 0 | return 0 | ||
end | end | ||
value = | |||
local tekst = tostring(value) | |||
if tekst == "" then | |||
return 0 | |||
end | |||
tekst = | |||
mw.ustring.gsub( | mw.ustring.gsub( | ||
tekst, | |||
"%s+", | "%s+", | ||
"" | "" | ||
) | ) | ||
local liczbaValue = | |||
tonumber(tekst) | |||
if liczbaValue == nil then | |||
return 0 | |||
end | |||
return liczbaValue | |||
end | end | ||
local function procent( | -- ===================================================== | ||
-- PROCENT | |||
-- ===================================================== | |||
local function procent(wygrane, mecze) | |||
if mecze == 0 then | if not mecze or mecze == 0 then | ||
return "0,0%" | return "0,0%" | ||
end | end | ||
local wynik = | local wynik = | ||
(wygrane / mecze) * 100 | |||
local tekst = | |||
string.format( | string.format( | ||
"%.1f%%", | "%.1f%%", | ||
wynik | |||
) | ) | ||
return mw.ustring.gsub( | return mw.ustring.gsub( | ||
tekst, | |||
"%.", | "%.", | ||
"," | "," | ||
| Linia 121: | Linia 138: | ||
-- ===================================================== | -- ===================================================== | ||
-- WYNIK TEAM1 | -- WYNIK DRUŻYNY TEAM1 | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 150: | Linia 167: | ||
-- ===================================================== | -- ===================================================== | ||
-- | -- MIEJSCE TEAM1 | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 158: | Linia 175: | ||
return "dom" | return "dom" | ||
end | end | ||
if row.ns2 == team1 then | if row.ns2 == team1 then | ||
return "wyjazd" | return "wyjazd" | ||
end | end | ||
return nil | return nil | ||
| Linia 179: | Linia 198: | ||
local d2 = | local d2 = | ||
row.druzyna2 or "" | row.druzyna2 or "" | ||
local tekst = | local tekst = | ||
| Linia 188: | Linia 203: | ||
" – " .. | " – " .. | ||
d2 | d2 | ||
local strona = | |||
row.strona_meczu or "" | |||
| Linia 213: | Linia 232: | ||
local function parseWynikCzesciowy(value) | local function parseWynikCzesciowy(value) | ||
if value == nil | if value == nil then | ||
return nil, nil | return nil, nil | ||
end | end | ||
| Linia 220: | Linia 239: | ||
local tekst = | local tekst = | ||
tostring(value) | tostring(value) | ||
if tekst == "" then | |||
return nil, nil | |||
end | |||
| Linia 242: | Linia 266: | ||
-- ===================================================== | -- ===================================================== | ||
-- POBRANIE MECZÓW | -- POBRANIE MECZÓW | ||
-- | |||
-- UWAGA: | |||
-- używamy KWARTA1 itd., | |||
-- a nie kwart1. | |||
-- ===================================================== | -- ===================================================== | ||
| Linia 279: | Linia 307: | ||
}, ",") | }, ",") | ||
local whereMecze = | |||
"(" .. | |||
"(Mecze.nazwa_statystyki1='" .. | |||
team1SQL .. | |||
"' AND " .. | |||
"Mecze.nazwa_statystyki2='" .. | |||
team2SQL .. | |||
"')" .. | |||
" OR " .. | |||
"(Mecze.nazwa_statystyki1='" .. | |||
team2SQL .. | |||
"' AND " .. | |||
"Mecze.nazwa_statystyki2='" .. | |||
team1SQL .. | |||
"')" .. | |||
")" | |||
| Linia 286: | Linia 336: | ||
fieldsMecze, | fieldsMecze, | ||
{ | { | ||
where = whereMecze, | |||
where = | |||
orderBy = | orderBy = | ||
| Linia 314: | Linia 342: | ||
limit = 5000 | limit = 5000 | ||
} | } | ||
) | ) | ||
if not mecze or #mecze == 0 then | if not mecze | ||
or #mecze == 0 then | |||
return | return | ||
| Linia 479: | Linia 507: | ||
-- ===================================================== | -- ===================================================== | ||
for _, row | for _, row in ipairs(mecze) do | ||
local zdobyte, | local zdobyte, stracone = | ||
wynikDruzyny(row) | wynikDruzyny(row) | ||
| Linia 516: | Linia 541: | ||
-- ============================================= | -- ============================================= | ||
-- | -- OGÓŁEM | ||
-- ============================================= | -- ============================================= | ||
| Linia 582: | Linia 607: | ||
-- ============================================= | -- ============================================= | ||
-- | -- REKORDY MECZOWE | ||
-- ============================================= | -- ============================================= | ||
| Linia 600: | Linia 625: | ||
data = | data = | ||
row.data or "" | row.data or "" | ||
} | } | ||
| Linia 609: | Linia 631: | ||
local roznica = | local roznica = | ||
zdobyte - stracone | zdobyte - | ||
stracone | |||
| Linia 615: | Linia 638: | ||
dodajRekordMeczowy( | dodajRekordMeczowy( | ||
rekordyMeczowe.zwyciestwo[ | rekordyMeczowe.zwyciestwo[miejsceMeczu], | ||
roznica, | roznica, | ||
item | item | ||
) | ) | ||
elseif roznica < 0 then | elseif roznica < 0 then | ||
dodajRekordMeczowy( | dodajRekordMeczowy( | ||
rekordyMeczowe.porazka[ | rekordyMeczowe.porazka[miejsceMeczu], | ||
math.abs(roznica), | math.abs(roznica), | ||
item | item | ||
| Linia 648: | Linia 668: | ||
if aktualnaSeria.wszystkie.W > | if | ||
serie.wszystkie.W then | aktualnaSeria.wszystkie.W > | ||
serie.wszystkie.W | |||
then | |||
serie.wszystkie.W = | serie.wszystkie.W = | ||
| Linia 666: | Linia 688: | ||
if aktualnaSeria.wszystkie.P > | if | ||
serie.wszystkie.P then | aktualnaSeria.wszystkie.P > | ||
serie.wszystkie.P | |||
then | |||
serie.wszystkie.P = | serie.wszystkie.P = | ||
| Linia 673: | Linia 697: | ||
end | end | ||
end | end | ||
| Linia 692: | Linia 707: | ||
local s = | local s = | ||
aktualnaSeria[miejsceMeczu] | aktualnaSeria[miejsceMeczu] | ||
local sr = | local sr = | ||
| Linia 723: | Linia 739: | ||
sr.P = s.P | sr.P = s.P | ||
end | end | ||
end | end | ||
| Linia 741: | Linia 748: | ||
-- ===================================================== | -- ===================================================== | ||
-- REKORDY INDYWIDUALNE | -- REKORDY INDYWIDUALNE TEAM1 | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 782: | Linia 787: | ||
-- ===================================================== | -- ===================================================== | ||
-- ZAWODNICY | -- ZAWODNICY | ||
-- | |||
-- Pobieramy zawodników obu drużyn. | |||
-- Nie zakładamy, że U.druzyna = team1/team2, | |||
-- bo nazwa sponsora mogła się zmienić. | |||
-- ===================================================== | -- ===================================================== | ||
| Linia 794: | Linia 803: | ||
"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", | ||
| Linia 819: | Linia 829: | ||
local zawodnicy = | local zawodnicy = | ||
mw.ext.cargo.query( | mw.ext.cargo.query( | ||
"UdzialZawodnika=U,Mecze=M", | "UdzialZawodnika=U,Mecze=M", | ||
fieldsZawodnicy, | fieldsZawodnicy, | ||
{ | { | ||
| Linia 827: | Linia 840: | ||
where = | where = | ||
whereMecze .. | |||