C2MV commited on
Commit
b5bce76
·
verified ·
1 Parent(s): b346445

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -15
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(downloaded_dois, failed_dois):
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
- interface = gr.Interface(
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
- gr.HTML(label="""
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 = [interface.outputs[1],interface.outputs[2]], outputs=report_output)
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