Przejdź do zawartości

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

Z Encyklopedia Poznanskiego Sportu
Nie podano opisu zmian
Nie podano opisu zmian
 
(Nie pokazano 7 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 9: Linia 9:
-- team2 = przeciwnik
-- team2 = przeciwnik
--
--
-- Identyfikacja drużyn odbywa się przez:
-- nazwa_statystyki1 / nazwa_statystyki2 służą do identyfikacji
-- nazwa_statystyki1 / nazwa_statystyki2
-- drużyn niezależnie od historycznych nazw sponsorskich.
--
--
-- Dzięki temu zmiana nazwy sponsorskiej nie rozbija H2H.
-- Zawiera:
--
-- ZAWARTOŚĆ:
-- 1. Bilans ogółem / dom / wyjazd
-- 1. Bilans ogółem / dom / wyjazd
-- 2. Trenerzy team1 w rywalizacji
-- 2. Trenerów team1 w rywalizacji
-- 3. Najlepsi strzelcy 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. Analiza kwart
-- 6. Analizę kwart
-- 7. Wszystkie mecze
-- 7. Wszystkie mecze
-- 8. Dogrywka 1 / 2 / 3
-- 8. Dogrywki 1, 2 i 3
-- =========================================================
-- =========================================================


Linia 32: Linia 30:
     -- =====================================================
     -- =====================================================


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


     if team1 == "" then
     if team1 == "" then
Linia 59: Linia 49:


         return mw.ustring.gsub(
         return mw.ustring.gsub(
             value,
             tostring(value or ""),
             "'",
             "'",
             "''"
             "''"
Linia 67: Linia 57:




     local team1SQL =
     local team1SQL = sql(team1)
        sql(team1)
     local team2SQL = sql(team2)
 
     local team2SQL =
        sql(team2)




Linia 84: Linia 71:
         end
         end


         value =
         local tekst =
             mw.ustring.gsub(
             mw.ustring.gsub(
                 tostring(value),
                 tostring(value),
Linia 91: Linia 78:
             )
             )


         return tonumber(value) or 0
         return tonumber(tekst) or 0


     end
     end




     local function procent(
     local function procent(wygrane, mecze)
        wygrane,
        mecze
    )


         if mecze == 0 then
         if mecze == 0 then
Linia 105: Linia 89:
         end
         end


         local wynik =
         local wartosc =
             string.format(
             (wygrane / mecze) * 100
                "%.1f%%",
 
                (wygrane / mecze) * 100
        return string.format(
             )
            "%.1f%%",
            wartosc
        ):gsub("%.", ",")
 
    end
 
 
    -- =====================================================
    -- IDENTYFIKACJA STRONY TEAM1
    -- =====================================================
 
    local function miejsce(row)
 
        if row.ns1 == team1 then
            return "dom"
        end
 
        if row.ns2 == team1 then
             return "wyjazd"
        end


         return mw.ustring.gsub(
         return nil
            wynik,
            "%.",
            ","
        )


     end
     end
Linia 142: Linia 141:


         end
         end


         return nil, nil
         return nil, nil
Linia 150: Linia 148:


     -- =====================================================
     -- =====================================================
    -- DOM / WYJAZD
     -- NAZWA MECZU
    -- =====================================================
 
    local function miejsce(row)
 
        if row.ns1 == team1 then
            return "dom"
        end
 
        if row.ns2 == team1 then
            return "wyjazd"
        end
 
        return nil
 
    end
 
 
    -- =====================================================
     -- NAZWA MECZU
     -- =====================================================
     -- =====================================================


Linia 185: Linia 164:


         local tekst =
         local tekst =
             d1 ..
             d1 .. " – " .. d2
            " – " ..
            d2




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


             return
             return "[[" ..
                "[[" ..
                 strona ..
                 strona ..
                 "|" ..
                 "|" ..
Linia 208: Linia 184:


     -- =====================================================
     -- =====================================================
     -- PARSOWANIE KWARTY / DOGRYWKI
     -- PARSOWANIE CZĘŚCI WYNIKU
     -- =====================================================
     -- =====================================================


Linia 216: Linia 192:
             return nil, nil
             return nil, nil
         end
         end


         local tekst =
         local tekst =
             tostring(value)
             tostring(value)


         local a, b =
         local a, b =
Linia 226: Linia 200:
                 "(%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 241: Linia 213:


     -- =====================================================
     -- =====================================================
     -- POBRANIE MECZÓW
     -- WARUNEK H2H
     -- =====================================================
     -- =====================================================


     local fieldsMecze =
     local whereH2H =
         table.concat({
         "(" ..
        "(Mecze.nazwa_statystyki1='" ..
        team1SQL ..
        "' AND " ..
        "Mecze.nazwa_statystyki2='" ..
        team2SQL ..
        "')" ..
 
        " OR " ..


            "Mecze.id=mecz",
        "(Mecze.nazwa_statystyki1='" ..
            "Mecze.data=data",
        team2SQL ..
            "Mecze.sezon=sezon",
        "' AND " ..
        "Mecze.nazwa_statystyki2='" ..
        team1SQL ..
        "')" ..


            "Mecze.druzyna1=druzyna1",
        ")"
            "Mecze.druzyna2=druzyna2",


            "Mecze.nazwa_statystyki1=ns1",
            "Mecze.nazwa_statystyki2=ns2",


            "Mecze.gole1=gole1",
    -- =====================================================
            "Mecze.gole2=gole2",
    -- POBRANIE MECZÓW
    --
    -- UWAGA:
    -- pola nazywają się KWARTA1, KWARTA2 itd.
    -- a nie KWART1.
    -- =====================================================


            "Mecze.wynik=wynik",
    local fieldsMecze = table.concat({
            "Mecze.wynik_do_przerwy=wynik_do_przerwy",


            "Mecze.kwarta1=kwarta1",
        "Mecze.id=mecz",
            "Mecze.kwarta2=kwarta2",
            "Mecze.kwarta3=kwarta3",
            "Mecze.kwarta4=kwarta4",


            "Mecze.dogrywka1=dogrywka1",
        "Mecze.data=data",
            "Mecze.dogrywka2=dogrywka2",
        "Mecze.sezon=sezon",
            "Mecze.dogrywka3=dogrywka3",


            "Mecze.hala=hala",
        "Mecze.druzyna1=druzyna1",
            "Mecze.widzowie=widzowie",
        "Mecze.druzyna2=druzyna2",
            "Mecze.sedziowie=sedziowie",


            "Mecze.strona_meczu=strona_meczu"
        "Mecze.nazwa_statystyki1=ns1",
        "Mecze.nazwa_statystyki2=ns2",


         }, ",")
         "Mecze.gole1=gole1",
        "Mecze.gole2=gole2",
 
        "Mecze.wynik=wynik",
        "Mecze.wynik_do_przerwy=wynik_do_przerwy",
 
        "Mecze.kwarta1=kwarta1",
        "Mecze.kwarta2=kwarta2",
        "Mecze.kwarta3=kwarta3",
        "Mecze.kwarta4=kwarta4",
 
        "Mecze.dogrywka1=dogrywka1",
        "Mecze.dogrywka2=dogrywka2",
        "Mecze.dogrywka3=dogrywka3",
 
        "Mecze.hala=hala",
        "Mecze.widzowie=widzowie",
        "Mecze.sedziowie=sedziowie",
        "Mecze.strona_meczu=strona_meczu"
 
    }, ",")




Linia 286: Linia 286:
             fieldsMecze,
             fieldsMecze,
             {
             {
 
                 where = whereH2H,
                 where =
                    "(" ..
 
                    "(" ..
                    "Mecze.nazwa_statystyki1='" ..
                    team1SQL ..
                    "' AND " ..
                    "Mecze.nazwa_statystyki2='" ..
                    team2SQL ..
                    "')" ..
 
                    " OR " ..
 
                    "(" ..
                    "Mecze.nazwa_statystyki1='" ..
                    team2SQL ..
                    "' AND " ..
                    "Mecze.nazwa_statystyki2='" ..
                    team1SQL ..
                    "')" ..
 
                    ")",


                 orderBy =
                 orderBy =
Linia 314: Linia 292:


                 limit = 5000
                 limit = 5000
             }
             }
         )
         )
Linia 453: Linia 430:


         if wartosc > obecna then
         if wartosc > obecna then
            lista = {
                item
            }


             item.wartosc =
             item.wartosc =
                 wartosc
                 wartosc


             lista[1] =
             return lista
                item
 


         elseif wartosc == obecna then
         elseif wartosc == obecna then
Linia 471: Linia 452:


         end
         end
        return lista


     end
     end
Linia 479: Linia 463:
     -- =====================================================
     -- =====================================================


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


         local zdobyte,
         local zdobyte,
              stracone =
            stracone =
             wynikDruzyny(row)
             wynikDruzyny(row)


         local miejsceMeczu =
         local miejsceMeczu =
Linia 492: Linia 473:




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




Linia 516: Linia 497:


             -- =============================================
             -- =============================================
             -- BILANS OGÓŁEM
             -- OGÓŁEM
             -- =============================================
             -- =============================================


             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 535: Linia 518:
             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


             end
             end
Linia 550: Linia 533:
             -- =============================================
             -- =============================================


             local b =
             local bd =
                 bilans[miejsceMeczu]
                 bilans[miejsceMeczu]




             b.mecze =
             bd.mecze =
                 b.mecze + 1
                 bd.mecze + 1
 


             b.punktyZdobyte =
             bd.punktyZdobyte =
                 b.punktyZdobyte +
                 bd.punktyZdobyte +
                 zdobyte
                 zdobyte


 
             bd.punktyStracone =
             b.punktyStracone =
                 bd.punktyStracone +
                 b.punktyStracone +
                 stracone
                 stracone


Linia 570: Linia 551:
             if wynikMeczu == "W" then
             if wynikMeczu == "W" then


                 b.wygrane =
                 bd.wygrane =
                     b.wygrane + 1
                     bd.wygrane + 1


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


                 b.przegrane =
                 bd.przegrane =
                     b.przegrane + 1
                     bd.przegrane + 1