微调下载逻辑

This commit is contained in:
g1879 2023-10-17 15:48:28 +08:00
parent ba1c3fb3cc
commit 8dd184e848
3 changed files with 9 additions and 6 deletions

View File

@ -215,8 +215,9 @@ class BrowserDriver(ChromiumDriver):
return object.__new__(cls) return object.__new__(cls)
def __init__(self, tab_id, tab_type, address): def __init__(self, tab_id, tab_type, address):
if tab_id in BrowserDriver.BROWSERS: if hasattr(self, '_created'):
return return
self._created = True
BrowserDriver.BROWSERS[tab_id] = self BrowserDriver.BROWSERS[tab_id] = self
super().__init__(tab_id, tab_type, address) super().__init__(tab_id, tab_type, address)

View File

@ -146,9 +146,9 @@ class TabSetter(ChromiumBaseSetter):
""" """
types = {'rename': 'rename', 'overwrite': 'overwrite', 'skip': 'skip', 'r': 'rename', 'o': 'overwrite', types = {'rename': 'rename', 'overwrite': 'overwrite', 'skip': 'skip', 'r': 'rename', 'o': 'overwrite',
's': 'skip'} 's': 'skip'}
mode = types.get(mode, None) mode = types.get(mode, mode)
if not mode: if mode not in types:
raise ValueError(f"mode参数只能是'rename', 'overwrite', 'skip', 'r', 'o', 's' 之一,现在是:{mode}") raise ValueError(f'''mode参数只能是 '{"', '".join(types.keys())}' 之一,现在是:{mode}''')
self._page.browser._dl_mgr.set_file_exists(self._page.tab_id, mode) self._page.browser._dl_mgr.set_file_exists(self._page.tab_id, mode)

View File

@ -5,7 +5,7 @@
""" """
from http.cookiejar import Cookie from http.cookiejar import Cookie
from pathlib import Path from pathlib import Path
from typing import Union, Tuple from typing import Union, Tuple, Literal
from requests.adapters import HTTPAdapter from requests.adapters import HTTPAdapter
from requests.auth import HTTPBasicAuth from requests.auth import HTTPBasicAuth
@ -19,6 +19,8 @@ from .chromium_tab import ChromiumTab
from .session_page import SessionPage from .session_page import SessionPage
from .web_page import WebPage from .web_page import WebPage
FILE_EXISTS = Literal['skip', 'rename', 'overwrite', 's', 'r', 'o']
class ChromiumBaseSetter(object): class ChromiumBaseSetter(object):
def __init__(self, page): def __init__(self, page):
@ -58,7 +60,7 @@ class TabSetter(ChromiumBaseSetter):
def download_file_name(self, name: str) -> None: ... def download_file_name(self, name: str) -> None: ...
def when_download_file_exists(self, mode: str) -> None: ... def when_download_file_exists(self, mode: FILE_EXISTS) -> None: ...
class ChromiumPageSetter(TabSetter): class ChromiumPageSetter(TabSetter):