From ae3accca27fc8da5c76f8201369011ab8186fec4 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Sun, 17 Nov 2024 09:20:59 -0600 Subject: [PATCH] Call Calibre's safe_open_url for open_pages_in_browser --- fanficfare/fetchers/cache_browser.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fanficfare/fetchers/cache_browser.py b/fanficfare/fetchers/cache_browser.py index 860afee3..5c9062dd 100644 --- a/fanficfare/fetchers/cache_browser.py +++ b/fanficfare/fetchers/cache_browser.py @@ -22,7 +22,6 @@ logger = logging.getLogger(__name__) import threading import traceback import time -import webbrowser from ..six.moves.urllib.parse import urlparse from .. import exceptions @@ -31,6 +30,13 @@ from .base_fetcher import FetcherResponse from .decorators import FetcherDecorator from .log import make_log +try: # just a way to switch between CLI and PI + ## webbrowser.open doesn't work on some linux flavors. + ## piggyback Calibre's version. + from calibre.gui2 import safe_open_url as open_url +except : + from webbrowser import open as open_url + ## kept here, this counter persists across all sessions in calibre ## session which can be days domain_open_tries = dict() @@ -64,7 +70,7 @@ class BrowserCacheDecorator(FetcherDecorator): not d and open_tries and domain_open_tries.get(parsedUrl.netloc,0) < fetcher.getConfig("open_pages_in_browser_tries_limit",6) ): logger.debug("\n\nopen page in browser: %s\ntries:%s\n"%(url,domain_open_tries.get(parsedUrl.netloc,None))) - webbrowser.open(url) + open_url(url) # logger.debug("domain_open_tries:%s:"%domain_open_tries) # if parsedUrl.netloc not in domain_open_tries: # logger.debug("First time for (%s) extra sleep"%parsedUrl.netloc)