diff --git a/journal/importers/douban.py b/journal/importers/douban.py index 0e4c0eb7..d7975fc9 100644 --- a/journal/importers/douban.py +++ b/journal/importers/douban.py @@ -11,6 +11,7 @@ from markdownify import markdownify as md from catalog.common import * from catalog.common.downloaders import * from catalog.models import * +from catalog.sites import DoubanBook, DoubanDrama, DoubanGame, DoubanMovie, DoubanMusic from catalog.sites.douban import DoubanDownloader from common.utils import GenerateDateUUIDMediaFilePath from journal.models import * @@ -160,9 +161,7 @@ class DoubanImporter(Task): self.import_review_sheet(self.review_data[name], name) self.message = f"豆瓣标记和评论导入完成,共处理{self.metadata['total']}篇,已存在{self.metadata['skipped']}篇,新增{self.metadata['imported']}篇。" if len(self.metadata["failed_urls"]) > 0: - self.message += ( - f'导入时未能处理以下网址:\n{" , ".join(self.metadata["failed_urls"])}' - ) + self.message += f'导入时未能处理{len(self.metadata["failed_urls"])}个网址。' self.save() def import_mark_sheet(self, worksheet, shelf_type, sheet_name): @@ -298,6 +297,17 @@ class DoubanImporter(Task): self.metadata["failed_urls"].append(str(url)) return item + def is_douban_item_url(self, url): + for cls in [ + DoubanBook, + DoubanDrama, + DoubanMovie, + DoubanMusic, + DoubanGame, + ]: + if cls.url_to_id(url): + return True + def import_review(self, entity_title, rating, title, review_url, content, time): """ Import one review: return 1: done / 2: skipped / None: failed @@ -310,7 +320,7 @@ class DoubanImporter(Task): h = DoubanDownloader(review_url).download().html() urls = h.xpath("//header[@class='main-hd']/a/@href") for u in urls: # type:ignore - if ".douban.com/subject/" in u: + if self.is_douban_item_url(u): url = u if not url: logger.warning( diff --git a/users/templates/users/data.html b/users/templates/users/data.html index 0e286925..c2ac8c85 100644 --- a/users/templates/users/data.html +++ b/users/templates/users/data.html @@ -174,7 +174,7 @@
{{ letterboxd_task.message }} {% if letterboxd_task.metadata.failed_urls %} - {% trans 'Failed links, likely due to Letterboxd error, you may have to mark them manually' %} + {% trans 'Failed links, likely due to Letterboxd error, you may have to mark them manually' %}:
{% endif %} diff --git a/users/templates/users/data_import_status.html b/users/templates/users/data_import_status.html index 009e627b..2f95a7c2 100644 --- a/users/templates/users/data_import_status.html +++ b/users/templates/users/data_import_status.html @@ -8,7 +8,7 @@ 共{{ import_task.metadata.total }}篇,已处理{{ import_task.metadata.processed }}篇,其中已存在{{ import_task.metadata.skipped }}篇,新增{{ import_task.metadata.imported }}篇
{% if import_task.metadata.failed_urls %} - {% trans 'Failed links, you may have to mark them manually' %} + {% trans 'Failed links, you may have to mark them manually' %}:
{% endif %}