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]:
|
for paper in qs[:number_of_task]:
|
||||||
if not show_task_run(def_name):
|
if not show_task_run(def_name):
|
||||||
break
|
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:
|
try:
|
||||||
res = req.get(
|
res = req.get(
|
||||||
f"https://api.elsevier.com/content/article/doi/{paper.doi}",
|
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:
|
elif res.status_code == 404:
|
||||||
paper.save_fail_reason("elsevier_doi_not_found")
|
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()
|
qs_count = qs.count()
|
||||||
if show_task_run(def_name) and qs_count > 0:
|
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)
|
msg = save_pdf_from_openalex(paper)
|
||||||
return msg, current_from
|
return msg, current_from
|
||||||
finally:
|
finally:
|
||||||
# 出错时恢复到原状态
|
if paper.fetch_status == "downloading":
|
||||||
if paper.fetch_status == "downloading" and paper.has_fulltext_pdf is False:
|
|
||||||
paper.fetch_status = original_status
|
paper.fetch_status = original_status
|
||||||
paper.save(update_fields=['fetch_status', 'update_time'])
|
paper.save(update_fields=['fetch_status', 'update_time'])
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue