diff --git a/apps/resm/models.py b/apps/resm/models.py index e2e48a0..fb7685e 100644 --- a/apps/resm/models.py +++ b/apps/resm/models.py @@ -44,13 +44,16 @@ class Paper(BaseModel): def init_save_dir(self): publication_date = self.publication_date - paper_dir = os.path.join( - settings.BASE_DIR, - "media/papers", - str(publication_date.year), - str(publication_date.month), - str(publication_date.day) - ) + if publication_date is None: + paper_dir = os.path.join(settings.BASE_DIR, "media/papers", "unknown") + else: + paper_dir = os.path.join( + settings.BASE_DIR, + "media/papers", + str(publication_date.year), + str(publication_date.month), + str(publication_date.day) + ) os.makedirs(paper_dir, exist_ok=True) return paper_dir diff --git a/apps/resm/tasks.py b/apps/resm/tasks.py index 4a857f1..a02271f 100644 --- a/apps/resm/tasks.py +++ b/apps/resm/tasks.py @@ -11,7 +11,6 @@ from lxml import etree from celery import current_app from datetime import datetime import random -import time # config.email = "caoqianming@foxmail.com" config.email = "caoqianming@ctc.ac.cn" @@ -320,6 +319,7 @@ def download_pdf(paper_id): paper.fetch_status = 'downloading' paper.save(update_fields=['fetch_status', 'update_time']) msg = "没有下载渠道" + current_from = "" if paper.oa_url: current_from = "oa_url" msg = save_pdf_from_oa_url(paper) @@ -328,7 +328,7 @@ def download_pdf(paper_id): # msg = save_pdf_from_openalex(paper) return msg, current_from finally: - if paper.fetch_status == "downloading": + if paper and paper.fetch_status == "downloading": paper.fetch_status = original_status paper.save(update_fields=['fetch_status', 'update_time'])