Przejdź do zawartości

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

Z Encyklopedia Poznanskiego Sportu
Nie podano opisu zmian
Nie podano opisu zmian
Linia 9: Linia 9:
-- team2 = przeciwnik
-- team2 = przeciwnik
--
--
-- IDENTYFIKACJA RYWALIZACJI:
-- Wykorzystuje:
-- nazwa_statystyki1 / nazwa_statystyki2
--   nazwa_statystyki1
--  nazwa_statystyki2
--
--
-- Dzięki temu zmiana nazwy sponsorskiej drużyny
-- Dzięki temu zmiana nazwy sponsorskiej drużyny
Linia 17: Linia 18:
-- ZAWIERA:
-- ZAWIERA:
-- 1. Bilans ogółem / dom / wyjazd
-- 1. Bilans ogółem / dom / wyjazd
-- 2. Trenerów team1
-- 2. Trenerów team1 w rywalizacji
-- 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 i porażek
-- 5. Serie zwycięstw / porażek
-- 6. Analizę kwart
-- 6. Analizę kwart
-- 7. Rekordy meczowe
-- 7. Wszystkie mecze
-- 8. Wszystkie mecze
-- 8. Dogrywkę 1, 2 i 3
-- 9. Dogrywkę 1, 2 i 3
-- =========================================================
-- =========================================================


Linia 32: Linia 32:
     local team1 = mw.text.trim(frame.args.team1 or "")
     local team1 = mw.text.trim(frame.args.team1 or "")
     local team2 = mw.text.trim(frame.args.team2 or "")
     local team2 = mw.text.trim(frame.args.team2 or "")


     if team1 == "" then
     if team1 == "" then
         return "'''Błąd:''' nie podano team1."
         return "'''Błąd:''' nie podano team1."
     end
     end


     if team2 == "" then
     if team2 == "" then
Linia 66: Linia 64:


     -- =====================================================
     -- =====================================================
     -- LICZBA
     -- FUNKCJE POMOCNICZE
     -- =====================================================
     -- =====================================================


     local function liczba(value)
     local function liczba(value)


         if value == nil then
         if value == nil or value == "" then
             return 0
             return 0
         end
         end


        value = tostring(value)


         local tekst = tostring(value)
         value = mw.ustring.gsub(
            value,
            "%s+",
            ""
        )


 
         return tonumber(value) or 0
         if tekst == "" then
            return 0
        end
 
 
        tekst =
            mw.ustring.gsub(
                tekst,
                "%s+",
                ""
            )
 
 
        local liczbaValue =
            tonumber(tekst)
 
 
        if liczbaValue == nil then
            return 0
        end
 
 
        return liczbaValue


     end
     end


    -- =====================================================
    -- PROCENT
    -- =====================================================


     local function procent(wygrane, mecze)
     local function procent(wygrane, mecze)
Linia 115: Linia 91:
             return "0,0%"
             return "0,0%"
         end
         end


         local wynik =
         local wynik =
             (wygrane / mecze) * 100
             (wygrane / mecze) * 100


 
         return string.format(
         local tekst =
            "%.1f%%",
            string.format(
            wynik
                "%.1f%%",
        ):gsub(
                wynik
            )
 
 
        return mw.ustring.gsub(
            tekst,
             "%.",
             "%.",
             ","
             ","
Linia 138: Linia 107:


     -- =====================================================
     -- =====================================================
     -- WYNIK DRUŻYNY TEAM1
     -- WARUNEK H2H DLA TABELI MECZE
    --
    -- TU NIE MA ALIASU M
     -- =====================================================
     -- =====================================================


     local function wynikDruzyny(row)
     local whereMecze =
 
        "(" ..
         local g1 =
        "(Mecze.nazwa_statystyki1='" ..
            liczba(row.gole1)
        team1SQL ..
        "' AND " ..
         "Mecze.nazwa_statystyki2='" ..
        team2SQL ..
        "')" ..


         local g2 =
         " OR " ..
            liczba(row.gole2)


        "(Mecze.nazwa_statystyki1='" ..
        team2SQL ..
        "' AND " ..
        "Mecze.nazwa_statystyki2='" ..
        team1SQL ..
        "')" ..


         if row.ns1 == team1 then
         ")"


            return g1, g2


        elseif row.ns2 == team1 then
    -- =====================================================
    -- WARUNEK H2H DLA TABELI MECZE Z ALIASEM M
    --
    -- UWAGA:
    -- tutaj używamy WYŁĄCZNIE M.nazwa_statystyki1
    -- i M.nazwa_statystyki2
    -- =====================================================


            return g2, g1
    local whereM =
        "(" ..
        "(M.nazwa_statystyki1='" ..
        team1SQL ..
        "' AND " ..
        "M.nazwa_statystyki2='" ..
        team2SQL ..
        "')" ..


         end
         " OR " ..


        "(M.nazwa_statystyki1='" ..
        team2SQL ..
        "' AND " ..
        "M.nazwa_statystyki2='" ..
        team1SQL ..
        "')" ..
        ")"
    -- =====================================================
    -- WYNIK DRUŻYNY
    -- =====================================================
    local function wynikDruzyny(row)
        local g1 = liczba(row.gole1)
        local g2 = liczba(row.gole2)
        if row.ns1 == team1 then
            return g1, g2
        elseif row.ns2 == team1 then
            return g2, g1
        end


         return nil, nil
         return nil, nil
Linia 167: Linia 187:


     -- =====================================================
     -- =====================================================
     -- MIEJSCE TEAM1
     -- DOM / WYJAZD
     -- =====================================================
     -- =====================================================


Linia 175: Linia 195:
             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 198: Linia 216:
         local d2 =
         local d2 =
             row.druzyna2 or ""
             row.druzyna2 or ""
        local strona =
            row.strona_meczu or ""


         local tekst =
         local tekst =
Linia 203: Linia 224:
             " – " ..
             " – " ..
             d2
             d2
        local strona =
            row.strona_meczu or ""


         if strona ~= "" then
         if strona ~= "" then


             return
             return "[[" ..
                "[[" ..
                 strona ..
                 strona ..
                 "|" ..
                 "|" ..
Linia 219: Linia 234:


         end
         end


         return tekst
         return tekst
Linia 232: Linia 246:
     local function parseWynikCzesciowy(value)
     local function parseWynikCzesciowy(value)


         if value == nil then
         if not value or value == "" then
             return nil, nil
             return nil, nil
         end
         end


         local tekst =
         local tekst =
             tostring(value)
             tostring(value)
        if tekst == "" then
            return nil, nil
        end


         local a, b =
         local a, b =
Linia 250: Linia 257:
                 "(%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 266: Linia 271:
     -- =====================================================
     -- =====================================================
     -- POBRANIE MECZÓW
     -- POBRANIE MECZÓW
    --
    -- UWAGA:
    -- używamy KWARTA1 itd.,
    -- a nie kwart1.
     -- =====================================================
     -- =====================================================


Linia 303: Linia 304:
             "Mecze.widzowie=widzowie",
             "Mecze.widzowie=widzowie",
             "Mecze.sedziowie=sedziowie",
             "Mecze.sedziowie=sedziowie",
             "Mecze.strona_meczu=strona_meczu"
             "Mecze.strona_meczu=strona_meczu"


         }, ",")
         }, ",")
    local whereMecze =
        "(" ..
        "(Mecze.nazwa_statystyki1='" ..
        team1SQL ..
        "' AND " ..
        "Mecze.nazwa_statystyki2='" ..
        team2SQL ..
        "')" ..
        " OR " ..
        "(Mecze.nazwa_statystyki1='" ..
        team2SQL ..
        "' AND " ..
        "Mecze.nazwa_statystyki2='" ..
        team1SQL ..
        "')" ..
        ")"




Linia 346: Linia 324:




     if not mecze
     if not mecze or #mecze == 0 then
        or #mecze == 0 then


         return
         return
Linia 369: Linia 346:
             wygrane = 0,
             wygrane = 0,
             przegrane = 0,
             przegrane = 0,
            remisy = 0,
             punktyZdobyte = 0,
             punktyZdobyte = 0,
             punktyStracone = 0
             punktyStracone = 0
Linia 377: Linia 355:
             wygrane = 0,
             wygrane = 0,
             przegrane = 0,
             przegrane = 0,
            remisy = 0,
             punktyZdobyte = 0,
             punktyZdobyte = 0,
             punktyStracone = 0
             punktyStracone = 0
Linia 385: Linia 364:
             wygrane = 0,
             wygrane = 0,
             przegrane = 0,
             przegrane = 0,
            remisy = 0,
             punktyZdobyte = 0,
             punktyZdobyte = 0,
             punktyStracone = 0
             punktyStracone = 0
Linia 511: Linia 491:
         local zdobyte, stracone =
         local zdobyte, stracone =
             wynikDruzyny(row)
             wynikDruzyny(row)


         local miejsceMeczu =
         local miejsceMeczu =
Linia 517: Linia 496:




         if zdobyte
         if zdobyte and
             and stracone
             stracone and
             and miejsceMeczu then
             miejsceMeczu then




Linia 544: Linia 523:
             -- =============================================
             -- =============================================


             bilans.wszystkie.mecze =
             local b =
                 bilans.wszystkie.mecze + 1
                 bilans.wszystkie


            b.mecze =
                b.mecze + 1


             bilans.wszystkie.punktyZdobyte =
             b.punktyZdobyte =
                 bilans.wszystkie.punktyZdobyte +
                 b.punktyZdobyte +
                 zdobyte
                 zdobyte


 
             b.punktyStracone =
             bilans.wszystkie.punktyStracone =
                 b.punktyStracone +
                 bilans.wszystkie.punktyStracone +
                 stracone
                 stracone


Linia 560: Linia 540:
             if wynikMeczu == "W" then
             if wynikMeczu == "W" then


                 bilans.wszystkie.wygrane =
                 b.wygrane =
                     bilans.wszystkie.wygrane + 1
                     b.wygrane + 1


             elseif wynikMeczu == "P" then
             elseif wynikMeczu == "P" then


                 bilans.wszystkie.przegrane =
                 b.przegrane =
                     bilans.wszystkie.przegrane + 1
                    b.przegrane + 1
 
            else
 
                b.remisy =
                     b.remisy + 1


             end
             end
Linia 575: Linia 560:
             -- =============================================
             -- =============================================


             local b =
             local bm =
                 bilans[miejsceMeczu]
                 bilans[miejsceMeczu]


            bm.mecze =
                bm.mecze + 1


             b.mecze =
             bm.punktyZdobyte =
                b.mecze + 1
                 bm.punktyZdobyte +
 
 
            b.punktyZdobyte =
                 b.punktyZdobyte +
                 zdobyte
                 zdobyte


 
             bm.punktyStracone =
             b.punktyStracone =
                 bm.punktyStracone +
                 b.punktyStracone +
                 stracone
                 stracone


Linia 595: Linia 577:
             if wynikMeczu == "W" then
             if wynikMeczu == "W" then


                 b.wygrane =
                 bm.wygrane =
                     b.wygrane + 1
                     bm.wygrane + 1


             elseif wynikMeczu == "P" then
             elseif wynikMeczu == "P" then


                 b.przegrane =
                 bm.przegrane =
                     b.przegrane + 1
                     bm.przegrane + 1
 
            else
 
                bm.remisy =
                    bm.remisy + 1


             end
             end
Linia 607: Linia 594:


             -- =============================================
             -- =============================================
             -- REKORDY MECZOWE
             -- REKORD MECZOWY
             -- =============================================
             -- =============================================