You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
2.7 KiB
116 lines
2.7 KiB
#! /usr/bin/env python
|
|
|
|
import argparse
|
|
import getpass
|
|
|
|
from sys import exit
|
|
from os import environ
|
|
from .tools.login import login
|
|
from .tools.wall import delete_posts
|
|
from .tools.likes import unlike_pages
|
|
|
|
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",
|
|
required=True,
|
|
dest="email",
|
|
type=str,
|
|
help="Your email address associated with the account"
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-P",
|
|
"--password",
|
|
required=False,
|
|
dest="password",
|
|
type=str,
|
|
help="Your Facebook password"
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-U",
|
|
"--profile-url",
|
|
required=True,
|
|
dest="profile_url",
|
|
type=str,
|
|
help="The link to your Facebook profile, e.g. https://www.facebook.com/your.name"
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-F",
|
|
"--two-factor",
|
|
required=False,
|
|
dest="two_factor_token",
|
|
type=str,
|
|
help="The code generated by your 2FA device for Facebook"
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-H",
|
|
"--headless",
|
|
action="store_true",
|
|
dest="is_headless",
|
|
default=False,
|
|
help="Run browser in headless mode (no gui)"
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--no-archive",
|
|
action="store_true",
|
|
dest="archive_off",
|
|
default=False,
|
|
help="Turn off archiving (on by default)"
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-Y",
|
|
"--year",
|
|
required=False,
|
|
dest="year",
|
|
type=str,
|
|
help="The year(s) you want posts deleted."
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.archive_off:
|
|
environ["DELETEFB_ARCHIVE"] = "false" if args.archive_off else "true"
|
|
|
|
if args.year and args.mode != "wall":
|
|
parser.error("The --year option is only supported in wall mode")
|
|
|
|
args_user_password = args.password or getpass.getpass('Enter your password: ')
|
|
|
|
driver = login(
|
|
user_email_address=args.email,
|
|
user_password=args_user_password,
|
|
is_headless=args.is_headless,
|
|
two_factor_token=args.two_factor_token
|
|
)
|
|
|
|
if args.mode == "wall":
|
|
delete_posts(driver,
|
|
args.profile_url,
|
|
year=args.year)
|
|
elif args.mode == "unlike_pages":
|
|
unlike_pages(driver)
|
|
else:
|
|
print("Please enter a valid mode")
|
|
exit(1)
|
|
|
|
if __name__ == "__main__":
|
|
run_delete()
|
|
|