From 67a38fc0e44e3b85f8058dac3ed81ba46288f9e4 Mon Sep 17 00:00:00 2001 From: Chris <> Date: Thu, 22 Aug 2019 12:18:24 +0100 Subject: [PATCH 1/5] Apply `data_source` field to albums #1693 --- beets/importer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/beets/importer.py b/beets/importer.py index d2943b5112..c0e25fb51e 100644 --- a/beets/importer.py +++ b/beets/importer.py @@ -754,6 +754,7 @@ def add(self, lib): self.record_replaced(lib) self.remove_replaced(lib) self.album = lib.add_album(self.imported_items()) + self.album.set_parse('data_source', self.imported_items()[0].data_source) self.reimport_metadata(lib) def record_replaced(self, lib): From 6146857a116b3fb2961f972e773b8143971587c2 Mon Sep 17 00:00:00 2001 From: Chris <> Date: Thu, 22 Aug 2019 14:53:25 +0100 Subject: [PATCH 2/5] Added check + store on object (no method call) --- beets/importer.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/beets/importer.py b/beets/importer.py index c0e25fb51e..1ebe869a12 100644 --- a/beets/importer.py +++ b/beets/importer.py @@ -754,7 +754,8 @@ def add(self, lib): self.record_replaced(lib) self.remove_replaced(lib) self.album = lib.add_album(self.imported_items()) - self.album.set_parse('data_source', self.imported_items()[0].data_source) + if self.imported_items()[0].data_source: + self.album.data_source = self.imported_items()[0].data_source self.reimport_metadata(lib) def record_replaced(self, lib): From ece99bb330a21205bf4b605ae1198474162d0739 Mon Sep 17 00:00:00 2001 From: Chris <> Date: Thu, 22 Aug 2019 15:46:00 +0100 Subject: [PATCH 3/5] Changed test to look for 'key' in Item.keys() --- beets/importer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/beets/importer.py b/beets/importer.py index 1ebe869a12..385c59185a 100644 --- a/beets/importer.py +++ b/beets/importer.py @@ -754,7 +754,7 @@ def add(self, lib): self.record_replaced(lib) self.remove_replaced(lib) self.album = lib.add_album(self.imported_items()) - if self.imported_items()[0].data_source: + if 'data_source' in self.imported_items()[0].keys(): self.album.data_source = self.imported_items()[0].data_source self.reimport_metadata(lib) From ba4430c0bf6f1e30bfb2698972f863ee290b080d Mon Sep 17 00:00:00 2001 From: Chris <> Date: Thu, 22 Aug 2019 19:27:23 +0100 Subject: [PATCH 4/5] Simplified conditional test, now w/o function call --- beets/importer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/beets/importer.py b/beets/importer.py index 385c59185a..e97b0a75cb 100644 --- a/beets/importer.py +++ b/beets/importer.py @@ -754,7 +754,7 @@ def add(self, lib): self.record_replaced(lib) self.remove_replaced(lib) self.album = lib.add_album(self.imported_items()) - if 'data_source' in self.imported_items()[0].keys(): + if 'data_source' in self.imported_items()[0]: self.album.data_source = self.imported_items()[0].data_source self.reimport_metadata(lib) From e0276138dbd8ba8d525a5420daa8e79a29e6b482 Mon Sep 17 00:00:00 2001 From: Chris <> Date: Fri, 23 Aug 2019 11:34:34 +0100 Subject: [PATCH 5/5] Changelog added --- docs/changelog.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/changelog.rst b/docs/changelog.rst index 4582166271..690696c1da 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -63,6 +63,9 @@ New features: Windows. Thanks to :user:`MartyLake`. :bug:`3331` :bug:`3334` +* The 'data_source' field is now also applied as an album-level flexible + attribute during imports, allowing for more refined album level searches. + :bug:`3350` :bug:`1693` Fixes: