Simplify argument handling for DownloadManager.
This commit is contained in:
parent
5fca27ad02
commit
36adaf0cf3
@ -1163,7 +1163,7 @@ class CommandDispatcher:
|
|||||||
download_manager.get(url, filename=dest)
|
download_manager.get(url, filename=dest)
|
||||||
else:
|
else:
|
||||||
page = self._current_widget().page()
|
page = self._current_widget().page()
|
||||||
download_manager.get(self._current_url(), page)
|
download_manager.get(self._current_url(), page=page)
|
||||||
|
|
||||||
@cmdutils.register(instance='command-dispatcher', scope='window',
|
@cmdutils.register(instance='command-dispatcher', scope='window',
|
||||||
deprecated="Use :download instead.")
|
deprecated="Use :download instead.")
|
||||||
|
@ -662,20 +662,12 @@ class DownloadManager(QAbstractListModel):
|
|||||||
self.dataChanged.emit(self.index(0), self.last_index())
|
self.dataChanged.emit(self.index(0), self.last_index())
|
||||||
|
|
||||||
@pyqtSlot('QUrl', 'QWebPage')
|
@pyqtSlot('QUrl', 'QWebPage')
|
||||||
def get(self, url, page=None, fileobj=None, filename=None,
|
def get(self, url, **kwargs):
|
||||||
auto_remove=False, prompt_download_directory=None):
|
|
||||||
"""Start a download with a link URL.
|
"""Start a download with a link URL.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
url: The URL to get, as QUrl
|
url: The URL to get, as QUrl
|
||||||
page: The QWebPage to get the download from.
|
**kwargs: passed to get_request().
|
||||||
fileobj: The file object to write the answer to.
|
|
||||||
filename: A path to write the data to.
|
|
||||||
auto_remove: Whether to remove the download even if
|
|
||||||
ui -> remove-finished-downloads is set to false.
|
|
||||||
prompt_download_directory: Whether to prompt for the download dir
|
|
||||||
or automatically download. If None, the
|
|
||||||
config is used.
|
|
||||||
|
|
||||||
Return:
|
Return:
|
||||||
If the download could start immediately, (fileobj/filename given),
|
If the download could start immediately, (fileobj/filename given),
|
||||||
@ -683,29 +675,24 @@ class DownloadManager(QAbstractListModel):
|
|||||||
|
|
||||||
If not, None.
|
If not, None.
|
||||||
"""
|
"""
|
||||||
if fileobj is not None and filename is not None:
|
|
||||||
raise TypeError("Only one of fileobj/filename may be given!")
|
|
||||||
if not url.isValid():
|
if not url.isValid():
|
||||||
urlutils.invalid_url_error(self._win_id, url, "start download")
|
urlutils.invalid_url_error(self._win_id, url, "start download")
|
||||||
return
|
return
|
||||||
req = QNetworkRequest(url)
|
req = QNetworkRequest(url)
|
||||||
return self.get_request(req, page, fileobj, filename, auto_remove,
|
return self.get_request(req, **kwargs)
|
||||||
prompt_download_directory)
|
|
||||||
|
|
||||||
def get_request(self, request, page=None, fileobj=None, filename=None,
|
def get_request(self, request, *, fileobj=None, filename=None,
|
||||||
auto_remove=False, prompt_download_directory=None):
|
prompt_download_directory=None, **kwargs):
|
||||||
"""Start a download with a QNetworkRequest.
|
"""Start a download with a QNetworkRequest.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
request: The QNetworkRequest to download.
|
request: The QNetworkRequest to download.
|
||||||
page: The QWebPage to use.
|
|
||||||
fileobj: The file object to write the answer to.
|
fileobj: The file object to write the answer to.
|
||||||
filename: A path to write the data to.
|
filename: A path to write the data to.
|
||||||
auto_remove: Whether to remove the download even if
|
|
||||||
ui -> remove-finished-downloads is set to false.
|
|
||||||
prompt_download_directory: Whether to prompt for the download dir
|
prompt_download_directory: Whether to prompt for the download dir
|
||||||
or automatically download. If None, the
|
or automatically download. If None, the
|
||||||
config is used.
|
config is used.
|
||||||
|
**kwargs: Passed to fetch_request.
|
||||||
|
|
||||||
Return:
|
Return:
|
||||||
If the download could start immediately, (fileobj/filename given),
|
If the download could start immediately, (fileobj/filename given),
|
||||||
@ -728,8 +715,11 @@ class DownloadManager(QAbstractListModel):
|
|||||||
filename = config.get('storage', 'download-directory')
|
filename = config.get('storage', 'download-directory')
|
||||||
|
|
||||||
if fileobj is not None or filename is not None:
|
if fileobj is not None or filename is not None:
|
||||||
return self.fetch_request(request, page, fileobj, filename,
|
return self.fetch_request(request,
|
||||||
auto_remove, suggested_fn)
|
fileobj=fileobj,
|
||||||
|
filename=filename,
|
||||||
|
suggested_filename=suggested_fn,
|
||||||
|
**kwargs)
|
||||||
if suggested_fn is None:
|
if suggested_fn is None:
|
||||||
suggested_fn = 'qutebrowser-download'
|
suggested_fn = 'qutebrowser-download'
|
||||||
else:
|
else:
|
||||||
@ -740,23 +730,20 @@ class DownloadManager(QAbstractListModel):
|
|||||||
message_bridge = objreg.get('message-bridge', scope='window',
|
message_bridge = objreg.get('message-bridge', scope='window',
|
||||||
window=self._win_id)
|
window=self._win_id)
|
||||||
q.answered.connect(
|
q.answered.connect(
|
||||||
lambda fn: self.fetch_request(request, page, filename=fn,
|
lambda fn: self.fetch_request(request,
|
||||||
auto_remove=auto_remove,
|
filename=fn,
|
||||||
suggested_filename=suggested_fn))
|
suggested_filename=suggested_fn,
|
||||||
|
**kwargs))
|
||||||
message_bridge.ask(q, blocking=False)
|
message_bridge.ask(q, blocking=False)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def fetch_request(self, request, page=None, fileobj=None, filename=None,
|
def fetch_request(self, request, *, page=None, **kwargs):
|
||||||
auto_remove=False, suggested_filename=None):
|
|
||||||
"""Download a QNetworkRequest to disk.
|
"""Download a QNetworkRequest to disk.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
request: The QNetworkRequest to download.
|
request: The QNetworkRequest to download.
|
||||||
page: The QWebPage to use.
|
page: The QWebPage to use.
|
||||||
fileobj: The file object to write the answer to.
|
**kwargs: passed to fetch().
|
||||||
filename: A path to write the data to.
|
|
||||||
auto_remove: Whether to remove the download even if
|
|
||||||
ui -> remove-finished-downloads is set to false.
|
|
||||||
|
|
||||||
Return:
|
Return:
|
||||||
The created DownloadItem.
|
The created DownloadItem.
|
||||||
@ -766,11 +753,10 @@ class DownloadManager(QAbstractListModel):
|
|||||||
else:
|
else:
|
||||||
nam = page.networkAccessManager()
|
nam = page.networkAccessManager()
|
||||||
reply = nam.get(request)
|
reply = nam.get(request)
|
||||||
return self.fetch(reply, fileobj, filename, auto_remove,
|
return self.fetch(reply, **kwargs)
|
||||||
suggested_filename)
|
|
||||||
|
|
||||||
@pyqtSlot('QNetworkReply')
|
@pyqtSlot('QNetworkReply')
|
||||||
def fetch(self, reply, fileobj=None, filename=None, auto_remove=False,
|
def fetch(self, reply, *, fileobj=None, filename=None, auto_remove=False,
|
||||||
suggested_filename=None, prompt_download_directory=None):
|
suggested_filename=None, prompt_download_directory=None):
|
||||||
"""Download a QNetworkReply to disk.
|
"""Download a QNetworkReply to disk.
|
||||||
|
|
||||||
|
@ -521,7 +521,7 @@ class HintManager(QObject):
|
|||||||
|
|
||||||
download_manager = objreg.get('download-manager', scope='window',
|
download_manager = objreg.get('download-manager', scope='window',
|
||||||
window=self._win_id)
|
window=self._win_id)
|
||||||
download_manager.get(url, elem.webFrame().page(),
|
download_manager.get(url, page=elem.webFrame().page(),
|
||||||
prompt_download_directory=prompt)
|
prompt_download_directory=prompt)
|
||||||
|
|
||||||
def _call_userscript(self, elem, context):
|
def _call_userscript(self, elem, context):
|
||||||
|
Loading…
Reference in New Issue
Block a user