Przejdź do zawartości

Moduł:HistoriaWystepow: Różnice pomiędzy wersjami

Z Encyklopedia Poznanskiego Sportu
Nie podano opisu zmian
Nie podano opisu zmian
Linia 13: Linia 13:
     -- =====================================================
     -- =====================================================


     local zawodnikSQL = mw.ustring.gsub(zawodnik, "'", "''")
     local zawodnikSQL = mw.ustring.gsub(
        zawodnik,
        "'",
        "''"
    )


     -- =====================================================
     -- =====================================================
Linia 20: Linia 24:


     local fields = table.concat({
     local fields = table.concat({
         "UdzialZawodnika.mecz=mecz",
         "UdzialZawodnika.mecz=mecz",
         "UdzialZawodnika.druzyna=druzyna",
         "UdzialZawodnika.druzyna=druzyna",
         "UdzialZawodnika.minuty=minuty",
         "UdzialZawodnika.minuty=minuty",
         "UdzialZawodnika.minuty_format=minuty_format",
         "UdzialZawodnika.minuty_format=minuty_format",
         "UdzialZawodnika.gol=gol",
         "UdzialZawodnika.gol=gol",
        "UdzialZawodnika.asysta=asysta",
        "UdzialZawodnika.zbiorka=zbiorka",
         "UdzialZawodnika.eval=eval",
         "UdzialZawodnika.eval=eval",
         "UdzialZawodnika.plusminus=plusminus",
         "UdzialZawodnika.plusminus=plusminus",
Linia 30: Linia 40:
         "Mecze.data=data",
         "Mecze.data=data",
         "Mecze.sezon=sezon",
         "Mecze.sezon=sezon",
         "Mecze.druzyna1=druzyna1",
         "Mecze.druzyna1=druzyna1",
         "Mecze.druzyna2=druzyna2",
         "Mecze.druzyna2=druzyna2",
         "Mecze.wynik=wynik",
         "Mecze.wynik=wynik",
         "Mecze.strona_meczu=strona_meczu"
         "Mecze.strona_meczu=strona_meczu"
     }, ",")
     }, ",")


Linia 41: Linia 54:


     local args = {
     local args = {
         join = "UdzialZawodnika.mecz=Mecze.id",
 
         where = "UdzialZawodnika.zawodnik='" .. zawodnikSQL .. "' AND UdzialZawodnika.minuty > 0",
         join =
         orderBy = "Mecze.data ASC",
            "UdzialZawodnika.mecz=Mecze.id",
 
         where =
            "UdzialZawodnika.zawodnik='"
            .. zawodnikSQL
            .. "' AND UdzialZawodnika.minuty > 0",
 
         orderBy =
            "Mecze.data ASC",
 
         limit = 5000
         limit = 5000
     }
     }
Linia 58: Linia 80:


     if not rows or #rows == 0 then
     if not rows or #rows == 0 then
         return "''Brak wprowadzonych występów w bazie.''"
         return "''Brak wprowadzonych występów w bazie.''"
     end
     end


     -- =====================================================
     -- =====================================================
     -- FUNKCJA TWORZĄCA PODSUMOWANIE
     -- NOWE PODSUMOWANIE
     -- =====================================================
     -- =====================================================


Linia 68: Linia 92:


         return {
         return {
             wystepy = 0,
             wystepy = 0,
             zwyciestwa = 0,
             zwyciestwa = 0,
             porazki = 0,
             porazki = 0,
             remisy = 0,
             remisy = 0,
             punkty = 0,
             punkty = 0,
             minuty = 0,
             minuty = 0,
            asysty = 0,
            zbiorki = 0,
             eval = 0,
             eval = 0,
             plusminus = 0
             plusminus = 0
         }
         }


Linia 84: Linia 116:
     -- =====================================================
     -- =====================================================


     local suma = nowePodsumowanie()
     local suma =
     local dom = nowePodsumowanie()
        nowePodsumowanie()
     local wyjazd = nowePodsumowanie()
 
     local dom =
        nowePodsumowanie()
 
     local wyjazd =
        nowePodsumowanie()


    -- podsumowania poszczególnych sezonów
     local sezony = {}
     local sezony = {}
    local kluby = {}


     -- =====================================================
     -- =====================================================
     -- PODSUMOWANIA POSZCZEGÓLNYCH KLUBÓW
     -- REKORDY INDYWIDUALNE
     -- =====================================================
     -- =====================================================


     local kluby = {}
     local rekordy = {
    local kolejnoscKlubow = {}
 
        punkty = {
            wartosc = -1,
            mecze = {}
        },
 
        minuty = {
            wartosc = -1,
            mecze = {}
        },
 
        asysty = {
            wartosc = -1,
            mecze = {}
        },
 
        zbiorki = {
            wartosc = -1,
            mecze = {}
        }
 
    }


     -- =====================================================
     -- =====================================================
Linia 104: Linia 163:
     local function okreslWynik(row)
     local function okreslWynik(row)


         local d1 = row.druzyna1 or ""
         local d1 =
         local d2 = row.druzyna2 or ""
            row.druzyna1 or ""
        local druzyna = row.druzyna or ""
 
        local wynikMeczu = row.wynik or ""
         local d2 =
            row.druzyna2 or ""


         local g1, g2 = wynikMeczu:match("(%d+)%s*:%s*(%d+)")
        local druzyna =
            row.druzyna or ""
 
        local wynikMeczu =
            row.wynik or ""
 
         local g1, g2 =
            wynikMeczu:match(
                "(%d+)%s*:%s*(%d+)"
            )


         if not g1 or not g2 then
         if not g1 or not g2 then
Linia 122: Linia 191:
             if g1 > g2 then
             if g1 > g2 then
                 return "W"
                 return "W"
             elseif g1 < g2 then
             elseif g1 < g2 then
                 return "P"
                 return "P"
             else
             else
                 return "R"
                 return "R"
Linia 132: Linia 203:
             if g2 > g1 then
             if g2 > g1 then
                 return "W"
                 return "W"
             elseif g2 < g1 then
             elseif g2 < g1 then
                 return "P"
                 return "P"
             else
             else
                 return "R"
                 return "R"
Linia 141: Linia 214:


         return nil
         return nil
     end
     end


Linia 147: Linia 221:
     -- =====================================================
     -- =====================================================


     local function dodajDoPodsumowania(stat, row)
     local function dodajDoPodsumowania(
        stat,
        row
    )


         stat.wystepy = stat.wystepy + 1
         stat.wystepy =
            stat.wystepy + 1


         stat.punkty =
         stat.punkty =
             stat.punkty +
             stat.punkty
             (tonumber(row.gol or 0) or 0)
             + tonumber(row.gol or 0)


         stat.minuty =
         stat.minuty =
             stat.minuty +
             stat.minuty
             (tonumber(row.minuty or 0) or 0)
            + tonumber(row.minuty or 0)
 
        stat.asysty =
            stat.asysty
             + tonumber(row.asysta or 0)
 
        stat.zbiorki =
            stat.zbiorki
            + tonumber(row.zbiorka or 0)


         stat.eval =
         stat.eval =
             stat.eval +
             stat.eval
             (tonumber(row.eval or 0) or 0)
             + tonumber(row.eval or 0)


         stat.plusminus =
         stat.plusminus =
             stat.plusminus +
             stat.plusminus
             (tonumber(row.plusminus or 0) or 0)
             + tonumber(row.plusminus or 0)


         local wynik = okreslWynik(row)
         local wynik =
            okreslWynik(row)


         if wynik == "W" then
         if wynik == "W" then
Linia 183: Linia 270:
             stat.remisy =
             stat.remisy =
                 stat.remisy + 1
                 stat.remisy + 1
        end
    end
    -- =====================================================
    -- FUNKCJA DODAJĄCA MECZ DO REKORDU
    -- =====================================================
    local function dodajDoRekordu(
        rekord,
        wartosc,
        row
    )
        wartosc =
            tonumber(wartosc or 0)
        if wartosc > rekord.wartosc then
            rekord.wartosc =
                wartosc
            rekord.mecze = {
                row
            }
        elseif wartosc == rekord.wartosc then
            table.insert(
                rekord.mecze,
                row
            )


         end
         end
Linia 194: Linia 314:
     for _, row in ipairs(rows) do
     for _, row in ipairs(rows) do


         -- -----------------------------------------------
         -- -------------------------------------------------
         -- WSZYSTKIE MECZE
         -- WSZYSTKIE MECZE
         -- -----------------------------------------------
         -- -------------------------------------------------


         dodajDoPodsumowania(
         dodajDoPodsumowania(
Linia 203: Linia 323:
         )
         )


         -- -----------------------------------------------
         -- -------------------------------------------------
         -- DOM / WYJAZD
         -- DOM / WYJAZD
         -- -----------------------------------------------
         -- -------------------------------------------------


         local d1 = row.druzyna1 or ""
         local d1 =
         local d2 = row.druzyna2 or ""
            row.druzyna1 or ""
         local druzyna = row.druzyna or ""
 
         local d2 =
            row.druzyna2 or ""
 
         local druzyna =
            row.druzyna or ""


         if druzyna == d1 then
         if druzyna == d1 then
Linia 227: Linia 352:
         end
         end


         -- -----------------------------------------------
         -- -------------------------------------------------
         -- SEZON
         -- SEZON
         -- -----------------------------------------------
         -- -------------------------------------------------


         local sezon = row.sezon or ""
         local sezon =
            row.sezon or ""


         if sezon == "" then
         if sezon == "" then
Linia 238: Linia 364:


         if not sezony[sezon] then
         if not sezony[sezon] then
             sezony[sezon] = nowePodsumowanie()
 
             sezony[sezon] =
                nowePodsumowanie()
 
         end
         end


Linia 246: Linia 375:
         )
         )


         -- -----------------------------------------------
         -- -------------------------------------------------
         -- KLUB
         -- KLUB
         -- -----------------------------------------------
         -- -------------------------------------------------


         if druzyna ~= "" then
         if druzyna ~= "" then
Linia 254: Linia 383:
             if not kluby[druzyna] then
             if not kluby[druzyna] then


                 kluby[druzyna] = nowePodsumowanie()
                 kluby[druzyna] =
 
                    nowePodsumowanie()
                table.insert(
                    kolejnoscKlubow,
                    druzyna
                )


             end
             end
Linia 269: Linia 394:


         end
         end
        -- -------------------------------------------------
        -- REKORDY
        -- -------------------------------------------------
        dodajDoRekordu(
            rekordy.punkty,
            row.gol,
            row
        )
        dodajDoRekordu(
            rekordy.minuty,
            row.minuty,
            row
        )
        dodajDoRekordu(
            rekordy.asysty,
            row.asysta,
            row
        )
        dodajDoRekordu(
            rekordy.zbiorki,
            row.zbiorka,
            row
        )


     end
     end
Linia 276: Linia 429:
     -- =====================================================
     -- =====================================================


     local function formatujMinuty(minuty)
     local function formatujMinuty(
        minuty
    )
 
        minuty =
            tonumber(minuty or 0)


         local godziny =
         local godziny =
             math.floor(minuty / 60)
             math.floor(
                minuty / 60
            )


         local min =
         local min =
Linia 289: Linia 449:
             min
             min
         )
         )
    end
    -- =====================================================
    -- FORMAT MECZU DLA REKORDÓW
    -- =====================================================
    local function rekordMecz(
        row
    )
        local d1 =
            row.druzyna1 or ""
        local d2 =
            row.druzyna2 or ""
        local druzyna =
            row.druzyna or ""
        local przeciwnik = ""
        if druzyna == d1 then
            przeciwnik = d2
        elseif druzyna == d2 then
            przeciwnik = d1
        else
            przeciwnik = d2
            if przeciwnik == "" then
                przeciwnik = d1
            end
        end
        local opis =
            druzyna
            .. " – "
            .. przeciwnik
        local strona =
            row.strona_meczu or ""
        if strona ~= "" then
            opis =
                "[["
                .. strona
                .. "|"
                .. druzyna
                .. " – "
                .. przeciwnik
                .. "]]"