from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time
import os
import urllib.parse
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import codecs
import random
from bs4 import BeautifulSoup
import requests
import time
import redis
import time


headers = {
        "Authorization": "Bearer " + "t35vhZtWNgvDNWHc3DJh0OKll3mcB9GvC8K2EAkBug2",
        "Content-Type": "application/x-www-form-urlencoded"
}



def send_msg(kw):
    params = {"message": "處理關鍵字: "+kw}  
    r = requests.post("https://notify-api.line.me/api/notify",headers=headers, params=params)


def empty_query(q):
    global driver
    googleurl='https://www.google.com/search?q='+urllib.parse.quote(q)
    driver.get(googleurl)
    time.sleep(3)


def process_query(q):
    global driver
    googleurl='https://www.google.com/search?q='+urllib.parse.quote(q)
    driver.get(googleurl)
    time.sleep(3)

    elmts=driver.find_elements_by_xpath("//div[@class='g']//div[@class='yuRUbf']//a")
    idx=1
    ranking=-1
    for elmt in elmts:
        href=elmt.get_attribute('href')
        txt=elmt.text
        if len(txt)>10:
#            if 'hhh.com.tw' in href:
            if 'hhh.com.tw' in href:
#            if 'searchome.net' in href:
                webdriver.ActionChains(driver).move_to_element(elmt).perform()
                webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
                break
#    fw=codecs.open('c:/tmp/gg.html','w','utf-8')
#    fw.write(driver.page_source)
#    fw.close()

#    driver.save_screenshot("c:/tmp/screen.png")
#    os.startfile("c:/tmp/screen.png")
#    driver.quit()

#qlist=['上築空間設計','豐聚室內裝修','富億空間設計','浩室設計','京璽國際','IS國際設計','優尼客','摩登雅舍','亞維空間設計','比沙列','富億設計','豐聚設計']
#qlist=['IS國際設計']
#qlist=['YHS DESIGN','齊舍設計','奧立佛竺居','阿曼空間設計','界陽大司室內設計','尚藝室內裝修','禾禾設計','上陽設計','苡希創意設計','羽筑空間設計','將作空間']
#qlist=['富億空間','幸福空間節目 富億','幸福空間設計師 富億','幸福空間 富億','幸福空間 fe設計','老屋 富億','老屋翻新 富億','天井設計案例 富億','IS國際設計','豐聚設計','浩室設計','優尼客','摩登雅舍','亞維空間設計','比沙列','京璽國際','上築空間設計']
#qlist+=['合砌設計','羽筑空間設計','朱英凱室內設計','將作空間','藝谷空間','文儀室內裝修','維耕設計','亞維空間設計','比沙列','上築空間設計','京璽國際','IS國際設計','優尼客','摩登雅舍','玖柞設計','麻石設計','元典設計','大琚空間','惹雅國際','橙果創意','PLSB建境','聯寬室內裝修']
#qlist+=['合砌設計','羽筑空間設計','朱英凱室內設計','將作空間','藝谷空間','文儀室內裝修','維耕設計','亞維空間設計','比沙列','上築空間設計','京璽國際','IS國際設計','優尼客','摩登雅舍','玖柞設計','麻石設計','元典設計','大琚空間','惹雅國際','橙果創意','PLSB建境','聯寬室內裝修']

#qlist+=['卓林室內設計','成綺空間設計','德本迪設計','昱森室內設計','千綵胤空間設計','上築空間設計']
#qlist+=['IS 國際設計','IS國際設計','IS設計 陳嘉鴻''IS設計 費用','陳嘉鴻 mobile01','IS國際設計 風格','IS國際設計 接案風格','IS國際設計 現代風','IS國際設計 老屋翻新']

#qlist+=['奧立佛 設計師 鍾鼎','奧立佛 老屋翻新','奧立佛 住宅改造','奧立佛 監工費','奧立佛 設計 鍾黎']
#qlist=['富億空間設計','富億空間設計 新成屋','富億空間設計 新成屋','富億空間設計 老屋翻新','富億空間設計 陳錦樹','富億空間設計 設計師','富億空間設計 室內設計','富億空間設計 室內設計師']
#qlist+=['富億空間 新成屋','富億空間 新成屋','老屋翻新','富億空間 陳錦樹','富億空間 設計師','富億空間 室內設計']

#qlist+=['界陽室內設計','界陽大司室內設計','界陽x大司','界陽大司 馬健凱設計師','界陽大司 設計師','界陽大司 設計風格']
#qlist+=['卓林室內設計','卓林設計 林繹寬','卓林設計 設計師','卓林設計 機能宅','卓林設計 室內設計','卓林 室內設計','卓林設計 坪效','卓林設計 空間設計']
#qlist+=['德本迪 宜荷','德本迪 室內設計','德本迪 裝修','德本迪 宋雯鈴','德本迪 宋志鍾','德本迪 室內設計諮詢','德本迪 系統家具']
#接案風格：現代風/古典風/休閒風/低調奢華/新古典。接案類型：小坪數/標準格局/別墅/大坪數/老屋翻新/樓中樓/實品／樣品屋/商業空間/挑高樓層。老屋翻新欲了解陳嘉鴻設計師價格?  到幸福空間看更多PTT、mobile01版友好評推薦的 is國際設計-陳嘉鴻設計師計費及作品。

#qlist=['建境 構建築','建境 plsb','建境 室內設計','建境 空間設計','plsb建境 專線','建境 專線']

#qlist=['優尼客設計','優尼客設計 空間設計','優尼客設計 設計','優尼客設計 黃仲均','優尼客設計 室內設計師','優尼客設計 現代風','優尼客設計 北歐風','優尼客設計 工業風']
#qlist=['界陽大司','界陽大司 空間設計','界陽大司 設計','界陽大司 馬健凱','界陽大司 室內設計師','界陽大司 案例','界陽大司 室內設計獎']


#qlist=['安喆空間設計','安喆 空間設計','安喆空間設計 專線','安喆空間設計 陳佳暄','安喆空間設計 林威任','安喆空間設計 桃園','安喆空間設計 公司地址']

#qlist=['德本迪設計','德本迪設計 宜荷','德本迪設計 室內設計','德本迪設計 裝修','德本迪設計 宋雯鈴','德本迪設計 宋志鍾','德本迪設計 室內設計諮詢','德本迪設計 系統家具']

options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=socks5://172.104.67.159:8180")

driver = webdriver.Remote(
    command_executor='http://127.0.0.1:4444/wd/hub',
#command_executor='http://192.53.174.202:4444/wd/hub',
#command_executor='http://172.104.93.163:4444/wd/hub',
 
#command_executor='http://dev2.choozmo.com:14444/wd/hub',
desired_capabilities=options.to_capabilities())
#desired_capabilities=DesiredCapabilities.CHROME)
driver.set_window_size(1400,1000)



r = redis.Redis(host='db.ptt.cx', port=6379, db=1)
p = r.pubsub(ignore_subscribe_messages=True)
p.subscribe('q_hhh_seo')



while True:
    message = p.get_message()
    if message:
        q=message['data'].decode('utf-8')
        print(q)
        prob=random.randint(0,3)
        if prob ==0:
            print(q)
            process_query(q)
            send_msg(q)
        else:
            empty_query(q)
        intsleep=random.randint(5,10)

        time.sleep(intsleep)


