From db2af07be6dcad0c1ee491ec31abc6d24f895b9d Mon Sep 17 00:00:00 2001 From: sanj <67624670+iodrift@users.noreply.github.com> Date: Thu, 8 Aug 2024 05:34:56 -0700 Subject: [PATCH] Auto-update: Thu Aug 8 05:34:56 PDT 2024 --- sijapi/routers/news.py | 57 ++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/sijapi/routers/news.py b/sijapi/routers/news.py index 7a03fae..570d177 100644 --- a/sijapi/routers/news.py +++ b/sijapi/routers/news.py @@ -158,33 +158,46 @@ async def process_and_save_article( voice: str = DEFAULT_VOICE, site_name: Optional[str] = None ) -> str: + try: # Fetch and parse article article = await fetch_and_parse_article(url) + + try: + # Generate title and file paths + title = sanitize_filename(title or article.title or f"Untitled - {dt_datetime.now().strftime('%Y-%m-%d')}") + markdown_filename, relative_path = assemble_journal_path(dt_datetime.now(), subdir="Articles", filename=title, extension=".md") + + # Generate summary + summary = await generate_summary(article.text) + + try: + # Handle TTS + audio_link = await handle_tts(bg_tasks, article, title, tts_mode, voice, summary) + + try: + # Generate markdown content + markdown_content = generate_markdown_content(article, title, summary, audio_link, site_name) + + # Save markdown file + await save_markdown_file(markdown_filename, markdown_content) + + # Add to daily note + await note.add_to_daily_note(relative_path) + + return f"Successfully saved: {relative_path}" + + except Exception as e: + err(f"Failed to handle final markdown content preparation and/or saving to daily note; {e}") + + except Exception as e: + err(f"Failed to handle TTS: {e}") + + except Exception as e: + err(f"Failed to generate title, file paths, and summary: {e}") - # Generate title and file paths - title = sanitize_filename(title or article.title or f"Untitled - {dt_datetime.now().strftime('%Y-%m-%d')}") - markdown_filename, relative_path = assemble_journal_path(dt_datetime.now(), subdir="Articles", filename=title, extension=".md") - - # Generate summary - summary = await generate_summary(article.text) - - # Handle TTS - audio_link = await handle_tts(bg_tasks, article, title, tts_mode, voice, summary) - - # Generate markdown content - markdown_content = generate_markdown_content(article, title, summary, audio_link, site_name) - - # Save markdown file - await save_markdown_file(markdown_filename, markdown_content) - - # Add to daily note - await note.add_to_daily_note(relative_path) - - return f"Successfully saved: {relative_path}" - except Exception as e: - err(f"Failed to process article {url}: {str(e)}") + err(f"Failed to fetch and parse article {url}: {str(e)}") raise HTTPException(status_code=500, detail=str(e))