From 32593597ef7e763aeefd725de933a11a3a28950e Mon Sep 17 00:00:00 2001 From: Andrew Feltham Date: Thu, 28 Jun 2012 23:08:43 +0000 Subject: [PATCH] 2.1.4 Bugfix: Periods at the end of folders paths are now removed. Bugfix: Fixed error when running Library Organizer - Undo Last Move Change: Library Organizer Quick will now give a warning and exit when Basefolder is empty. --- Package.ini | 2 +- changelog.txt | 6 ++++-- configureform.py | 2 +- libraryorganizer.py | 6 +++++- lobookmover.py | 9 ++++++--- loworkerform.py | 4 ++++ 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Package.ini b/Package.ini index c8e1c2a..fb528e9 100644 --- a/Package.ini +++ b/Package.ini @@ -1,6 +1,6 @@ Name=Library Organizer Author=Stonepaw -Version=2.1.3 +Version=2.1.4 Description=A file and folder organizer with GUI that helps build you file and folder paths. Image=lopackagelogo.png KeepFiles=losettingsx.dat diff --git a/changelog.txt b/changelog.txt index cff267a..246cf5f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,2 +1,4 @@ -2.1.3 -Change: Expaned inversion feature. Syntax is {}. This will insert the prefix and suffix when the value of the match text doesn't the field. You can use regular expresions as the match text by using (!regular expression). The match text or regular expression must be the last argument when using a field that uses other arguments such as first letter. \ No newline at end of file +2.1.4 +Bugfix: Periods at the end of folders paths are now removed. +Bugfix: Fixed error when running Library Organizer - Undo Last Move +Change: Library Organizer Quick will now give a warning and exit when Basefolder is empty. \ No newline at end of file diff --git a/configureform.py b/configureform.py index bc80617..279769e 100644 --- a/configureform.py +++ b/configureform.py @@ -51,7 +51,7 @@ from lobookmover import PathMaker -VERSION = "2.1.3" +VERSION = "2.1.4" failed_items = System.Array[str](["Age Rating", "Alternate Count", "Alternate Number", "Alternate Series", "Black And White", "Characters", "Colorist", "Count", "Cover Artist", "Editor", "Format", "Genre", "Imprint", "Inker", "Language", "Letterer", "Locations", "Main Character Or Team", "Manga", "Month", "Notes", "Number", "Penciller", "Publisher", diff --git a/libraryorganizer.py b/libraryorganizer.py index 6ddc10e..3b605fc 100644 --- a/libraryorganizer.py +++ b/libraryorganizer.py @@ -27,7 +27,7 @@ from System.IO import File, StreamReader, StreamWriter clr.AddReference("System.Windows.Forms") -from System.Windows.Forms import DialogResult, MessageBox +from System.Windows.Forms import DialogResult, MessageBox, MessageBoxButtons, MessageBoxIcon clr.AddReference("System.Xml") import System.Xml @@ -107,6 +107,10 @@ def LibraryOrganizerQuick(books): locommon.ComicRack = ComicRack lobookmover.ComicRack = ComicRack profiles, lastused = load_profiles(PROFILEFILE) + + if len(profiles) == 1 and profiles[profiles.keys()[0]].BaseFolder == "": + MessageBox.Show("Library Organizer will not work as expected when the BaseFolder is empty. Please run the normal Library Organizer script or the Configure Library Organizer script before running Library Organizer Quick", "BaseFolder empty", MessageBoxButtons.OK, MessageBoxIcon.Warning) + return show_worker_form(profiles, lastused, books) diff --git a/lobookmover.py b/lobookmover.py index 97d1a3d..d684969 100644 --- a/lobookmover.py +++ b/lobookmover.py @@ -728,6 +728,7 @@ def __init__(self, worker, form, undo_collection, profiles, logger): self.HeldDuplicateBooks = {} self.logger = logger self.profiles = profiles + self.failed_or_skipped = False def process_books(self): @@ -745,7 +746,7 @@ def process_books(self): skipped = len(books) + len(notfound) - success - failed self.logger.Add("Canceled", str(skipped) + " files", "User cancelled the script") report = BookMoverResult("Successfully moved: %s\tFailed to move: %s\tSkipped: %s\n\n" % (success, failed, skipped), failed > 0 or skipped > 0) - self.logger.SetCountVariables(failed, skipped, success) + #self.logger.SetCountVariables(failed, skipped, success) return report result = self.process_book(book) @@ -776,7 +777,7 @@ def process_books(self): skipped = len(books) + len(notfound) - success - failed self.logger.Add("Canceled", str(skipped) + " files", "User cancelled the script") report = BookMoverResult("Successfully moved: %s\tFailed to move: %s\tSkipped: %s\n\n" % (success, failed, skipped), failed > 0 or skipped > 0) - self.logger.SetCountVariables(failed, skipped, success) + #self.logger.SetCountVariables(failed, skipped, success) return report result = self.process_duplicate_book(book, self.HeldDuplicateBooks[book]) @@ -798,7 +799,7 @@ def process_books(self): continue report = BookMoverResult("Successfully moved: %s\tFailed to move: %s\tSkipped: %s\n\n" % (success, failed, skipped), failed > 0 or skipped > 0) - self.logger.SetCountVariables(failed, skipped, success) + #self.logger.SetCountVariables(failed, skipped, success) return report @@ -1275,6 +1276,8 @@ def make_folder_path(self, template): if not line.strip(): line = self.profile.EmptyFolder line = self.replace_illegal_characters(line) + #Fix for illegal periods at the end of folder names + line = line.strip(".") folder_path = Path.Combine(folder_path, line.strip()) if self.failed and self.profile.MoveFailed: diff --git a/loworkerform.py b/loworkerform.py index a733a42..a9181b6 100644 --- a/loworkerform.py +++ b/loworkerform.py @@ -123,6 +123,10 @@ def WorkerDoWork(self, sender, e): report.report_text = result.report_text + for profile in profiles: + if profile.Mode == Mode.Simulate: + report.show_report = True + e.Result = report