import json import random from datetime import datetime def interleave_papers_by_interest(all_papers_by_interest): """ Interleave papers round-robin style across interests. Returns a flat list cycling through: Interest1[0], Interest2[0], ..., Interest1[1], Interest2[1], ... """ # Shuffle papers within each interest category for interest_name in all_papers_by_interest: random.shuffle(all_papers_by_interest[interest_name]) # Interleave round-robin interleaved = [] interest_names = list(all_papers_by_interest.keys()) max_papers = max(len(papers) for papers in all_papers_by_interest.values()) if all_papers_by_interest else 0 for i in range(max_papers): for interest_name in interest_names: papers = all_papers_by_interest[interest_name] if i < len(papers): # Add interest category to paper data papers[i]['interest_category'] = interest_name interleaved.append(papers[i]) return interleaved def generate_tiktok_html(interleaved_papers): """Generate self-contained TikTok-style feed HTML with embedded data.""" papers_json = json.dumps(interleaved_papers, indent=2, ensure_ascii=False) date_str = datetime.now().strftime('%B %d, %Y') html = f"""