feat: 恢复状态
This commit is contained in:
parent
df7dbc6717
commit
f922685561
|
|
@ -139,6 +139,12 @@ def get_abstract_from_elsevier(number_of_task:int = 20):
|
|||
for paper in qs[:number_of_task]:
|
||||
if not show_task_run(def_name):
|
||||
break
|
||||
original_status = paper.fetch_status
|
||||
if original_status == "downloading":
|
||||
return f"paper {paper.id} is already downloading"
|
||||
paper.fetch_status = "downloading"
|
||||
paper.save(update_fields=["fetch_status", "update_time"])
|
||||
try:
|
||||
try:
|
||||
res = req.get(
|
||||
f"https://api.elsevier.com/content/article/doi/{paper.doi}",
|
||||
|
|
@ -193,6 +199,10 @@ def get_abstract_from_elsevier(number_of_task:int = 20):
|
|||
|
||||
elif res.status_code == 404:
|
||||
paper.save_fail_reason("elsevier_doi_not_found")
|
||||
finally:
|
||||
if paper.fetch_status == "downloading":
|
||||
paper.fetch_status = original_status
|
||||
paper.save(update_fields=["fetch_status", "update_time"])
|
||||
|
||||
qs_count = qs.count()
|
||||
if show_task_run(def_name) and qs_count > 0:
|
||||
|
|
@ -315,8 +325,7 @@ def download_pdf(paper_id):
|
|||
msg = save_pdf_from_openalex(paper)
|
||||
return msg, current_from
|
||||
finally:
|
||||
# 出错时恢复到原状态
|
||||
if paper.fetch_status == "downloading" and paper.has_fulltext_pdf is False:
|
||||
if paper.fetch_status == "downloading":
|
||||
paper.fetch_status = original_status
|
||||
paper.save(update_fields=['fetch_status', 'update_time'])
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue