mirror of
https://github.com/Garmelon/PFERD.git
synced 2025-10-22 01:32:32 +02:00
Addes switches in Organizer and Pferd to force and change the default user conflict resolution
This commit is contained in:
@@ -72,7 +72,10 @@ class FileAcceptException(Exception):
|
||||
class Organizer(Location):
|
||||
"""A helper for managing downloaded files."""
|
||||
|
||||
def __init__(self, path: Path, conflict_resolver: FileConflictResolver = resolve_prompt_user):
|
||||
def __init__(self, path: Path, conflict_resolver: FileConflictResolver = resolve_prompt_user, default: bool = False, force_default: bool = False):
|
||||
self._default = default
|
||||
self._force_default = force_default
|
||||
|
||||
"""Create a new organizer for a given path."""
|
||||
super().__init__(path)
|
||||
self._known_files: Set[Path] = set()
|
||||
@@ -201,7 +204,7 @@ class Organizer(Location):
|
||||
def _delete_file_if_confirmed(self, path: Path) -> None:
|
||||
prompt = f"Do you want to delete {path}"
|
||||
|
||||
if self._resolve_conflict(prompt, path, ConflictType.FILE_DELETED, default=False):
|
||||
if (self._force_default and self._default) or (not self._force_default and self._resolve_conflict(prompt, path, ConflictType.FILE_DELETED, default=self._default)):
|
||||
self.download_summary.add_deleted_file(path)
|
||||
path.unlink()
|
||||
else:
|
||||
|
@@ -42,13 +42,17 @@ class Pferd(Location):
|
||||
self,
|
||||
base_dir: Path,
|
||||
tmp_dir: Path = Path(".tmp"),
|
||||
test_run: bool = False
|
||||
test_run: bool = False,
|
||||
default: bool = False,
|
||||
force_default: bool = False
|
||||
):
|
||||
super().__init__(Path(base_dir))
|
||||
|
||||
self._download_summary = DownloadSummary()
|
||||
self._tmp_dir = TmpDir(self.resolve(tmp_dir))
|
||||
self._test_run = test_run
|
||||
self._default = default
|
||||
self._force_default = force_default
|
||||
|
||||
@staticmethod
|
||||
def enable_logging() -> None:
|
||||
@@ -90,7 +94,7 @@ class Pferd(Location):
|
||||
cookie_jar = CookieJar(to_path(cookies) if cookies else None)
|
||||
session = cookie_jar.create_session()
|
||||
tmp_dir = self._tmp_dir.new_subdir()
|
||||
organizer = Organizer(self.resolve(to_path(target)), file_conflict_resolver)
|
||||
organizer = Organizer(self.resolve(to_path(target)), file_conflict_resolver, default=self._default, force_default=self._force_default)
|
||||
|
||||
crawler = IliasCrawler(base_url, session, authenticator, dir_filter)
|
||||
downloader = IliasDownloader(tmp_dir, organizer, session,
|
||||
@@ -353,7 +357,7 @@ class Pferd(Location):
|
||||
if isinstance(target, Organizer):
|
||||
organizer = target
|
||||
else:
|
||||
organizer = Organizer(self.resolve(to_path(target)), file_conflict_resolver)
|
||||
organizer = Organizer(self.resolve(to_path(target)), file_conflict_resolver, default=self._default, force_default=self._force_default)
|
||||
|
||||
PRETTY.starting_synchronizer(organizer.path, "IPD", url)
|
||||
|
||||
@@ -416,7 +420,7 @@ class Pferd(Location):
|
||||
if isinstance(target, Organizer):
|
||||
organizer = target
|
||||
else:
|
||||
organizer = Organizer(self.resolve(to_path(target)), file_conflict_resolver)
|
||||
organizer = Organizer(self.resolve(to_path(target)), file_conflict_resolver, default=self._default, force_default=self._force_default)
|
||||
|
||||
PRETTY.starting_synchronizer(organizer.path, "DIVA", playlist_id)
|
||||
|
||||
|
Reference in New Issue
Block a user