diff --git a/archivebox/core/models.py b/archivebox/core/models.py index b7719b2e..8ba0bb70 100644 --- a/archivebox/core/models.py +++ b/archivebox/core/models.py @@ -50,7 +50,8 @@ class Snapshot(models.Model): args = args or self.keys return { key: getattr(self, key) - for key in args + if key != 'tags' else self.get_tags_str() + for key in args } def as_link(self) -> Link: @@ -59,6 +60,13 @@ class Snapshot(models.Model): def as_link_with_details(self) -> Link: from ..index import load_link_details return load_link_details(self.as_link()) + + def get_tags_str(self) -> str: + tags = ','.join( + tag.name + for tag in self.tags.all() + ) if self.tags.all() else '' + return tags @cached_property def bookmarked(self): diff --git a/archivebox/index/__init__.py b/archivebox/index/__init__.py index f93a4ab8..d588242e 100644 --- a/archivebox/index/__init__.py +++ b/archivebox/index/__init__.py @@ -86,16 +86,20 @@ def merge_links(a: Link, b: Link) -> Link: ) # all unique, truthy tags - tags_a = [] - if a.tags: - tags_a = a.tags.all() - tags_b = [] - if b.tags: - tags_b = b.tags.all() + #tags_a = [] + #if a.tags: + # tags_a = a.tags.all() + #tags_b = [] + #if b.tags: + # tags_b = b.tags.all() + #tags_set = ( + # set(tag.name.strip() for tag in tags_a) + # | set(tag.name.strip() for tag in tags_b) + #) tags_set = ( - set(tag.name.strip() for tag in tags_a) - | set(tag.name.strip() for tag in tags_b) + set(tag.strip() for tag in (a.tags or '').split(',')) + | set(tag.strip() for tag in (b.tags or '').split(',')) ) tags = ','.join(tags_set) or None