From f2a5fa2e53f56540d8cc1fc1560fa518b9005f15 Mon Sep 17 00:00:00 2001 From: Lauren Liberda Date: Thu, 3 Jun 2021 17:13:41 +0200 Subject: [PATCH] [playwright] option to force a specific browser --- haruhi_dl/__init__.py | 3 +++ haruhi_dl/options.py | 4 ++++ haruhi_dl/playwright.py | 2 ++ 3 files changed, 9 insertions(+) diff --git a/haruhi_dl/__init__.py b/haruhi_dl/__init__.py index 1112c8e28..ac57c1cd2 100644 --- a/haruhi_dl/__init__.py +++ b/haruhi_dl/__init__.py @@ -178,6 +178,8 @@ def _real_main(argv=None): parser.error('Unsupported TV Provider, use --ap-list-mso to get a list of supported TV Providers') if opts.force_generic_extractor and opts.force_use_mastodon: parser.error('force either generic extractor or Mastodon') + if opts.force_playwright_browser not in ('firefox', 'chromium', 'webkit', None): + parser.error('invalid browser forced, must be on of: firefox, chromium, webkit') def parse_retries(retries): if retries in ('inf', 'infinite'): @@ -424,6 +426,7 @@ def _real_main(argv=None): 'headless_playwright': opts.headless_playwright, 'sleep_interval': opts.sleep_interval, 'max_sleep_interval': opts.max_sleep_interval, + 'force_playwright_browser': opts.force_playwright_browser, 'external_downloader': opts.external_downloader, 'list_thumbnails': opts.list_thumbnails, 'playlist_items': opts.playlist_items, diff --git a/haruhi_dl/options.py b/haruhi_dl/options.py index afc261414..756b307ce 100644 --- a/haruhi_dl/options.py +++ b/haruhi_dl/options.py @@ -604,6 +604,10 @@ def parseOpts(overrideArguments=None): 'Upper bound of a range for randomized sleep before each download ' '(maximum possible number of seconds to sleep). Must only be used ' 'along with --min-sleep-interval.')) + workarounds.add_option( + '--force-playwright-browser', dest='force_playwright_browser', + help=('Force use a selected browser with extractors using Playwright.' + 'Must be one of: firefox, chromium, webkit.')) verbosity = optparse.OptionGroup(parser, 'Verbosity / Simulation Options') verbosity.add_option( diff --git a/haruhi_dl/playwright.py b/haruhi_dl/playwright.py index 36a095c92..c478f092a 100644 --- a/haruhi_dl/playwright.py +++ b/haruhi_dl/playwright.py @@ -94,6 +94,8 @@ class PlaywrightHelper(): def open_page(self, url, display_id, browser_used='firefox', note='Opening page in %(browser)s', html=None): pw = self.pw() self.pw_instance = pw + if self._extractor._downloader.params.get('force_playwright_browser') is not None: + browser_used = self._extractor._downloader.params.get('force_playwright_browser') browser = { 'firefox': pw.firefox, 'chromium': pw.chromium,