#import redis
import time
import traceback
#import json
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time
import os
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import random
import time
import sys
import codecs
import random
import os
import time
#import pyautogui

driver=None

def re_get_webdriver():
    global driver
    result=[]
    if driver is not None:
        print('closing....')
        driver.quit()
        os.system('killall chrome')
        print('quit....')
        driver=None
    try:
#        ua = userAgents()

#        user_agent = ua.random()        

        options = webdriver.ChromeOptions()


        mobile_emulation = {
            "deviceMetrics": { "width": 360, "height": 640, "pixelRatio": 3.0 },
            "userAgent": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19" }
#        options.add_experimental_option("mobileEmulation", mobile_emulation)

        options.add_argument("--no-sandbox")
        options.add_argument("--disable-dev-shm-usage")
        options.add_argument("--headless")
#        print(user_agent)
#        options.add_argument("--user-agent=" +user_agent)
        options.add_argument("--incognito")
        driver=None
        try:
            driver = webdriver.Chrome(options=options)
        except:
#            driver.quit()
#            os.system('pkill -f ')
            os.system('kill %d' % os.getpid())
            sys.exit()
            return
        driver.set_window_size(1400,1000)
        return
    except:
        import traceback
        traceback.print_exc()
        driver=None
        return None

def run_once(url):
    global driver
    i=random.randint(0,7)
    if i==0 or driver is None:
        time.sleep(8)
        re_get_webdriver()
    if driver is None:
        return
    try:
        driver.get('https://meta.chuzmo.com/HxXfN9r/keelung-cityexpo')
        time.sleep(12)
        elmt=driver.find_element_by_xpath("//span[contains(text(),'Join Room')]/..")
        webdriver.ActionChains(driver).move_to_element(elmt).perform()
        webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
        time.sleep(5)
        elmt=driver.find_element_by_xpath("//Button[contains(text(),'Accept')]")
        webdriver.ActionChains(driver).move_to_element(elmt).perform()
        webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
        time.sleep(5)
        elmt=driver.find_element_by_xpath("//Button[contains(text(),'Enter Room')]")
        webdriver.ActionChains(driver).move_to_element(elmt).perform()
        webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
        time.sleep(5)

        elmt=driver.find_element_by_xpath("//body")
        print(elmt)
        webdriver.ActionChains(driver).move_to_element(elmt).perform()
        webdriver.ActionChains(driver).move_to_element(elmt).click().perform()

        print('elmt found')
#        pyautogui.press('tab')
#        pyautogui.press('tab')
#        pyautogui.press('enter')
#        pyautogui.press('enter')



        i=0
        elmt=driver.find_element_by_xpath("//body")
        elmt.send_keys(Keys.ENTER)
        elmt.send_keys(Keys.ENTER)
        elmt.send_keys(Keys.ENTER)

        while True:
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
            webdriver.ActionChains(driver).key_down('w').key_up('w').perform()

            i=random.randint(0,2)
            if i==0:
                webdriver.ActionChains(driver).key_down('q').key_up('q').perform()
                webdriver.ActionChains(driver).key_down('q').key_up('q').perform()
            if i==1:
                webdriver.ActionChains(driver).key_down('e').key_up('e').perform()
                webdriver.ActionChains(driver).key_down('e').key_up('e').perform()
            if i==2:
                webdriver.ActionChains(driver).key_down('w').key_up('w').perform()
                webdriver.ActionChains(driver).key_down('w').key_up('w').perform()



#            pyautogui.keyDown('w')
#            time.sleep(0.1)
#            pyautogui.keyUp('w')
#            pyautogui.keyDown('a')
#            time.sleep(0.1)
#            pyautogui.keyUp('a')
#            i+=1
#           i%=10
#           if i==0:
#               pyautogui.keyDown('q')
#                time.sleep(0.1)
#                pyautogui.keyUp('q')
#                pyautogui.keyDown('q')
#                time.sleep(0.1)
#                pyautogui.keyUp('q')

#        driver.quit()
        print("DONE!!!!")
#        driver.execute_script('window.open("'+url+'","_blank");')
#        driver.execute_script("window.scrollTo(0, window.scrollY + 400)")
#        time.sleep(0.5)
    except:
        traceback.print_exc()
        print('exception')
#        time.sleep(9999)


lst=[]



#lst=['https://www.hhh.com.tw/columns/detail/3427/index.php']
    #for i in range(20):
while True:
    l='https://cmm.ai/meta'
    print(l)
    try:
        run_once(l)
        time.sleep(2)
        break
    except:
        traceback.print_exc()