import pandas as pd
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
import time

# Чтение данных из CSV файла
csv_file_path = 'kinopoisk_series_and_dorama_info.csv'
data = pd.read_csv(csv_file_path)

# Выбор первой строки (или можно использовать цикл для обработки всех строк)
first_row = data.iloc[0]

# Получение значений из первой строки
title = str(first_row['Название'])
kp_id = str(first_row['ID'])
type_of_show = str(first_row['Тип'])

# Установка и запуск драйвера
options = webdriver.ChromeOptions()
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=options)

try:
    # Вход в админку WordPress
    driver.get("https://detectiv-dorama-lordfilm.ru/awesome")
    time.sleep(2)

    # Авторизация
    username = driver.find_element(By.ID, "user_login")
    password = driver.find_element(By.ID, "user_pass")
    login_button = driver.find_element(By.ID, "wp-submit")

    username.send_keys("awesome_author")  # Ваш логин
    password.send_keys("2958hnugOsteZL84ZMW3Ap5u")  # Ваш пароль
    login_button.click()

    # Шаг 1: Переход в плеер
    driver.get("https://detectiv-dorama-lordfilm.ru/wp-admin/post-new.php?post_type=player")
    time.sleep(1)

    # Ввод ID Кинопоиска
    kp_id_input = driver.find_element(By.ID, "acf-field_61587111f5d02")  # Замените на реальный селектор
    kp_id_input.clear()  # Очистить поле перед вводом
    kp_id_input.send_keys(kp_id)
    time.sleep(1)

    # Шаг 2: Добавление рубрики
    driver.get("https://detectiv-dorama-lordfilm.ru/wp-admin/post-new.php")
    time.sleep(6)

    # Добавление новой рубрики
    # Клик по кнопке "Добавить новую рубрику"
    add_category_button = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, "category-add-toggle"))
    )
    add_category_button.click()
    print("1")
    
    # Ввод названия новой рубрики
    category_input = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.ID, "newcategory"))
    )
    category_input.clear()  # Очистить поле перед вводом
    category_input.send_keys(title)
    print("2")

    # Клик по кнопке "Добавить новую рубрику"
    confirm_button = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, "category-add-submit"))
    )
    confirm_button.click()
    print("3")
    print("Действия успешно выполнены!")

    # Установка типа показа
    if type_of_show == "tv-series":
        print("Устанавливаем галочку для типа 'tv-series'")
        checkbox_tv_series = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.ID, "in-type-19-2"))
        )
        if not checkbox_tv_series.is_selected():
            checkbox_tv_series.click()
    elif type_of_show == "movie":
        print("Устанавливаем галочку для типа 'movie'")
        checkbox_movie = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.ID, "in-type-2-2"))
        )
        if not checkbox_movie.is_selected():
            checkbox_movie.click()

    # Работа с текстовым редактором ACF
    try:
        # Переключаемся на текстовый редактор для поля 'acf-editor-59'
        switch_acf_editor_button = WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.ID, "acf-editor-59-tmce"))
        )
        switch_acf_editor_button.click()
        print("Переключились на ACF текстовый редактор.")

        # Переключаемся на iframe ACF
        driver.switch_to.frame("acf-editor-59_ifr")

        # Ждем, пока текстовая область станет доступной для ввода текста
        text_area_acf = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.ID, "tinymce"))  # ID для текстового редактора
        )
        text_area_acf.clear()  # Очищаем текстовое поле
        text_area_acf.send_keys("Ваш текст для acf-editor-59")  # Замените на нужный текст
        print("Текст успешно введен в ACF текстовую область.")
        
        # Возвращаемся в основной контекст после работы с ACF
        driver.switch_to.default_content()

    except Exception as e:
        print(f"Ошибка при работе с ACF текстовым редактором: {e}")

    # Работа с основным текстовым редактором
    try:
        # Переключаемся на текстовый редактор для основного содержимого
        switch_content_editor_button = WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.ID, "content-tmce"))  # ID для переключения на визуальный редактор
        )
        switch_content_editor_button.click()
        print("Переключились на основной текстовый редактор.")

        # Переключаемся на iframe основного редактора
        driver.switch_to.frame("content_ifr")  # ID вашего iframe для основного редактора

        # Ждем, пока текстовая область станет доступной для ввода текста
        text_area_content = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.ID, "tinymce"))  # Используем ID для текстового редактора
        )
        text_area_content.clear()  # Очищаем текстовое поле
        text_area_content.send_keys("Ваш текст для основного редактора")  # Замените на нужный текст
        print("Текст успешно введен в основной текстовой редактор.")

        # Возвращаемся в основной контекст после работы с основным редактором
        driver.switch_to.default_content()

            # Мета описание
        meta_description_field = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@id='yoast-google-preview-description-metabox']//div[@class='public-DraftStyleDefault-block public-DraftStyleDefault-ltr']"))
        )
        
        meta_description_field.click()
        meta_description_field.send_keys("Ваш текст для мета-описания")  
        print("Текст успешно введён в мета-описание.")

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

except Exception as e:
    print(f"Ошибка: {e}")
finally:
    input("Press Enter to close the browser...")
    driver.quit()