1
0
mirror of https://github.com/arsenetar/dupeguru.git synced 2026-02-04 04:11:38 +00:00

[#78 state:fixed] Wrapped appscript errors, updated error message and the F.A.Q. to give users a clue of what to do.

--HG--
extra : convert_revision : svn%3Ac306627e-7827-47d3-bdf0-9a457c9553a1/trunk%40257
This commit is contained in:
hsoft
2009-12-15 16:23:02 +00:00
parent b487189742
commit c9b0a278ca
3 changed files with 36 additions and 12 deletions

View File

@@ -14,7 +14,7 @@ import re
from Foundation import *
from AppKit import *
from appscript import app, k
from appscript import app, k, CommandError
from hsutil import io
from hsutil.str import get_file_ext
@@ -142,12 +142,18 @@ class DupeGuruPE(app_cocoa.DupeGuru):
self.path2iphoto = {}
if any(isinstance(dupe, IPhoto) for dupe in marked):
j = j.start_subjob([6, 4], "Probing iPhoto. Don\'t touch it during the operation!")
a = app('iPhoto')
a.activate(timeout=0)
a.select(a.photo_library_album(timeout=0), timeout=0)
photos = as_fetch(a.photo_library_album().photos, k.item)
for photo in j.iter_with_progress(photos):
self.path2iphoto[unicode(photo.image_path(timeout=0))] = photo
try:
a = app('iPhoto')
a.activate(timeout=0)
a.select(a.photo_library_album(timeout=0), timeout=0)
photos = as_fetch(a.photo_library_album().photos, k.item)
for photo in j.iter_with_progress(photos):
try:
self.path2iphoto[unicode(photo.image_path(timeout=0))] = photo
except CommandError:
pass
except (CommandError, RuntimeError):
pass
j.start_job(self.results.mark_count, "Sending dupes to the Trash")
self.last_op_error_count = self.results.perform_on_marked(op, True)
del self.path2iphoto
@@ -156,11 +162,15 @@ class DupeGuruPE(app_cocoa.DupeGuru):
if isinstance(dupe, IPhoto):
if unicode(dupe.path) in self.path2iphoto:
photo = self.path2iphoto[unicode(dupe.path)]
a = app('iPhoto')
a.remove(photo, timeout=0)
return True
try:
a = app('iPhoto')
a.remove(photo, timeout=0)
return True
except (CommandError, RuntimeError):
return False
else:
logging.warning("Could not find photo {0} in iPhoto Library", unicode(dupe.path))
logging.warning(u"Could not find photo %s in iPhoto Library", unicode(dupe.path))
return False
else:
return app_cocoa.DupeGuru._do_delete_dupe(self, dupe)