From 8ef36198fb65b1739c9afdcdc599f5d09cba777b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Tissi=C3=A8res?= Date: Mon, 21 Mar 2016 20:47:05 +0100 Subject: [PATCH] importadded: preserve mtime after any write --- beetsplug/importadded.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/beetsplug/importadded.py b/beetsplug/importadded.py index 1202e95de..71ead7193 100644 --- a/beetsplug/importadded.py +++ b/beetsplug/importadded.py @@ -19,6 +19,7 @@ class ImportAddedPlugin(BeetsPlugin): super(ImportAddedPlugin, self).__init__() self.config.add({ 'preserve_mtimes': False, + 'preserve_write_mtimes': False, }) # item.id for new items that were reimported @@ -37,6 +38,7 @@ class ImportAddedPlugin(BeetsPlugin): register('item_linked', self.record_import_mtime) register('album_imported', self.update_album_times) register('item_imported', self.update_item_times) + register('after_write', self.update_after_write_time) def check_config(self, task, session): self.config['preserve_mtimes'].get(bool) @@ -120,3 +122,13 @@ class ImportAddedPlugin(BeetsPlugin): self._log.debug(u"Import of item '{0}', selected item.added={1}", util.displayable_path(item.path), item.added) item.store() + + def update_after_write_time(self, item): + """Update the mtime of the item's file with the item.added value + after each write of the item if `preserve_write_mtimes` is enabled. + """ + if item.added: + if self.config['preserve_write_mtimes'].get(bool): + self.write_item_mtime(item, item.added) + self._log.debug(u"Write of item '{0}', selected item.added={1}", + util.displayable_path(item.path), item.added)