Przejdź do zawartości

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

Z Encyklopedia Poznanskiego Sportu
Nie podano opisu zmian
Nie podano opisu zmian
 
Linia 1: Linia 1:
local p = {}
local p = {}
-- =========================================================
-- MODUŁ:HISTORIAWYSTĘPÓW
--
-- Historia występów zawodnika
--
-- UWAGA:
-- Moduł pokazuje wyłącznie występy zawodnika
-- w drużynach poznańskich.
--
-- Liczy się UdzialZawodnika.druzyna,
-- a NIE przeciwnik.
--
-- Dzięki temu:
-- Enea Basket Poznań vs Resovia -> TAK
-- Resovia vs Enea Basket Poznań -> NIE
-- =========================================================
-- =========================================================
-- DRUŻYNY POZNAŃSKIE
-- =========================================================
--
-- Tutaj dopisujemy kolejne drużyny poznańskie.
--
-- Nazwa musi być identyczna z wartością pola "druzyna"
-- w UdzialZawodnika.
--
local druzynyPoznanskie = {
    ["Enea Basket Poznań"] = true,
    ["Enea AZS Politechnika Poznań"] = true,
    ["Lech Poznań"] = true,
    ["Warta Poznań"] = true,
    ["AZS Politechnika Poznań"] = true,
    ["MUKS Poznań"] = true
}


function p.main(frame)
function p.main(frame)


     local zawodnik = frame.args.zawodnik
     local zawodnik =
        mw.text.trim(
            frame.args.zawodnik or ""
        )
 
 
    if zawodnik == "" then
 
        zawodnik =
            mw.title
                .getCurrentTitle()
                .text


    if not zawodnik or zawodnik == "" then
        zawodnik = mw.title.getCurrentTitle().text
     end
     end


     -- =====================================================
     -- =====================================================
Linia 14: Linia 69:


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


     -- =====================================================
     -- =====================================================
Linia 45: Linia 105:


     }, ",")
     }, ",")


     -- =====================================================
     -- =====================================================
     -- ZAPYTANIE CARGO
     -- ZAPYTANIE CARGO
    --
    -- Pobieramy wszystkie występy zawodnika,
    -- a następnie filtrujemy je według drużyny.
    --
    -- NIE filtrujemy Mecze.druzyna1/druzyna2,
    -- ponieważ przeciwnik może być drużyną poznańską.
     -- =====================================================
     -- =====================================================


Linia 67: Linia 134:
     }
     }


     local rows = mw.ext.cargo.query(
 
        "UdzialZawodnika,Mecze",
     local rows =
        fields,
        mw.ext.cargo.query(
         args
            "UdzialZawodnika,Mecze",
     )
            fields,
            args
         )
 
 
    -- =====================================================
    -- FILTR DRUŻYN POZNAŃSKICH
    --
    -- Sprawdzamy U.druzyna.
    --
    -- Dzięki temu zawodnik występujący przeciwko
    -- drużynie poznańskiej, ale reprezentujący
    -- drużynę przyjezdną, NIE zostanie uwzględniony.
    -- =====================================================
 
    local tylkoPoznanskie = {}
 
 
     if rows then
 
        for _, row in ipairs(rows) do
 
            local druzyna =
                mw.text.trim(
                    row.druzyna or ""
                )
 
 
            if druzynyPoznanskie[druzyna] then
 
                table.insert(
                    tylkoPoznanskie,
                    row
                )
 
            end
 
        end
 
    end
 
 
    rows =
        tylkoPoznanskie
 


     -- =====================================================
     -- =====================================================
Linia 79: Linia 190:
     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 zawodnika "
            .. "dla drużyn poznańskich w bazie.''"


     end
     end


     -- =====================================================
     -- =====================================================
     -- NOWE PODSUMOWANIE
     -- PODSUMOWANIE
     -- =====================================================
     -- =====================================================


Linia 109: Linia 223:


     end
     end


     -- =====================================================
     -- =====================================================
Linia 116: Linia 231:
     local suma =
     local suma =
         nowePodsumowanie()
         nowePodsumowanie()


     local dom =
     local dom =
         nowePodsumowanie()
         nowePodsumowanie()


     local wyjazd =
     local wyjazd =
         nowePodsumowanie()
         nowePodsumowanie()


     -- sezony
     -- sezony
     local sezony = {}
     local sezony = {}


     -- kluby
     -- kluby
     local kluby = {}
     local kluby = {}


     -- =====================================================
     -- =====================================================
Linia 137: Linia 259:
         local d1 =
         local d1 =
             row.druzyna1 or ""
             row.druzyna1 or ""


         local d2 =
         local d2 =
             row.druzyna2 or ""
             row.druzyna2 or ""


         local druzyna =
         local druzyna =
             row.druzyna or ""
             row.druzyna or ""


         local wynikMeczu =
         local wynikMeczu =
             row.wynik or ""
             row.wynik or ""


         local g1, g2 =
         local g1, g2 =
Linia 151: Linia 277:
                 "(%d+)%s*:%s*(%d+)"
                 "(%d+)%s*:%s*(%d+)"
             )
             )


         if not g1 or not g2 then
         if not g1 or not g2 then
             return nil
             return nil
         end
         end


         g1 = tonumber(g1)
 
         g2 = tonumber(g2)
         g1 =
            tonumber(g1)
 
 
         g2 =
            tonumber(g2)
 


         if druzyna == d1 then
         if druzyna == d1 then


             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"
             end
             end


         elseif druzyna == d2 then
         elseif druzyna == d2 then


             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"
             end
             end


         end
         end


         return nil
         return nil


     end
     end


     -- =====================================================
     -- =====================================================
Linia 200: Linia 346:
         stat.wystepy =
         stat.wystepy =
             stat.wystepy + 1
             stat.wystepy + 1


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


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


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


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


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


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


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


         if wynik == "W" then
         if wynik == "W" then
Linia 232: Linia 404:
             stat.zwyciestwa =
             stat.zwyciestwa =
                 stat.zwyciestwa + 1
                 stat.zwyciestwa + 1


         elseif wynik == "P" then
         elseif wynik == "P" then
Linia 237: Linia 410:
             stat.porazki =
             stat.porazki =
                 stat.porazki + 1
                 stat.porazki + 1


         elseif wynik == "R" then
         elseif wynik == "R" then
Linia 246: Linia 420:


     end
     end


     -- =====================================================
     -- =====================================================
Linia 252: Linia 427:


     for _, row in ipairs(rows) do
     for _, row in ipairs(rows) do


         -- -----------------------------------------------
         -- -----------------------------------------------
Linia 261: Linia 437:
             row
             row
         )
         )


         -- -----------------------------------------------
         -- -----------------------------------------------
Linia 268: Linia 445:
         local d1 =
         local d1 =
             row.druzyna1 or ""
             row.druzyna1 or ""


         local d2 =
         local d2 =
             row.druzyna2 or ""
             row.druzyna2 or ""


         local druzyna =
         local druzyna =
             row.druzyna or ""
             row.druzyna or ""


         if druzyna == d1 then
         if druzyna == d1 then
Linia 281: Linia 461:
                 row
                 row
             )
             )


         elseif druzyna == d2 then
         elseif druzyna == d2 then
Linia 290: Linia 471:


         end
         end


         -- -----------------------------------------------
         -- -----------------------------------------------
Linia 297: Linia 479:
         local sezon =
         local sezon =
             row.sezon or ""
             row.sezon or ""


         if sezon == "" then
         if sezon == "" then
             sezon = "Brak sezonu"
 
             sezon =
                "Brak sezonu"
 
         end
         end


         if not sezony[sezon] then
         if not sezony[sezon] then
Linia 308: Linia 495:


         end
         end


         dodajDoPodsumowania(
         dodajDoPodsumowania(
Linia 313: Linia 501:
             row
             row
         )
         )


         -- -----------------------------------------------
         -- -----------------------------------------------
Linia 319: Linia 508:


         if druzyna == "" then
         if druzyna == "" then
             druzyna = "Brak klubu"
 
             druzyna =
                "Brak klubu"
 
         end
         end


         if not kluby[druzyna] then
         if not kluby[druzyna] then
Linia 328: Linia 521:


         end
         end


         dodajDoPodsumowania(
         dodajDoPodsumowania(
Linia 335: Linia 529:


     end
     end


     -- =====================================================
     -- =====================================================
Linia 343: Linia 538:


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


         local min =
         local min =
             minuty % 60
             minuty % 60


         return string.format(
         return string.format(
Linia 355: Linia 554:


     end
     end


     -- =====================================================
     -- =====================================================
Linia 361: Linia 561:


     local listaSezonow = {}
     local listaSezonow = {}