Dim fs_rows_length As Long
Dim cntx As Long
Sub getMatches()
On Error Resume Next
Application.Calculation = xlCalculationAutomatic
Dim http As Object
Dim wsCountry As Worksheet
Dim tour_name As String, country_name As String, lig_type As String
Dim sourcer As String, suffix As String, match_id As String
Dim timezone As Integer, dayzone As Integer, lig_indx As Integer, tours_indx As Integer
Dim x1 As Integer, a1 As Long, b1 As Long
Dim fs_input As String, fs_rows As Variant
Dim i As Long, j As Long, fs_row_length As Long
Dim celPaste As Range, found As Range, fs_row As Variant, fs_index As Variant, fs_row_parts As Variant
Dim sport_id As String, country_id As String, date_match As String, home_name As String
Dim away_name As String, first_home As String, first_away As String
Dim second_home As String, second_away As String
timezone = Sheets("Settings").Range("B1").Value - 1
dayzone = Sheets("Settings").Range("D1").Value - 8
sourcer = Sheets("Settings").Range("F1").Value
lig_indx = Sheets("Settings").Range("K1").Value
tours_indx = Sheets("Settings").Range("M1").Value
Select Case sourcer
Case 1
sourcer = "flashscore.com/"
suffix = "_en_1_"
Case 2
sourcer = "soccer24.com/"
suffix = "_en_1_"
Case 3
sourcer = "flashfootball.com/"
suffix = "_en_1_"
Case 4
sourcer = "flashscorekz.com/"
suffix = "_en_1_"
Case 5
sourcer = "livescore.in/ru/"
suffix = "_ru_1"
Case 6
sourcer = "livesport.com/ru/"
suffix = "_ru_1"
End Select
' Убираем фильтры на листе "listing", если они установлены
If Worksheets("listing").AutoFilterMode Then
Worksheets("listing").Rows.AutoFilter
End If
x1 = ThisWorkbook.Sheets("Settings").Range("I1").Value
If Sheets("DataPort").Range("j1").Value > 2 Then
Sheets("DataPort").Range("j54").ClearContents
Dim lRetVal As Long
lRetVal = MsgBox("Чтобы Очистить существующий listing и начать всё заново - нажмите Да." & _
Chr(10) & "Чтобы продолжить listing дальше - нажмите Нет." & _
Chr(10) & "Чтобы подумать, что же сделать - нажмите Отмена.", _
vbYesNoCancel + vbQuestion, "Очистить listing или... ?")
If lRetVal = vbNo Then
Sheets("DataPort").Range("j54").Value = 2
ElseIf lRetVal = vbYes Then
Sheets("DataPort").Range("j54").Value = 1
ElseIf lRetVal = vbCancel Then
Exit Sub
End If
End If
If Sheets("DataPort").Range("j54").Value = 1 Then
ClearLIST
ClearPrevious
End If
a1 = Sheets("DataPort").Range("j1").Value
b1 = 1
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", "https://d." & sourcer & "x/feed/f_1_" & dayzone & "_" & timezone & suffix, False
http.setRequestHeader "X-Fsign", "SW9D1eZo"
http.send
fs_input = http.responseText
fs_rows = Split(fs_input, "~")
fs_rows_length = UBound(fs_rows) - LBound(fs_rows)
Set wsCountry = ThisWorkbook.Sheets("Country")
Call Show_PrBar_Or_No(fs_rows_length, "Загружаю матчи...")
' Основной цикл обработки данных
For i = 0 To fs_rows_length - 4
If bShowBar Then Call MyProgresBar
fs_row = Split(fs_rows(i), "¬")
fs_row_length = UBound(fs_row) - LBound(fs_row)
fs_index = Split(fs_row(0), ChrW(&HF7))
If IsArray(fs_index) Then
fs_index_name = fs_index(0)
fs_index_value = fs_index(1)
End If
' Если индекс SA
If fs_index_name = "SA" Then
sport_id = fs_index_value
' Если индекс ZA
ElseIf fs_index_name = "ZA" Then
' Обрабатываем параметры турнира
For j = 0 To fs_row_length - 1
fs_row_parts = Split(fs_row(j), ChrW(&HF7))
Select Case fs_row_parts(0)
Case "ZA": tour_name = fs_row_parts(1)
Case "ZB": country_id = fs_row_parts(1)
Case "ZY": country_name = fs_row_parts(1)
Case "ZG": lig_type = fs_row_parts(1) ' 1 - Турниры, 2 - Кубки
End Select
Next j
' Проверяем, существует ли турнир в списке на листе "Country"
Set found = wsCountry.Columns("A").Find(What:=tour_name, LookIn:=xlValues, LookAt:=xlWhole)
' Проверка, если турнир не найден, переходим к следующей строке
If found Is Nothing Then
GoTo SkipToNextRow
End If
' Убедимся, что значение найдено и совпадает с туром
If Not found Is Nothing Then
' Продолжаем код только для найденных туров
Debug.Print "Турнир найден: " & tour_name
Else
' Переходим к следующему матчу, если турнир не соответствует
Debug.Print "Турнир не найден: " & tour_name
GoTo SkipToNextRow
End If
End If
If fs_index_name = "AA" Then
first_home = "": first_away = "": second_home = "": second_away = ""
For j = 0 To fs_row_length - 1
fs_row_parts = Split(fs_row(j), ChrW(&HF7))
If fs_row_parts(0) = "AA" Then match_id = fs_row_parts(1)
If fs_row_parts(0) = "AD" Then
date_match = DateAdd("s", fs_row_parts(1), "01/01/1970")
date_match = DateAdd("h", timezone, date_match)
date_match = Format(date_match, "dd.mm.yyyy hh:mm")
End If
If fs_row_parts(0) = "AE" Then home_name = fs_row_parts(1)
If fs_row_parts(0) = "AF" Then away_name = fs_row_parts(1)
If fs_row_parts(0) = "AT" Then first_home = fs_row_parts(1)
If fs_row_parts(0) = "AU" Then first_away = fs_row_parts(1)
If fs_row_parts(0) = "BC" Then second_home = fs_row_parts(1)
If fs_row_parts(0) = "BD" Then second_away = fs_row_parts(1)
Next j
|