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 %}