letterboxd: import imdb only items
This commit is contained in:
parent
6d3d240750
commit
ab4bceb1c3
10 changed files with 26 additions and 17 deletions
|
@ -12,6 +12,7 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ site_name }} - {% trans '无效请求' %}</title>
|
||||
<meta name="robots" content="noindex">
|
||||
{% include "common_libs.html" %}
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ site_name }} - {% trans '权限不符' %}</title>
|
||||
<meta name="robots" content="noindex">
|
||||
{% include "common_libs.html" %}
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ site_name }} - {% trans '未找到' %}</title>
|
||||
<meta name="robots" content="noindex">
|
||||
{% include "common_libs.html" %}
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ site_name }} - {% trans '系统错误' %}</title>
|
||||
<meta name="robots" content="noindex">
|
||||
{% include "common_libs.html" %}
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import pprint
|
||||
from datetime import timedelta
|
||||
from time import sleep
|
||||
|
||||
from django.utils import timezone
|
||||
from loguru import logger
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -147,13 +147,15 @@
|
|||
</p>
|
||||
<input type="submit" value="{% trans '导入' %}" />
|
||||
<small>
|
||||
导入时仅更新正向变化(未标->想看->已看)标记;不足360字符的评论会作为短评。
|
||||
导入时仅更新正向变化(未标->想看->已看)标记;不足360字符的评论会作为短评添加。
|
||||
{% if letterboxd_task %}
|
||||
<br>
|
||||
最近导入于{{ letterboxd_task.created_time }},状态:{{ letterboxd_task.get_state_display }}。
|
||||
<br>
|
||||
{{ letterboxd_task.message }}
|
||||
{% if letterboxd_task.metadata.failed_urls %}
|
||||
导入失败的链接(通常由于Letterboxd的信息错误,请手工添加标记):
|
||||
<br>
|
||||
<textarea readonly>{% for url in letterboxd_task.metadata.failed_urls %}{{url}} {% endfor %}</textarea>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
|
Loading…
Add table
Reference in a new issue