from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

import chromedriver_binary
import requests
import time
import sys
import os
import random
import json
# import check_sqlite
import slackweb
from datetime import datetime as dt
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

# ランダムリスト
l = [3, 4, 5, 6, 7]
keys_json = open('config.json', 'r')
keys = json.load(keys_json)
#任意に変更してください
DRIVER_PATH = keys["driver_path"]
userdata_dir = 'tmp_data'
os.makedirs(userdata_dir, exist_ok=True)
#WindowsPC用　exeを用意しないとうまくいかない可能性が高い
#driver_path = 'C:\driver\chromedriver.exe'
if __name__ == '__main__':

    through_flg = 0
    layout_num = 0
    footprint_num = 0

    #ブラウザーでみられるようになる
    # options.add_argument('--headless')
    # Chromeのドライバを得る
    print("★処理をスタートするよ！！")
    print("開始日時：" + dt.now().strftime("%Y-%m-%d %H:%M:%S"))

    #テーブルの作成
    # check_sqlite.createProfilesTable()

    
    # message = '現在のあしあと数: ' + str(footprint_num)
    # slack = slackweb.Slack(url="https://hooks.slack.com/services/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")
    # slack.notify(text=message)
    # sys.exit()

    options = webdriver.ChromeOptions()
    options.add_argument('--user-data-dir='+ keys["path"]+ '\\' + userdata_dir)
    # if DRIVER_PATH == '':
    #     browser = webdriver.Chrome(chrome_options=options)
    # else:
    #     browser = webdriver.Chrome(chrome_options=options,executable_path=DRIVER_PATH)
    browser = webdriver.Chrome(ChromeDriverManager().install(),options=options)
    wait = WebDriverWait(browser, 10)

    print("ログイン")
    #pairsログイン
    browser.get("https://tinder.com/app/recs")
    # 検索ページへ
    # browser.get("https://pairs.lv/search")
    time.sleep(5)

    while True:    
        
        
        element = browser.find_element_by_tag_name('body')

        # まわりにメンバーがもういないみたい。グローバルモードをONにすると、他のエリアにいるメンバーとつながれるよ。ONにした後に「設定」からいつでもOFFにできるよ。
        if 'まわりにメンバーがもういないみたい' in element.text:
            print("まわりにメンバーがもういないみたい。")
            time.sleep(3)
            break
            
        else:
            print("→")
            element.send_keys(Keys.ARROW_RIGHT)
            time.sleep(3)


            element.send_keys(Keys.ESCAPE)
            time.sleep(3)

    browser.quit()
        

    # # 一番上のレイアウトまでスクロールしておく
    # browser.execute_script("window.scrollTo(0, 164);")
    # time.sleep(2)

    # while True:            

    #     if through_flg == 0:
    #         if footprint_num > 100:
    #             through_flg = 1
    #         # layout全体を取得
    #         # browser.find_element_by_tag_name('body').send_keys(Keys.PAGE_DOWN)  
    #         browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    #         time.sleep(5)

    #         if len(browser.find_elements_by_id('layout-' + str(layout_num))) == 1:
    #             layout = browser.find_element_by_id('layout-' + str(layout_num))
    #             # print('レイアウトNo')
    #             # print(layout_num)
                
    #             # layout全体の高さを取得
    #             layout_height = str(layout.size['height'])


    #             profile_links = []
    #             profile_nodes = layout.find_elements_by_css_selector('a[href*="/user/profile/"]')

    #             print("レイアウト" + str(layout_num) +"のプロフィール数："+ str(len(profile_nodes)))
                
    #             for child_node in profile_nodes:
    #                 # print(child_node.text)
    #                 profile_links.append(child_node.get_attribute("href"))
    #                 # child_node.click()
    #                 # time.sleep(3)

            
    #             for profile_link in profile_links:

    #                 url_arr = profile_link.split('/')
    #                 user_id = url_arr[-1]
    #                 print(user_id)
    #                 # time.sleep(10)


    #                 data = check_sqlite.getProfile(user_id)
    #                 if data != None:
    #                     print("テーブルにすでに登録されています")
                        
    #                 else:
    #                     browser.get(profile_link)
    #                     data = {
    #                         "user_id":user_id,
    #                     }
    #                     check_sqlite.insertProfile(data)
    #                     footprint_num += 1
    #                     print('----------------')
    #                     print(f'現在のあしあと数: {footprint_num}')

    #                     time.sleep(10)


    #             layout_num += 1
    #         else :
                
    #             print("レイアウトが見つからなかったため、処理終了")
    #             break
    #     else:
    #         break


        
    # print("処理終了")
    # browser.quit()
    # message = '現在のあしあと数: ' + str(footprint_num)
    # slack = slackweb.Slack(url="https://hooks.slack.com/services/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")
    # slack.notify(text=message)
