[view.qt.thread] refactoring: file downloader URL pattern checking

This commit is contained in:
Vinicius Moreira
2023-11-29 12:31:56 -03:00
parent c2c17e63ac
commit 9ec85eab39

View File

@@ -9,7 +9,7 @@ from io import StringIO
from logging import Logger from logging import Logger
from pathlib import Path from pathlib import Path
from queue import Queue from queue import Queue
from typing import List, Type, Set, Tuple, Optional from typing import List, Type, Set, Tuple, Optional, Pattern
import requests import requests
from PyQt5.QtCore import QThread, pyqtSignal, QObject from PyQt5.QtCore import QThread, pyqtSignal, QObject
@@ -1115,6 +1115,7 @@ class StartAsyncAction(QThread):
class URLFileDownloader(QThread): class URLFileDownloader(QThread):
signal_downloaded = pyqtSignal(str, bytes, object) signal_downloaded = pyqtSignal(str, bytes, object)
pattern_is_url: Pattern = re.compile(r"^https?://.+$")
def __init__(self, max_workers: int = 50, request_timeout: int = 30, inactivity_timeout: int = 5, def __init__(self, max_workers: int = 50, request_timeout: int = 30, inactivity_timeout: int = 5,
max_downloads: int = -1, parent: Optional[QWidget] = None): max_downloads: int = -1, parent: Optional[QWidget] = None):
@@ -1158,7 +1159,7 @@ class URLFileDownloader(QThread):
final_url = url.strip() if url else None final_url = url.strip() if url else None
if final_url: if final_url:
if final_url.startswith("http"): if self.pattern_is_url.match(final_url):
self._queue.put((final_url, id_)) self._queue.put((final_url, id_))
else: else:
self.signal_downloaded.emit(final_url, None, id_) self.signal_downloaded.emit(final_url, None, id_)