Browse Source

Minor refactoring and reformatting :)

pull/7/head
ConnorSkees 6 years ago
parent
commit
0f9d1fcb9d
  1. 94
      deletefb/deletefb.py

94
deletefb/deletefb.py

@ -1,59 +1,83 @@
#! /usr/bin/env python #! /usr/bin/env python
import argparse
import time
from seleniumrequests import Chrome from seleniumrequests import Chrome
from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.options import Options
import time
import argparse
MAX_POSTS = 5000 MAX_POSTS = 5000
def run_delete(): def run_delete():
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument("-E", parser.add_argument(
"-E",
"--email", "--email",
default=None, required=True,
help="Your email address associated with the account") dest="email",
type=str,
parser.add_argument("-P", help="Your email address associated with the account"
)
parser.add_argument(
"-P",
"--password", "--password",
default=None, required=True,
help="Your Facebook password") dest="password",
type=str,
parser.add_argument("-U", help="Your Facebook password"
)
parser.add_argument(
"-U",
"--profile-url", "--profile-url",
default=None, required=True,
help=""" dest="profile_url",
The link to your Facebook profile, e.g. https://www.facebook.com/your.name type=str,
""") help="The link to your Facebook profile, e.g. https://www.facebook.com/your.name"
)
parser.add_argument(
"-H",
"--headless",
action="store_true",
dest="is_headless",
default=False,
help="Run browser in headless mode (no gui)"
)
args = parser.parse_args() args = parser.parse_args()
delete_posts(user_email_address=args.email, delete_posts(
user_email_address=args.email,
user_password=args.password, user_password=args.password,
user_profile_url=args.profile_url) user_profile_url=args.profile_url,
is_headless=args.is_headless
)
def delete_posts(user_email_address=None, def delete_posts(user_email_address,
user_password=None, user_password,
user_profile_url=None): user_profile_url,
is_headless):
""" """
user_email_address: Your Email user_email_address: str Your Email
user_password: Your password user_password: str Your password
user_profile_url: Your profile URL user_profile_url: str Your profile URL
""" """
assert all((user_email_address,
user_password,
user_profile_url)), "Insufficient arguments provided"
# The Chrome driver is required because Gecko was having issues # The Chrome driver is required because Gecko was having issues
chrome_options = Options() chrome_options = Options()
prefs = {"profile.default_content_setting_values.notifications" : 2} prefs = {"profile.default_content_setting_values.notifications": 2, 'disk-cache-size': 4096}
chrome_options.add_experimental_option("prefs", prefs) chrome_options.add_experimental_option("prefs", prefs)
chrome_options.add_argument("start-maximized") chrome_options.add_argument("start-maximized")
driver = Chrome(chrome_options=chrome_options) if is_headless:
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('log-level=2')
driver = Chrome(options=chrome_options)
driver.implicitly_wait(10) driver.implicitly_wait(10)
driver.get("https://facebook.com") driver.get("https://facebook.com")
@ -63,16 +87,14 @@ def delete_posts(user_email_address=None,
login = "loginbutton" login = "loginbutton"
emailelement = driver.find_element_by_name(email) emailelement = driver.find_element_by_name(email)
passwordelement = driver.find_element_by_name(password) passwordelement = driver.find_element_by_name(password)
emailelement.send_keys(user_email_address) emailelement.send_keys(user_email_address)
passwordelement.send_keys(user_password) passwordelement.send_keys(user_password)
loginelement = driver.find_element_by_id(login) loginelement = driver.find_element_by_id(login)
loginelement.click() loginelement.click()
if "Two-factor authentication" in driver.page_source: if "Two-factor authentication" in driver.page_source:
# Allow time to enter 2FA code # Allow time to enter 2FA code
print("Pausing to enter 2FA code") print("Pausing to enter 2FA code")
@ -106,3 +128,7 @@ def delete_posts(user_email_address=None,
# Required to sleep the thread for a bit after using JS to click this button # Required to sleep the thread for a bit after using JS to click this button
time.sleep(5) time.sleep(5)
driver.refresh() driver.refresh()
if __name__ == "__main__":
run_delete()

Loading…
Cancel
Save