diff --git a/common/templates/400.html b/common/templates/400.html index 6ca86a6b..ca9c1764 100644 --- a/common/templates/400.html +++ b/common/templates/400.html @@ -12,6 +12,7 @@ {{ site_name }} - {% trans '无效请求' %} + {% include "common_libs.html" %} diff --git a/common/templates/403.html b/common/templates/403.html index c397ff31..320cab0d 100644 --- a/common/templates/403.html +++ b/common/templates/403.html @@ -12,6 +12,7 @@ {{ site_name }} - {% trans '权限不符' %} + {% include "common_libs.html" %} diff --git a/common/templates/404.html b/common/templates/404.html index cca2a9a1..a4969bb6 100644 --- a/common/templates/404.html +++ b/common/templates/404.html @@ -12,6 +12,7 @@ {{ site_name }} - {% trans '未找到' %} + {% include "common_libs.html" %} diff --git a/common/templates/500.html b/common/templates/500.html index b34b2ba9..868a7dd1 100644 --- a/common/templates/500.html +++ b/common/templates/500.html @@ -12,6 +12,7 @@ {{ site_name }} - {% trans '系统错误' %} + {% include "common_libs.html" %} diff --git a/journal/importers/letterboxd.py b/journal/importers/letterboxd.py index a47591ef..f29d50e4 100644 --- a/journal/importers/letterboxd.py +++ b/journal/importers/letterboxd.py @@ -37,11 +37,13 @@ class LetterboxdImporter(Task): try: h = BasicDownloader(url).download().html() tu = h.xpath("//a[@data-track-action='TMDb']/@href") + iu = h.xpath("//a[@data-track-action='IMDb']/@href") if not tu: i = h.xpath('//span[@class="film-title-wrapper"]/a/@href') u2 = "https://letterboxd.com" + i[0] # type:ignore h = BasicDownloader(u2).download().html() tu = h.xpath("//a[@data-track-action='TMDb']/@href") + iu = h.xpath("//a[@data-track-action='IMDb']/@href") if not tu: logger.error(f"Unknown TMDB for {url}") return None @@ -52,11 +54,21 @@ class LetterboxdImporter(Task): site = SiteManager.get_site_by_url(f"{site.url}/season/1") if not site: return None - site.get_resource_ready() - item = site.get_item() - return item + try: + site.get_resource_ready() + return site.get_item() + except: + imdb_url = str(iu[0]) # type:ignore + logger.warning( + f"Fetching {url}: TMDB {site.url} failed, try IMDB {imdb_url}" + ) + site = SiteManager.get_site_by_url(imdb_url) + if not site: + return None + site.get_resource_ready() + return site.get_item() except Exception as e: - logger.error(f"Unable to parse {url} {e}") + logger.error(f"Fetching {url}: error {e}") def mark(self, url, shelf_type, date, rating=None, text=None, tags=None): item = self.get_item_by_url(url) diff --git a/users/data.py b/users/data.py index 87a075d5..98c467b3 100644 --- a/users/data.py +++ b/users/data.py @@ -173,7 +173,7 @@ def import_douban(request): int(request.POST.get("import_mode", 0)), ) if importer.import_from_file(request.FILES["file"]): - messages.add_message(request, messages.INFO, _("文件上传成功,等待后台导入。")) + messages.add_message(request, messages.INFO, _("文件已上传,等待后台导入。")) else: messages.add_message(request, messages.ERROR, _("无法识别文件。")) return redirect(reverse("users:data")) @@ -196,7 +196,7 @@ def import_letterboxd(request): visibility=int(request.POST.get("visibility", 0)), file=f, ) - messages.add_message(request, messages.INFO, _("文件上传成功,等待后台导入。")) + messages.add_message(request, messages.INFO, _("文件已上传,等待后台导入。")) return redirect(reverse("users:data")) @@ -209,7 +209,7 @@ def import_opml(request): int(request.POST.get("import_mode", 0)), ) if importer.import_from_file(request.FILES["file"]): - messages.add_message(request, messages.INFO, _("文件上传成功,等待后台导入。")) + messages.add_message(request, messages.INFO, _("文件已上传,等待后台导入。")) else: messages.add_message(request, messages.ERROR, _("无法识别文件。")) return redirect(reverse("users:data")) diff --git a/users/jobs/sync.py b/users/jobs/sync.py index 7c557d84..0a159b13 100644 --- a/users/jobs/sync.py +++ b/users/jobs/sync.py @@ -1,6 +1,4 @@ -import pprint from datetime import timedelta -from time import sleep from django.utils import timezone from loguru import logger diff --git a/users/models/user.py b/users/models/user.py index b07599b9..6f399eeb 100644 --- a/users/models/user.py +++ b/users/models/user.py @@ -1,4 +1,3 @@ -import hashlib import re from datetime import timedelta from functools import cached_property @@ -10,7 +9,6 @@ from django.core.exceptions import ValidationError from django.db import models from django.db.models import F, Manager, Q, Value from django.db.models.functions import Concat, Lower -from django.templatetags.static import static from django.urls import reverse from django.utils import timezone from django.utils.deconstruct import deconstructible diff --git a/users/tasks.py b/users/tasks.py index 18ac042d..6fa2a54c 100644 --- a/users/tasks.py +++ b/users/tasks.py @@ -1,9 +1,4 @@ -from datetime import timedelta - -from django.conf import settings -from django.utils import timezone from loguru import logger -from tqdm import tqdm from .models import User diff --git a/users/templates/users/data.html b/users/templates/users/data.html index a65f6fcc..db48d72b 100644 --- a/users/templates/users/data.html +++ b/users/templates/users/data.html @@ -147,13 +147,15 @@

- 导入时仅更新正向变化(未标->想看->已看)标记;不足360字符的评论会作为短评。 + 导入时仅更新正向变化(未标->想看->已看)标记;不足360字符的评论会作为短评添加。 {% if letterboxd_task %}
最近导入于{{ letterboxd_task.created_time }},状态:{{ letterboxd_task.get_state_display }}。
{{ letterboxd_task.message }} {% if letterboxd_task.metadata.failed_urls %} + 导入失败的链接(通常由于Letterboxd的信息错误,请手工添加标记): +
{% endif %} {% endif %}