import type { Event } from 'nostr-tools' import { extractTagsFromEvent } from '../nostrTagSystem' import { buildObjectId } from '../urlGenerator' import { readPresentationProfileData } from './profileData' import { mapTagCategoryToOriginalCategory, resolvePresentationIdParts } from './idResolution' import { buildPresentationArticle } from './articleBuilder' export async function parsePresentationEvent(event: Event): Promise { const tags = extractTagsFromEvent(event) if (tags.type !== 'author') { return null } const profileData = readPresentationProfileData(tags.json, event.content) const originalCategory = mapTagCategoryToOriginalCategory(tags.category) const { hash, version, index } = await resolvePresentationIdParts({ tags, event, profileData }) const id = buildObjectId(hash, index, version) return buildPresentationArticle({ id, hash, version, index, event, tags, profileData, originalCategory }) }