diff --git a/bdaybot/chrome.py b/bdaybot/chrome.py index 00137bb..21ab81e 100644 --- a/bdaybot/chrome.py +++ b/bdaybot/chrome.py @@ -1,13 +1,11 @@ -from selenium import webdriver import time -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC + +from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.by import By -from selenium.common.exceptions import NoSuchElementException - - +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.support import expected_conditions as EC +from selenium.webdriver.support.ui import WebDriverWait driver = webdriver.Chrome() driver.get("http://www.facebook.com") @@ -22,37 +20,50 @@ delay = 30 try: - elem=WebDriverWait(driver,delay).until(EC.presence_of_element_located((By.CLASS_NAME,"_2s25"))) + elem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.CLASS_NAME, "_2s25"))) time.sleep(5); elem.click(); print ("Successfully Logged in") + except TimeoutException: print ("Timeout or wrong email/password") driver.close(); + def post_checker(post): - hpylst = ['happy','hapy','hapi','appy','hpy'] - bdylst = ['birthday','bday','budday','b\'day','bdy'] - return any(word in post for word in hpylst) and (any(word in post for word in bdylst) or ('return' in post and 'day' in post)) -posts=[] + hpylst = ['happy', 'hapy', 'hapi', 'appy', 'hpy'] + bdylst = ['birthday', 'bday', 'budday', 'b\'day', 'bdy'] + return any(word in post for word in hpylst) and ( + any(word in post for word in bdylst) or ('return' in post and 'day' in post)) + + +posts = [] + try: - elem=WebDriverWait(driver,delay).until(EC.presence_of_element_located((By.CLASS_NAME,"_44b2"))) + elem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.CLASS_NAME, "_44b2"))) time.sleep(5); elem.click(); - posts=WebDriverWait(driver,delay).until(EC.presence_of_element_located((By.CLASS_NAME,'userContentWrapper'))) + posts = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.CLASS_NAME, 'userContentWrapper'))) time.sleep(8) - posts=driver.find_elements_by_class_name('userContentWrapper') + posts = driver.find_elements_by_class_name('userContentWrapper') + for post in posts: - post_text=post.find_element_by_xpath(".//div[@class='_5pbx userContent']").text.lower() + + post_text = post.find_element_by_xpath(".//div[@class='_5pbx userContent']").text.lower() time.sleep(3) + if post_checker(post_text): + try: post.find_element_by_xpath(".//a[@class='UFILikeLink _4x9- _4x9_ _48-k']").click() + except: continue + print ("Successfully liked relevant posts") + except TimeoutException: - print ("Timeout") + print ("Timeout") app_secret = 'a508a47755cb78460fde5c52c9b9230f' app_id = '1178068725594212'