Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -393,24 +393,30 @@ def create_gradio_interface():
|
|
393 |
else:
|
394 |
return None, "Please provide a .bib file, a single DOI, or a list of DOIs", "Please provide a .bib file, a single DOI, or a list of DOIs", None
|
395 |
|
396 |
-
def create_report(
|
397 |
"""Creates a report and returns the report path."""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
398 |
if downloaded_dois or failed_dois:
|
399 |
report_path = downloader.create_report_docx(downloaded_dois, failed_dois)
|
400 |
return report_path
|
401 |
return None
|
|
|
402 |
|
403 |
# Gradio Interface
|
404 |
-
|
405 |
-
fn=download_papers,
|
406 |
-
inputs=[
|
407 |
-
gr.File(file_types=['.bib'], label="Upload BibTeX File"),
|
408 |
-
gr.Textbox(label="Enter Single DOI", placeholder="10.xxxx/xxxx"),
|
409 |
-
gr.Textbox(label="Enter Multiple DOIs (one per line)", placeholder="10.xxxx/xxxx\n10.yyyy/yyyy\n...")
|
410 |
-
],
|
411 |
-
outputs=[
|
412 |
-
gr.File(label="Download Papers (ZIP) or Single PDF"),
|
413 |
-
gr.HTML(label="""
|
414 |
<div style='padding-bottom: 5px; font-weight: bold;'>
|
415 |
Enter Single DOI
|
416 |
</div>
|
@@ -420,15 +426,28 @@ def create_gradio_interface():
|
|
420 |
</div>
|
421 |
<div id="downloaded-dois"></div>
|
422 |
</div>
|
423 |
-
""")
|
424 |
-
|
425 |
<div style='border: 1px solid #ddd; padding: 5px; border-radius: 5px;'>
|
426 |
<div style='padding-bottom: 5px; font-weight: bold;'>
|
427 |
Failed DOIs
|
428 |
</div>
|
429 |
<div id="failed-dois"></div>
|
430 |
</div>
|
431 |
-
""")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
432 |
gr.File(label="Downloaded Single PDF"),
|
433 |
],
|
434 |
title="🔬 Academic Paper Batch Downloader",
|
@@ -484,7 +503,7 @@ def create_gradio_interface():
|
|
484 |
with gr.Row():
|
485 |
report_button = gr.Button("Create Report")
|
486 |
report_output = gr.File(label="Download Report")
|
487 |
-
report_button.click(create_report, inputs = [
|
488 |
|
489 |
return interface
|
490 |
|
|
|
393 |
else:
|
394 |
return None, "Please provide a .bib file, a single DOI, or a list of DOIs", "Please provide a .bib file, a single DOI, or a list of DOIs", None
|
395 |
|
396 |
+
def create_report(downloaded_dois_html, failed_dois_html):
|
397 |
"""Creates a report and returns the report path."""
|
398 |
+
downloaded_dois = ""
|
399 |
+
failed_dois = ""
|
400 |
+
|
401 |
+
# Extract text content from HTML elements
|
402 |
+
if downloaded_dois_html:
|
403 |
+
soup = BeautifulSoup(downloaded_dois_html, 'html.parser')
|
404 |
+
downloaded_dois_items = [li.text for li in soup.find_all('li')]
|
405 |
+
downloaded_dois = "\n".join(downloaded_dois_items)
|
406 |
+
|
407 |
+
if failed_dois_html:
|
408 |
+
soup = BeautifulSoup(failed_dois_html, 'html.parser')
|
409 |
+
failed_dois_items = [li.text for li in soup.find_all('li')]
|
410 |
+
failed_dois = "\n".join(failed_dois_items)
|
411 |
+
|
412 |
if downloaded_dois or failed_dois:
|
413 |
report_path = downloader.create_report_docx(downloaded_dois, failed_dois)
|
414 |
return report_path
|
415 |
return None
|
416 |
+
|
417 |
|
418 |
# Gradio Interface
|
419 |
+
downloaded_dois_html = gr.HTML(label="""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
420 |
<div style='padding-bottom: 5px; font-weight: bold;'>
|
421 |
Enter Single DOI
|
422 |
</div>
|
|
|
426 |
</div>
|
427 |
<div id="downloaded-dois"></div>
|
428 |
</div>
|
429 |
+
""")
|
430 |
+
failed_dois_html = gr.HTML(label="""
|
431 |
<div style='border: 1px solid #ddd; padding: 5px; border-radius: 5px;'>
|
432 |
<div style='padding-bottom: 5px; font-weight: bold;'>
|
433 |
Failed DOIs
|
434 |
</div>
|
435 |
<div id="failed-dois"></div>
|
436 |
</div>
|
437 |
+
""")
|
438 |
+
|
439 |
+
|
440 |
+
interface = gr.Interface(
|
441 |
+
fn=download_papers,
|
442 |
+
inputs=[
|
443 |
+
gr.File(file_types=['.bib'], label="Upload BibTeX File"),
|
444 |
+
gr.Textbox(label="Enter Single DOI", placeholder="10.xxxx/xxxx"),
|
445 |
+
gr.Textbox(label="Enter Multiple DOIs (one per line)", placeholder="10.xxxx/xxxx\n10.yyyy/yyyy\n...")
|
446 |
+
],
|
447 |
+
outputs=[
|
448 |
+
gr.File(label="Download Papers (ZIP) or Single PDF"),
|
449 |
+
downloaded_dois_html,
|
450 |
+
failed_dois_html,
|
451 |
gr.File(label="Downloaded Single PDF"),
|
452 |
],
|
453 |
title="🔬 Academic Paper Batch Downloader",
|
|
|
503 |
with gr.Row():
|
504 |
report_button = gr.Button("Create Report")
|
505 |
report_output = gr.File(label="Download Report")
|
506 |
+
report_button.click(create_report, inputs = [downloaded_dois_html,failed_dois_html], outputs=report_output)
|
507 |
|
508 |
return interface
|
509 |
|