diff --git a/journal/importers/douban.py b/journal/importers/douban.py index 0d21cb3a..4f1692d0 100644 --- a/journal/importers/douban.py +++ b/journal/importers/douban.py @@ -382,7 +382,17 @@ class DoubanImporter: "body": content, "visibility": self.visibility, } - Review.objects.update_or_create( - owner=self.user.identity, item=item, defaults=params - ) + try: + Review.objects.update_or_create( + owner=self.user.identity, item=item, defaults=params + ) + except: + logger.warning(f"{prefix} update multiple review {review_url}") + r = ( + Review.objects.filter(owner=self.user.identity, item=item) + .order_by("-created_time") + .first() + ) + if r: + Review.objects.filter(pk=r.pk).update(**params) return 1 diff --git a/journal/importers/opml.py b/journal/importers/opml.py index 8125098f..1cad5fe6 100644 --- a/journal/importers/opml.py +++ b/journal/importers/opml.py @@ -37,7 +37,10 @@ class OPMLImporter: ) for feed in feeds: logger.info(f"{self.user} import {feed.url}") - res = RSS(feed.url).get_resource_ready() + try: + res = RSS(feed.url).get_resource_ready() + except: + res = None if not res: logger.warning(f"{self.user} feed error {feed.url}") continue