from selenium import webdriver
import math
import time

xpath_input = '//*[@id="doplay"]/div/div[2]/div[1]/input'
xpath_button = '//*[@id="doplay"]/div/div[6]/div[2]/span[1]'
xpath_result = '/html/body/div/div[2]/article/div[2]/div[2]/div[1]/div/div[2]/div/span[5]'
xpath_time = '//*[@id="remain-time-message"]'
xpath_game_check = '//*[@id="info-message"]'

g_table = ['실패', '성공']

def betting(e_input, e_button, point):
    e_input.send_keys(point)
    e_button.click()

def main():
    print(')
    print('* 오토 트레이딩 중 다른 주소로 옮기거나 새로고침하는 등 일체의 조작을 하지 마십시오.')
    print('* 또한 본 프로그램을 사용해서 발생하는 어떠한 형태의 손해는 책임지지 않습니다.')
    print('* 계속하면 위 내용에 동의한 것으로 간주합니다.')
    print('\n[시작시 엔터]')
    input()
    driver = webdriver.Chrome('chromedriver.exe')
    driver.maximize_window()
    driver.get('https://arca.live/u/login')
    print('[로그인 완료시 엔터]')
    input()
    print('[나무게임 접속중]')
    driver.get('https://arca.live/b/namugame')
    print('[나무게임 접속완료]')
    print('시작포인트 : ')
    s_point = int(input())
    print('최대포인트 : ')
    m_point = int(input())
    print('목표수익 : ')
    goal = int(input())
    print('[오토 트레이딩 시작]')
    lose_point = 0
    betting_point = s_point
    point = m_point
    count = 0
    while True:
        count += 1
        print('[{0}회차 진행] 베팅포인트 : {1} Pt.'.format(count, betting_point))
        elem_input = driver.find_element_by_xpath(xpath_input)
        elem_button = driver.find_element_by_xpath(xpath_button)
        point -= betting_point
        betting(elem_input, elem_button, betting_point)
        elem_gcheck = driver.find_element_by_xpath(xpath_game_check)
        while True:
            if elem_gcheck.text == '다음 나무게임을 기다리고 있습니다.':
                break
        while True:
            if elem_gcheck.text == '-나무게임-':
                break
        time.sleep(1)
        driver.refresh()
        time.sleep(0.5)
        elem_result = driver.find_element_by_xpath(xpath_result)
        result = 0
        if elem_result.text == '좌':
            result = 1
            point += math.floor((95/100) * (betting_point*2))
            betting_point = s_point
        else:
            betting_point *= 2
        print('[{0}회차 결과] {1} - 누적손익 : {2} Pt.'.format(count, g_table[result], point - m_point))
        
        if goal  point - m_point:
            break
        if betting_point > point:
            print('[파산] 마틴게일 실패!')
            break
    print('────────< 마틴게일 베팅 종료 >────────')
    print('시행횟수 : {0}'.format(count))
    print('남은 포인트 : {0}'.format(point))
    print('누적손익 : {0}'.format(point - m_point))
    while True:
        pass

main()