mirror of
https://github.com/Garmelon/PFERD.git
synced 2025-10-22 09:42:31 +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):
|
class Organizer(Location):
|
||||||
"""A helper for managing downloaded files."""
|
"""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."""
|
"""Create a new organizer for a given path."""
|
||||||
super().__init__(path)
|
super().__init__(path)
|
||||||
self._known_files: Set[Path] = set()
|
self._known_files: Set[Path] = set()
|
||||||
@@ -201,7 +204,7 @@ class Organizer(Location):
|
|||||||
def _delete_file_if_confirmed(self, path: Path) -> None:
|
def _delete_file_if_confirmed(self, path: Path) -> None:
|
||||||
prompt = f"Do you want to delete {path}"
|
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)
|
self.download_summary.add_deleted_file(path)
|
||||||
path.unlink()
|
path.unlink()
|
||||||
else:
|
else:
|
||||||
|
@@ -42,13 +42,17 @@ class Pferd(Location):
|
|||||||
self,
|
self,
|
||||||
base_dir: Path,
|
base_dir: Path,
|
||||||
tmp_dir: Path = Path(".tmp"),
|
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))
|
super().__init__(Path(base_dir))
|
||||||
|
|
||||||
self._download_summary = DownloadSummary()
|
self._download_summary = DownloadSummary()
|
||||||
self._tmp_dir = TmpDir(self.resolve(tmp_dir))
|
self._tmp_dir = TmpDir(self.resolve(tmp_dir))
|
||||||
self._test_run = test_run
|
self._test_run = test_run
|
||||||
|
self._default = default
|
||||||
|
self._force_default = force_default
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def enable_logging() -> None:
|
def enable_logging() -> None:
|
||||||
@@ -90,7 +94,7 @@ class Pferd(Location):
|
|||||||
cookie_jar = CookieJar(to_path(cookies) if cookies else None)
|
cookie_jar = CookieJar(to_path(cookies) if cookies else None)
|
||||||
session = cookie_jar.create_session()
|
session = cookie_jar.create_session()
|
||||||
tmp_dir = self._tmp_dir.new_subdir()
|
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)
|
crawler = IliasCrawler(base_url, session, authenticator, dir_filter)
|
||||||
downloader = IliasDownloader(tmp_dir, organizer, session,
|
downloader = IliasDownloader(tmp_dir, organizer, session,
|
||||||
@@ -353,7 +357,7 @@ class Pferd(Location):
|
|||||||
if isinstance(target, Organizer):
|
if isinstance(target, Organizer):
|
||||||
organizer = target
|
organizer = target
|
||||||
else:
|
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)
|
PRETTY.starting_synchronizer(organizer.path, "IPD", url)
|
||||||
|
|
||||||
@@ -416,7 +420,7 @@ class Pferd(Location):
|
|||||||
if isinstance(target, Organizer):
|
if isinstance(target, Organizer):
|
||||||
organizer = target
|
organizer = target
|
||||||
else:
|
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)
|
PRETTY.starting_synchronizer(organizer.path, "DIVA", playlist_id)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user