diff --git a/CHANGELOG.md b/CHANGELOG.md index 1684abe..bffb1b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +## Changed +- Firefox persistent profile mode now prompts for Return to save profile + ## [5.1.1] - 2018-04-19 ## Added diff --git a/kibitzr/fetcher/browser/fetcher.py b/kibitzr/fetcher/browser/fetcher.py index 4e46f8c..1239ce5 100644 --- a/kibitzr/fetcher/browser/fetcher.py +++ b/kibitzr/fetcher/browser/fetcher.py @@ -13,6 +13,7 @@ from kibitzr.conf import settings from .launcher import firefox, PROFILE_DIR +from .trigger import prompt_return logger = logging.getLogger(__name__) @@ -22,9 +23,11 @@ def persistent_firefox(): if not os.path.exists(PROFILE_DIR): os.makedirs(PROFILE_DIR) + print("Kibitzr is running Firefox in persistent profile mode.") with firefox(headless=False) as driver: driver.get(HOME_PAGE) while True: + prompt_return() try: # Property raises when browser is closed: driver.title @@ -32,15 +35,23 @@ def persistent_firefox(): # All kinds of things happen when closing Firefox break else: - time.sleep(0.2) - update_profile(driver) + update_profile(driver) + print( + "Firefox profile is saved. " + "Close browser now to reuse profile in further runs." + ) + print( + "Firefox is closed. " + "To delete saved profile remove following directory: {0}" + .format(os.path.abspath(PROFILE_DIR)) + ) def update_profile(driver): if os.path.exists(PROFILE_DIR): shutil.rmtree(PROFILE_DIR) shutil.copytree( - driver.profile.profile_dir, + driver.capabilities['moz:profile'], PROFILE_DIR, ignore=shutil.ignore_patterns( "parent.lock", diff --git a/kibitzr/fetcher/browser/trigger.py b/kibitzr/fetcher/browser/trigger.py new file mode 100644 index 0000000..529b0f8 --- /dev/null +++ b/kibitzr/fetcher/browser/trigger.py @@ -0,0 +1,8 @@ +from six.moves import input as compat_input + + +def prompt_return(): + compat_input( + "Press Enter to save Firefox profile; " + "or close Firefox to cancel: " + ) diff --git a/kibitzr/main.py b/kibitzr/main.py index 3f7e1e7..7c9202d 100644 --- a/kibitzr/main.py +++ b/kibitzr/main.py @@ -81,7 +81,7 @@ def execute_conf(conf): def run_firefox(): - setup_logger(logging.DEBUG) + setup_logger(logging.INFO) persistent_firefox()