Модуль:FetchData3: відмінності між версіями

нема опису редагування
Немає опису редагування
Немає опису редагування
Рядок 32: Рядок 32:
     -- Отримуємо заголовки (перший рядок після {|)
     -- Отримуємо заголовки (перший рядок після {|)
     local headers = {}
     local headers = {}
     local first_row = nil
     local first_row = mw.ustring.match(table_content, "{|[^\n]*\n!(.-)[\n]")
   
    -- Шукаємо рядок з заголовками
    for line in mw.ustring.gmatch(table_content, "([^\n]+)") do
        if mw.ustring.match(line, "^!") then
            first_row = line
            break
        end
    end
      
      
     if first_row then
     if first_row then
        -- Замінюємо   на пробіли
         -- Розбиваємо заголовки по ||
        first_row = mw.ustring.gsub(first_row, " ", " ")
         for header in mw.ustring.gmatch(first_row, "([^|]+)") do
       
         -- Розбиваємо по ! або !!
         for header in mw.ustring.gmatch(first_row, "!+%s*([^!]+)") do
             local trimmed = mw.text.trim(header)
             local trimmed = mw.text.trim(header)
             if trimmed ~= "" then
             if trimmed ~= "" then
Рядок 192: Рядок 181:
     local prize_data = get_player_row("Призовий_фонд", name)
     local prize_data = get_player_row("Призовий_фонд", name)
      
      
     -- Створюємо мапу призових
     -- Створюємо мапу призових для швидкого доступу
     local prize_map = {}
     local prize_map = {}
     if prize_data then
     if prize_data then
Рядок 229: Рядок 218:
              
              
             if medal then
             if medal then
                 -- Прибираємо (фінал)/(рейтинг) для пошуку призових
                 -- Отримуємо назву турніру без (фінал)/(рейтинг)
                 local clean_header = mw.ustring.gsub(header, "%s*%(фінал%)%s*", "")
                 local clean_header = mw.ustring.gsub(header, "%s*%(фінал%)%s*", "")
                 clean_header = mw.ustring.gsub(clean_header, "%s*%(рейтинг%)%s*", "")
                 clean_header = mw.ustring.gsub(clean_header, "%s*%(рейтинг%)%s*", "")
                 clean_header = mw.text.trim(clean_header)
                 clean_header = mw.text.trim(clean_header)
                  
                  
                 -- Нормалізуємо апостроф
                 -- Отримуємо призові з мапи
                clean_header = mw.ustring.gsub(clean_header, "'", "'")
               
                -- Шукаємо призові
                 local prize_value = prize_map[clean_header]
                 local prize_value = prize_map[clean_header]
                 if not prize_value then
                 local prize_amount = "0 ₴"
                    clean_header = mw.ustring.gsub(clean_header, "'", "'")
                    prize_value = prize_map[clean_header]
                end
                  
                  
                local prize_amount = "0 ₴"
                 if prize_value and prize_value ~= "" and prize_value ~= "-" and prize_value ~= "0" then
                 if prize_value and prize_value ~= "" and prize_value ~= "-" and prize_value ~= "0" then
                     prize_amount = prize_value .. " ₴"
                     prize_amount = prize_value .. " ₴"
                 end
                 end
                  
                  
                 -- Дата турніру
                 -- Отримуємо дату турніру
                 local date = tournament_dates[clean_header] or "01.01.2023"
                 local date = tournament_dates[clean_header] or "01.01.2023"
                  
                  
                 -- Посилання на турнір
                 -- Форматуємо посилання на турнір
                 local tournament_link = get_tournament_link(header)
                 local tournament_link = get_tournament_link(header)