From db015cc28183545185c2e2ed48ab788e7d48d3b1 Mon Sep 17 00:00:00 2001 From: Wesley Kerfoot Date: Sat, 25 May 2019 14:07:12 -0400 Subject: [PATCH] Add new `mode` parameter, work on unliking pages --- deletefb/deletefb.py | 26 +++++++++++++++++++++++--- deletefb/tools/likes.py | 20 ++++++++++++++++++-- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/deletefb/deletefb.py b/deletefb/deletefb.py index d3d3ddb..b51915f 100755 --- a/deletefb/deletefb.py +++ b/deletefb/deletefb.py @@ -3,11 +3,25 @@ import argparse import getpass +from sys import exit from deletefb.tools.login import login import deletefb.tools.wall as wall +import deletefb.tools.likes as likes def run_delete(): parser = argparse.ArgumentParser() + + parser.add_argument( + "-M", + "--mode", + required=False, + default="wall", + dest="mode", + type=str, + choices=["wall", "unlike_pages"], + help="The mode you want to run in. Default is `wall' which deletes wall posts" + ) + parser.add_argument( "-E", "--email", @@ -73,9 +87,15 @@ def run_delete(): two_factor_token=args.two_factor_token ) - wall.delete_posts(driver, - args.profile_url, - year=args.year) + if args.mode == "wall": + wall.delete_posts(driver, + args.profile_url, + year=args.year) + elif args.mode == "unlike_pages": + likes.unlike_pages(driver, args.profile_url) + else: + print("Please enter a valid mode") + exit(1) if __name__ == "__main__": run_delete() diff --git a/deletefb/tools/likes.py b/deletefb/tools/likes.py index 80c6b0a..edc1669 100644 --- a/deletefb/tools/likes.py +++ b/deletefb/tools/likes.py @@ -1,8 +1,24 @@ +from time import sleep from selenium.webdriver.common.action_chains import ActionChains from .common import SELENIUM_EXCEPTIONS -def unlike_pages(driver): +def unlike_pages(driver, + user_profile_url): """ Unlike all pages """ - return + + actions = ActionChains(driver) + + driver.get("https://www.facebook.com/pages/?category=liked") + + pages_list = driver.find_element_by_css_selector("#all_liked_pages") + + actions.move_to_element(pages_list) + + unlike_buttons = pages_list.find_elements_by_xpath("//button") + + for button in unlike_buttons: + print(button) + + sleep(1000)