import pyautogui
import time
import subprocess
import os
import pyperclip

def vxod(file_path):
    """Чтение и обработка аккаунтов из файла."""

    # Попытка завершить процесс "lgc.exe"
    try:
        result = subprocess.run(["taskkill", "/f", "/im", "lgc.exe"], check=True, capture_output=True, text=True)
        print("Процесс lgc.exe успешно завершен. Вывод:", result.stdout)
    except subprocess.CalledProcessError as e:
        print("Не удалось завершить процесс lgc.exe. Ошибка:", e.stdout)
    
    # Попытка удалить файл
    config_path = "C:/Users/keros/AppData/Roaming/Lesta/GameCenter/user_info.xml"
    try:
        if os.path.exists(config_path):
            os.remove(config_path)
            print(f"Файл {config_path} успешно удален.")
        else:
            print(f"Файл {config_path} не найден.")
    except Exception as e:
        print(f"Не удалось удалить файл {config_path}: {e}")

    # Открытие lgc.exe
    lgc_path = "D:/Lesta/GameCenter/lgc.exe"
    try:
        subprocess.Popen(lgc_path)
        print(f"Файл {lgc_path} успешно открыт.")
    except Exception as e:
        print(f"Не удалось открыть файл {lgc_path}: {e}")

    # Чтение аккаунтов из файла и обработка их
    try:
        with open(file_path, 'r') as file:
            lines = file.readlines()
            for line in lines:
                line = line.strip()
                print(f"Обрабатываем строку: '{line}'")  # Логируем текущую строку
                if line:  # Пропускаем пустые строки
                    try:
                        email, password = line.split(':', 1)  # Разбиваем на email и пароль
                        email = email.strip()  # Убираем лишние пробелы
                        password = password.strip()
                        print(f"Загружен аккаунт: email = {email}, пароль = {password}")

                        # Процесс автоматизации для предоставленного логина и пароля
                        automate_login(email, password)

                        # После всех действий для аккаунта вызываем obuch
                        obuch(file_path)  # Передаем файл для продолжения
                        return  # Завершаем функцию после обработки текущей строки
                    except ValueError as e:
                        print(f"Ошибка разбора строки: '{line}'. Пропуская... Ошибка: {e}")
                else:
                    print(f"Пропускаем пустую строку.")

    except FileNotFoundError:
        print(f"Файл не найден: {file_path}")
    except Exception as e:
        print(f"Произошла ошибка при обработке файла: {e}")

def automate_login(email, password):
    """Производит автоматизацию процесса входа."""
    # Поиск и клик по изображению "voiti.png"
    while True:
        try:
            location = pyautogui.locateCenterOnScreen("D:/fileobuch/voiti.png", confidence=0.8)
            if location:
                print(f"Найдено изображение 'voiti.png' на координатах: {location}")
                pyautogui.click(location)
                break
            else:
                print("Не удалось найти изображение 'voiti.png'. Повторная попытка...")
        except Exception as e:
            print(f"Произошла ошибка при обработке 'voiti.png': {e}")
            time.sleep(2)

    # Поиск и клик по изображению "mail.png", затем ввод email
    while True:
        try:
            location = pyautogui.locateCenterOnScreen("D:/fileobuch/mail.png", confidence=0.8)
            if location:
                print(f"Найдено изображение 'mail.png' на координатах: {location}")
                pyautogui.click(location)
                
                # Используем pyperclip для копирования текста в буфер обмена
                pyperclip.copy(email)
                pyautogui.hotkey('ctrl', 'v')  # Вставляем email
                break
            else:
                print("Не удалось найти изображение 'mail.png'. Повторная попытка...")
        except Exception as e:
            print(f"Произошла ошибка при обработке 'mail.png': {e}")
        time.sleep(2)

    # Поиск и клик по изображению "password.png", затем ввод пароля
    while True:
        try:
            location = pyautogui.locateCenterOnScreen("D:/fileobuch/password.png", confidence=0.8)
            if location:
                print(f"Найдено изображение 'password.png' на координатах: {location}")
                pyautogui.click(location)
                
                # Используем pyperclip для копирования текста в буфер обмена
                pyperclip.copy(password)
                pyautogui.hotkey('ctrl', 'v')  # Вставляем пароль
                break
            else:
                print("Не удалось найти изображение 'password.png'. Повторная попытка...")
        except Exception as e:
            print(f"Произошла ошибка при обработке 'password.png': {e}")
        time.sleep(2)

    # Поиск и клик по изображению "vxodd.png" после ввода данных
    while True:
        try:
            location = pyautogui.locateCenterOnScreen("D:/fileobuch/vxodd.png", confidence=0.8)
            if location:
                print(f"Найдено изображение 'vxodd.png' на координатах: {location}")
                pyautogui.click(location)
                break
            else:
                print("Не удалось найти изображение 'vxodd.png'. Повторная попытка...")
        except Exception as e:
            print(f"Произошла ошибка при обработке 'vxodd.png': {e}")
        time.sleep(2)

    # Поиск и клик по изображению "igraatb.png" после нажатия на "vxodd.png"
    while True:
        try:
            location = pyautogui.locateCenterOnScreen("D:/fileobuch/igraatb.png", confidence=0.8)
            if location:
                print(f"Найдено изображение 'igraatb.png' на координатах: {location}")
                pyautogui.click(location)
                break
            else:
                print("Не удалось найти изображение 'igraatb.png'. Повторная попытка...")
        except Exception as e:
            print(f"Произошла ошибка при обработке 'igraatb.png': {e}")
        time.sleep(2)

def obuch(file_path, confidence=0.95):
    # Список изображений для совместного поиска
    images = [
        "D:/fileobuch/igrat.png",
        "D:/fileobuch/crestik.png",
        "D:/fileobuch/rozigrish.png",
        "D:/fileobuch/igrat2.png",
        "D:/fileobuch/kupit.png",
        "D:/fileobuch/zabratb.png",
        "D:/fileobuch/konec.png",
        "D:/fileobuch/taktocho.png",
    ]
    while True: 
        time_found = False
        for image_path in images:
            try:
                location = pyautogui.locateCenterOnScreen(image_path, confidence=confidence)
                if location:
                    print(f"Найдено изображение '{image_path}' на координатах: {location}")
                    pyautogui.click(location)
                    if image_path.endswith("konec.png"):
                        time_found = True
                        break
                    elif image_path.endswith("crestik.png"):
                        time.sleep(4)
                        continue

            except Exception as e:
                print(f"Произошла ошибка с '{image_path}': {e}")

        if time_found:
            print("Переход к функции first() после нахождения time.png")
            first(file_path)
            return  # Завершаем выполнение obuch

def first(file_path): 
    """Завершение процесса tanksblitz.exe и добавление завершенного аккаунта в third.txt."""
    print("Переход к функции first()")

    # Закрытие процесса "tanksblitz.exe"
    try:
        subprocess.run(["taskkill", "/f", "/im", "tanksblitz.exe"], check=True)
        print("Процесс tanksblitz.exe успешно завершен.")
    except subprocess.CalledProcessError as e:
        print("Не удалось завершить процесс tanksblitz.exe:", e)

    # Добавление завершенного аккаунта в third.txt
    try:
        # Чтение всех строк из файла аккаунтов
        with open(file_path, 'r') as file:
            lines = file.readlines()
        
        # Удаление первой строки (текущего аккаунта) из списка
        if lines:
            account_info = lines[0].strip()  # Берем первую строку
            lines.remove(account_info + "\n")

            # Запись оставшихся строк обратно в файл аккаунтов
            with open(file_path, 'w') as file:
                file.writelines(lines)

            # Запись текущего аккаунта в third.txt
            first_txt_path = "D:/fileobuch/kontitake.txt"
            with open(first_txt_path, "a") as first_file:
                first_file.write(account_info + "\n")
                print(f"Аккаунт {account_info} добавлен в {first_txt_path}.")
    except Exception as e:
        print(f"Ошибка при добавлении аккаунта в third.txt или обновлении {file_path}: {e}")

    # Повторный запуск функции для обработки следующего аккаунта
    vxod(file_path)

# Вызов функции для обработки аккаунтов
vxod("D:/fileobuch/konti.txt")
у меня есть такой код как мне добавить если в def obuch если он не может найти ни одно изображение 5 минут то он отправляет этот аккаунт в oshibka.txt и начинает следующий аккаунт