from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def get_driver():
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--window-size=1280x1696')
    chrome_options.add_argument('--user-data-dir=/tmp/user-data')
    chrome_options.add_argument('--hide-scrollbars')
    chrome_options.add_argument('--enable-logging')
    chrome_options.add_argument('--log-level=0')
    chrome_options.add_argument('--v=99')
    chrome_options.add_argument('--single-process')
    chrome_options.add_argument('--data-path=/tmp/data-path')
    chrome_options.add_argument('--ignore-certificate-errors')
    chrome_options.add_argument('--homedir=/tmp')
    chrome_options.add_argument('--disk-cache-dir=/tmp/cache-dir')
    chrome_options.add_argument('user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36')
    chrome_options.binary_location = "/opt/python/bin/headless-chromium"

    driver = webdriver.Chrome("/opt/python/bin/chromedriver", chrome_options=chrome_options)
    return driver

def auto_booking(b_url):
    driver = get_driver()
    driver.get("<https://www.itlo.org/login>")    # 도서제작 봉사활동 로그인 페이지
    driver.implicitly_wait(10)                   # 접속하는 동안 대기(최대 3초)
    
    login_info = {'id': '********@gmail.com', 'pw': '*********'}
    
    driver.find_element_by_name('email').send_keys(login_info['id']) # 아이디
    driver.find_element_by_name('pwd').send_keys(login_info['pw'])   # 비밀번호
    driver.find_element_by_id('sub').click()                         # 로그인
    
    driver.get(b_url)
    driver.find_element_by_xpath('//*[@id="container"]/div[1]/div/table/tbody/tr[4]/td/div[3]/div/div/a').click()
    driver.switch_to.window(driver.window_handles[1])    # 새 창으로 이동
    
    # 제작 가능한 페이지가 없는 경우 : "페이지가 없어요 다른 책을 선택해주세요."
    # 이미 작업 중인 경우 : "현재 입력중인 페이지가 있습니다 돌아가시겠습니까?""
    page_text = driver.find_element_by_xpath('/html/body/table[1]/tbody/tr').text
    print(page_text)
    
    if "페이지가 없어요" in page_text:
        driver.find_element_by_xpath('/html/body/table[1]/tbody/tr/td/input').click()    # '닫기' 클릭
        driver.switch_to.window(driver.window_handles[0])    # 기존 창으로 이동
        driver.close()
        return "False"
    elif "현재 입력중인 페이지가 있습니다" in page_text:
        driver.find_element_by_xpath('/html/body/table[1]/tbody/tr/td/input[1]').click()    # '닫기' 클릭
        driver.switch_to.window(driver.window_handles[0])    # 기존 창으로 이동
        driver.close()
        return "False2"
    else:   # 제작 가능한 경우
        driver.find_element_by_xpath('/html/body/table[1]/tbody/tr[2]/td/input[2]').click()    # '진행하기' 클릭
        driver.switch_to.window(driver.window_handles[0])    # 기존 창으로 이동
        driver.close()
        return "True"