import socket
import requests


def send_data(value):
    url = "http://127.0.0.1:8088/API/"
    par = "SetText"
    if 'проверка' in value: 
        input = 34
    else:
        input = 35
    if "-" in value:
        params = {
		"Function": par,
		"Input": input,
		"SelectedName": "СТрока1.Text",
		"Value": value.split("-")[0].strip(),
	    }
        requests.get(url, params=params)
        params = {
		"Function": par,
		"Input": input,
		"SelectedName": "Строка2.Text",
		"Value": value.split("-")[1].strip(),
	    }
        requests.get(url, params=params)


VOR = "VOR3"

list_code = {
	"101": "Приветствие",
	"102": "Инфо",
	"103": "Игра проходит без системы определения офсайдных линий",
	"104": "Игра проходит без системы VAR",
	"105": "Проверка",
	"106": "проверка - Офсайд",
	"107": "проверка - Возможно, офсайд",
	"108": "проверка - Игра рукой",
	"109": "проверка - Фол в атаке",
	"110": "проверка - Симуляция",
	"111": "Игра проходит с системой VAR",
	"112": "Игра проходит с ограниченными техническими возможностями",
	"113": "Объявление решения",
	"114": "Неисправность системы объявления решений судьи",
	"115": "Не используется система объявления решений судьи",
	"116": "Решение подтверждено - офсайд",
	"117": "Нет офсайда",
	"118": "Возможно игра рукой в атаке",
	"119": "проверка - Игра рукой в атаке",
	"201": "проверка - Гол",
	"202": "Решение подтверждено - гол",
	"203": "Решение подтверждено - гол, нет офсайда",
	"204": "Решение подтверждено - гол, нет фола",
	"205": "Решение подтверждено - гол, нет игры рукой",
	"206": "Решение подтверждено - гол, мяч в игре",
	"207": "Решение подтверждено - гол, симуляция",
	"208": "Решение подтверждено - гол, мяч пересек линию ворот",
	"209": "Решение изменено - нет гола, офсайд",
	"210": "Решение изменено - нет гола, фол",
	"211": "Решение изменено - нет гола, игра рукой",
	"212": "Решение изменено - нет гола, мяч не в игре",
	"213": "Решение изменено - нет гола, мяч не пересек линию ворот",
	"301": "проверка - Возможно, гол",
	"302": "Решение подтверждено - нет гола",
	"303": "Решение подтверждено - нет гола, офсайд",
	"304": "Решение подтверждено - нет гола, фол",
	"305": "Решение подтверждено - нет гола, игра рукой",
	"306": "Решение подтверждено - нет гола, мяч не в игре",
	"307": "Решение подтверждено - нет гола, мяч не пересек линию ворот",
	"308": "Решение изменено - гол",
	"309": "Решение изменено - гол, нет офсайда",
	"310": "Решение изменено - гол, нет фола",
	"311": "Решение изменено - гол, нет игры рукой",
	"312": "Решение изменено - гол, мяч в игре",
	"313": "Решение изменено - гол, симуляция",
	"314": "Решение изменено - гол, мяч пересек линию ворот",
	"401": "проверка - Пенальти",
	"402": "Решение подтверждено - пенальти",
	"403": "Решение подтверждено - пенальти, фол",
	"404": "Решение подтверждено - пенальти, игра рукой",
	"405": "Решение подтверждено - пенальти, фол в штрафной",
	"406": "Решение подтверждено - пенальти, игра рукой в штрафной",
	"407": "Решение изменено - нет пенальти, нет фола",
	"408": "Решение изменено - нет пенальти, нет игры рукой",
	"409": "Решение изменено - нет пенальти, фол за штрафной",
	"410": "Решение изменено - нет пенальти, офсайд",
	"411": "Решение изменено - нет пенальти, фол в атаке",
	"412": "Решение изменено - нет пенальти, игра рукой в атаке",
	"413": "Решение изменено - нет пенальти, мяч не в игре",
	"414": "Решение изменено - нет пенальти, симуляция",
	"501": "проверка - Возможно, пенальти",
	"502": "Решение подтверждено - нет пенальти",
	"503": "Решение подтверждено - нет пенальти, нет фола",
	"504": "Решение подтверждено - нет пенальти, нет игры рукой",
	"505": "Решение подтверждено - нет пенальти, фол за штрафной",
	"506": "Решение подтверждено - нет пенальти, офсайд",
	"507": "Решение подтверждено - нет пенальти, фол в атаке",
	"508": "Решение подтверждено - нет пенальти, игра рукой в атаке",
	"509": "Решение подтверждено - нет пенальти, мяч не в игре",
	"510": "Решение подтверждено - нет пенальти, симуляция",
	"511": "Решение изменено - пенальти",
	"512": "Решение изменено - пенальти, фол",
	"513": "Решение изменено - пенальти, игра рукой",
	"514": "Решение изменено - пенальти, фол в штрафной",
	"515": "Решение изменено - пенальти, игра рукой в штрафной",
	"516": "Решение изменено – пенальти, нет симуляции",
	"601": "проверка - Красная карточка",
	"602": "Решение подтверждено - красная карточка",
	"603": "Решение изменено - жёлтая карточка",
	"604": "Решение изменено - нет карточки",
	"701": "проверка - Возможно, красная карточка",
	"702": "Решение подтверждено - нет красной карточки",
	"703": "Решение изменено - красная карточка",
	"704": "Решение изменено - жёлтая карточка",
	"801": "проверка - Идентификация игрока",
	"802": "Ошибочная идентификация игрока",
}


HOST = '127.0.0.1'  # Принимаем соединения со всех интерфейсов
PORT = 60000      # Порт, который будем слушать
                

def start_tcp_server():
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
        server_socket.bind((HOST, PORT))
        server_socket.listen(5)
        print(f"Сервер запущен на {HOST}:{PORT}")

        while True:
            client_socket, addr = server_socket.accept()
            with client_socket:
                print(f"Клиент подключился: {addr}")
                while True:
                    data = client_socket.recv(1024)
                    if not data:
                        break

                    try:
                        decoded = data.decode('utf-8')
                        print(f"Получено: {decoded}")
                        send_data(list_code[decoded.split("/")[2]])

                        # parts = decoded.split(", ")
                        # if len(parts) != 2:
                        #     print("Неверный формат сообщения")
                        #     continue

                        # sender, code = parts
                        # if sender == VOR and code in list_code:
                        #     send_data(list_code[code])
                        # else:
                        #     print("Неверный код или отправитель")

                    except Exception as e:
                        print(f"Ошибка обработки данных: {e}")

                print(f"Отключение клиента: {addr}")


if __name__ == "__main__":
    start_tcp_server()
