Akshayram1 commited on
Commit
ac944eb
Β·
verified Β·
1 Parent(s): 7fb931b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -17
app.py CHANGED
@@ -23,7 +23,11 @@ from agents.analyzer_agent import AnalyzerAgent
23
  from agents.content_agent import ContentAgent
24
 
25
  class LinkedInEnhancerGradio:
26
- """Gradio Interface for LinkedIn Profile Enhancer"""
 
 
 
 
27
 
28
  def __init__(self):
29
  self.orchestrator = ProfileOrchestrator()
@@ -348,7 +352,7 @@ class LinkedInEnhancerGradio:
348
  def export_results(self, linkedin_url: str) -> str:
349
  """Export all results to a comprehensive downloadable file"""
350
  if not self.current_profile_data:
351
- return "❌ No data to export"
352
 
353
  try:
354
  # Create filename with timestamp
@@ -356,6 +360,9 @@ class LinkedInEnhancerGradio:
356
  timestamp = time.strftime('%Y%m%d_%H%M%S')
357
  filename = f"LinkedIn_Profile_Enhancement_{profile_name}_{timestamp}.md"
358
 
 
 
 
359
  # Compile comprehensive report
360
  content = f"""# πŸš€ LinkedIn Profile Enhancement Report
361
 
@@ -564,13 +571,14 @@ This comprehensive report provides a detailed analysis of your LinkedIn profile
564
  """
565
 
566
  # Save to file (this will be downloaded by the browser)
567
- with open(filename, 'w', encoding='utf-8') as f:
568
  f.write(content)
569
 
570
- return f"βœ… Report exported as {filename} - File saved for download"
571
 
572
  except Exception as e:
573
- return f"❌ Export failed: {str(e)}"
 
574
 
575
  def create_gradio_interface():
576
  """Create and return the Gradio interface"""
@@ -704,12 +712,13 @@ def create_gradio_interface():
704
  with gr.TabItem("πŸ’‘ Enhancement Suggestions"):
705
  suggestions_content = gr.Markdown(label="Enhancement Suggestions")
706
 
707
- with gr.TabItem("πŸ“ Export & Download"):
708
- export_status = gr.Textbox(label="Download Status", interactive=False)
 
709
  gr.Markdown("""
710
- ### πŸ“ Comprehensive Report Download
711
 
712
- Click the **Export Results** button to download a complete markdown report containing:
713
 
714
  #### πŸ“Š **Complete Profile Analysis**
715
  - Basic profile information and current content
@@ -738,10 +747,22 @@ def create_gradio_interface():
738
 
739
  def on_enhance_profile(url, job_desc):
740
  status, basic, about, exp, details, analysis, keywords, suggestions, image = app.enhance_linkedin_profile(url, job_desc)
741
- return status, basic, about, exp, details, analysis, keywords, suggestions, image
 
 
 
 
 
 
 
 
 
742
 
743
- def on_export_results(url):
744
- return app.export_results(url)
 
 
 
745
 
746
  # Connect events
747
  test_btn.click(
@@ -752,13 +773,13 @@ def create_gradio_interface():
752
  enhance_btn.click(
753
  fn=on_enhance_profile,
754
  inputs=[linkedin_url, job_description],
755
- outputs=[enhance_status, basic_info, about_section, experience_info, education_skills, analysis_results, keyword_analysis, suggestions_content, profile_image]
756
  )
757
 
758
- export_btn.click(
759
- fn=on_export_results,
760
  inputs=[linkedin_url],
761
- outputs=[export_status]
762
  )
763
 
764
  # Auto-test connections on load
@@ -819,4 +840,4 @@ Web Interface Features:
819
  )
820
 
821
  if __name__ == "__main__":
822
- main()
 
23
  from agents.content_agent import ContentAgent
24
 
25
  class LinkedInEnhancerGradio:
26
+ """Gradio # Action Buttons - Single Enhanced Button
27
+ with gr.Row():
28
+ enhance_btn = gr.Button("πŸš€ Enhance LinkedIn Profile", variant="primary", size="lg") # Action Buttons - Single Enhanced Button with Download
29
+ with gr.Row():
30
+ enhance_btn = gr.Button("πŸš€ Enhance LinkedIn Profile", variant="primary", size="lg")rface for LinkedIn Profile Enhancer"""
31
 
32
  def __init__(self):
33
  self.orchestrator = ProfileOrchestrator()
 
352
  def export_results(self, linkedin_url: str) -> str:
353
  """Export all results to a comprehensive downloadable file"""
354
  if not self.current_profile_data:
355
+ return None # Return None if no data
356
 
357
  try:
358
  # Create filename with timestamp
 
360
  timestamp = time.strftime('%Y%m%d_%H%M%S')
361
  filename = f"LinkedIn_Profile_Enhancement_{profile_name}_{timestamp}.md"
362
 
363
+ # Create full file path
364
+ file_path = os.path.join(os.getcwd(), filename)
365
+
366
  # Compile comprehensive report
367
  content = f"""# πŸš€ LinkedIn Profile Enhancement Report
368
 
 
571
  """
572
 
573
  # Save to file (this will be downloaded by the browser)
574
+ with open(file_path, 'w', encoding='utf-8') as f:
575
  f.write(content)
576
 
577
+ return file_path # Return file path for download
578
 
579
  except Exception as e:
580
+ print(f"Export error: {str(e)}")
581
+ return None
582
 
583
  def create_gradio_interface():
584
  """Create and return the Gradio interface"""
 
712
  with gr.TabItem("πŸ’‘ Enhancement Suggestions"):
713
  suggestions_content = gr.Markdown(label="Enhancement Suggestions")
714
 
715
+ with gr.TabItem("οΏ½ Download Report"):
716
+ download_status = gr.Textbox(label="Download Status", interactive=False)
717
+ download_btn = gr.DownloadButton("πŸ“₯ Download Report", variant="secondary", visible=False)
718
  gr.Markdown("""
719
+ ### οΏ½ **Download Complete Report**
720
 
721
+ After enhancing your profile, click the **Download Report** button to get a comprehensive markdown file containing:
722
 
723
  #### πŸ“Š **Complete Profile Analysis**
724
  - Basic profile information and current content
 
747
 
748
  def on_enhance_profile(url, job_desc):
749
  status, basic, about, exp, details, analysis, keywords, suggestions, image = app.enhance_linkedin_profile(url, job_desc)
750
+
751
+ # Show download button if enhancement was successful
752
+ download_visible = status.startswith("βœ…")
753
+ download_message = "βœ… Profile enhanced! You can now download the report." if download_visible else "❌ Please enhance profile first to download report."
754
+
755
+ return (
756
+ status, basic, about, exp, details, analysis, keywords, suggestions, image,
757
+ gr.DownloadButton("πŸ“₯ Download Report", variant="secondary", visible=download_visible),
758
+ download_message
759
+ )
760
 
761
+ def on_download_report(url):
762
+ file_path = app.export_results(url)
763
+ if file_path and os.path.exists(file_path):
764
+ return file_path
765
+ return None
766
 
767
  # Connect events
768
  test_btn.click(
 
773
  enhance_btn.click(
774
  fn=on_enhance_profile,
775
  inputs=[linkedin_url, job_description],
776
+ outputs=[enhance_status, basic_info, about_section, experience_info, education_skills, analysis_results, keyword_analysis, suggestions_content, profile_image, download_btn, download_status]
777
  )
778
 
779
+ download_btn.click(
780
+ fn=on_download_report,
781
  inputs=[linkedin_url],
782
+ outputs=[download_btn]
783
  )
784
 
785
  # Auto-test connections on load
 
840
  )
841
 
842
  if __name__ == "__main__":
843
+ main()