import type { Article } from '@/types/nostr' /** * Extract presentation data from article content * Supports multiple formats: * 1. Old format: "${presentation}\n\n---\n\nDescription du contenu :\n${contentDescription}" * 2. New format (content only): "Nouveau profil publié sur zapwall.fr\n\n\nPrésentation personnelle : \nDescription de votre contenu : \nAdresse Bitcoin mainnet (pour le sponsoring) : " * 3. New format (with JSON in tag): JSON metadata is stored in the 'json' tag, not in content * * Note: For new notes, the JSON metadata is stored in the 'json' tag. * This function extracts from content for backward compatibility only. * The main extraction should use extractTagsFromEvent to get json from tags. */ export function extractPresentationData(presentation: Article): { presentation: string contentDescription: string } { const {content} = presentation // Try new format first const newFormatMatch = content.match(/Présentation personnelle : (.+?)(?:\nDescription de votre contenu :|$)/s) const descriptionMatch = content.match(/Description de votre contenu : (.+?)(?:\nAdresse Bitcoin mainnet|$)/s) if (newFormatMatch && descriptionMatch && newFormatMatch[1] && descriptionMatch[1]) { return { presentation: newFormatMatch[1].trim(), contentDescription: descriptionMatch[1].trim(), } } // Note: JSON metadata is now stored in tags, not in content // This function extracts from content for backward compatibility only // The main extraction should use extractTagsFromEvent to get json from tags // Fallback to old format const separator = '\n\n---\n\nDescription du contenu :\n' const separatorIndex = content.indexOf(separator) if (separatorIndex === -1) { // Fallback: return content as presentation if separator not found return { presentation: content, contentDescription: '', } } const presentationText = content.substring(0, separatorIndex) const contentDescription = content.substring(separatorIndex + separator.length) return { presentation: presentationText, contentDescription, } }