midterm / server /utils.py
Nagesh Muralidhar
midterm-submission
6c71315
raw
history blame
1.83 kB
import os
import json
import uuid
import logging
# Configure logging
logger = logging.getLogger(__name__)
# Create transcripts directory if it doesn't exist
TRANSCRIPTS_DIR = os.path.join(os.path.dirname(__file__), "transcripts")
os.makedirs(TRANSCRIPTS_DIR, exist_ok=True)
TRANSCRIPTS_FILE = os.path.join(TRANSCRIPTS_DIR, "podcasts.json")
def save_transcript(podcast_script: str, user_query: str) -> None:
"""Save podcast transcript to JSON file."""
# Create new transcript entry
transcript = {
"id": str(uuid.uuid4()),
"podcastScript": podcast_script,
"topic": user_query
}
try:
# Load existing transcripts
if os.path.exists(TRANSCRIPTS_FILE):
try:
with open(TRANSCRIPTS_FILE, 'r') as f:
transcripts = json.load(f)
if not isinstance(transcripts, list):
transcripts = []
except json.JSONDecodeError:
logger.warning("Error reading transcripts file, initializing empty list")
transcripts = []
else:
transcripts = []
# Append new transcript
transcripts.append(transcript)
# Save updated transcripts
with open(TRANSCRIPTS_FILE, 'w') as f:
json.dump(transcripts, f, indent=2)
logger.info("Successfully saved transcript")
except Exception as e:
logger.error(f"Error saving transcript: {str(e)}")
# Create directory if it doesn't exist
os.makedirs(os.path.dirname(TRANSCRIPTS_FILE), exist_ok=True)
# Try to save just this transcript
with open(TRANSCRIPTS_FILE, 'w') as f:
json.dump([transcript], f, indent=2)
logger.info("Saved single transcript after error")