mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-11-04 11:52:25 +00:00
Merge pull request #2210 from PR0M3TH3AN/refactor-build-comment-event-3814978219549166211
Refactor buildCommentEvent logic
This commit is contained in:
1 file changed
+87
-50
+87
-50
@@ -2106,57 +2106,46 @@ export function buildReactionEvent(params) {
|
||||
return event;
|
||||
}
|
||||
|
||||
export function buildCommentEvent(params) {
|
||||
const {
|
||||
pubkey,
|
||||
created_at,
|
||||
videoEventId = "",
|
||||
videoEventRelay = "",
|
||||
videoDefinitionAddress = "",
|
||||
videoDefinitionRelay = "",
|
||||
rootIdentifier = "",
|
||||
rootIdentifierRelay = "",
|
||||
parentCommentId = "",
|
||||
parentCommentRelay = "",
|
||||
threadParticipantPubkey = "",
|
||||
threadParticipantRelay = "",
|
||||
rootKind,
|
||||
rootAuthorPubkey = "",
|
||||
rootAuthorRelay = "",
|
||||
parentKind,
|
||||
parentAuthorPubkey = "",
|
||||
parentAuthorRelay = "",
|
||||
parentIdentifier = "",
|
||||
parentIdentifierRelay = "",
|
||||
additionalTags = [],
|
||||
content = "",
|
||||
} = params || {};
|
||||
const schema = getNostrEventSchema(NOTE_TYPES.VIDEO_COMMENT);
|
||||
const tags = [];
|
||||
|
||||
function normalizeCommentInputs(params) {
|
||||
const normalizeString = (value) =>
|
||||
typeof value === "string" ? value.trim() : "";
|
||||
|
||||
const normalizedVideoEventId = normalizeString(videoEventId);
|
||||
const normalizedVideoEventRelay = normalizeString(videoEventRelay);
|
||||
const normalizedVideoDefinitionAddress = normalizeString(videoDefinitionAddress);
|
||||
const normalizedVideoDefinitionRelay = normalizeString(videoDefinitionRelay);
|
||||
const normalizedRootIdentifier = normalizeString(rootIdentifier);
|
||||
const normalizedRootIdentifierRelay = normalizeString(rootIdentifierRelay);
|
||||
const normalizedParentCommentId = normalizeString(parentCommentId);
|
||||
const normalizedParentCommentRelay = normalizeString(parentCommentRelay);
|
||||
const normalizedParentIdentifier = normalizeString(parentIdentifier);
|
||||
const normalizedParentIdentifierRelay = normalizeString(parentIdentifierRelay);
|
||||
const normalizedThreadParticipantPubkey = normalizeString(
|
||||
threadParticipantPubkey,
|
||||
);
|
||||
const normalizedThreadParticipantRelay = normalizeString(
|
||||
threadParticipantRelay,
|
||||
);
|
||||
return {
|
||||
normalizedVideoEventId: normalizeString(params.videoEventId),
|
||||
normalizedVideoEventRelay: normalizeString(params.videoEventRelay),
|
||||
normalizedVideoDefinitionAddress: normalizeString(params.videoDefinitionAddress),
|
||||
normalizedVideoDefinitionRelay: normalizeString(params.videoDefinitionRelay),
|
||||
normalizedRootIdentifier: normalizeString(params.rootIdentifier),
|
||||
normalizedRootIdentifierRelay: normalizeString(params.rootIdentifierRelay),
|
||||
normalizedParentCommentId: normalizeString(params.parentCommentId),
|
||||
normalizedParentCommentRelay: normalizeString(params.parentCommentRelay),
|
||||
normalizedThreadParticipantPubkey: normalizeString(params.threadParticipantPubkey),
|
||||
normalizedThreadParticipantRelay: normalizeString(params.threadParticipantRelay),
|
||||
normalizedParentIdentifier: normalizeString(params.parentIdentifier),
|
||||
normalizedParentIdentifierRelay: normalizeString(params.parentIdentifierRelay),
|
||||
resolvedRootKind: normalizeString(params.rootKind),
|
||||
resolvedRootAuthorPubkey: normalizeString(params.rootAuthorPubkey),
|
||||
resolvedRootAuthorRelay: normalizeString(params.rootAuthorRelay),
|
||||
resolvedParentAuthorPubkey: normalizeString(params.parentAuthorPubkey),
|
||||
resolvedParentAuthorRelay: normalizeString(params.parentAuthorRelay),
|
||||
resolvedParentKind: normalizeString(params.parentKind),
|
||||
};
|
||||
}
|
||||
|
||||
let resolvedRootKind = normalizeString(rootKind);
|
||||
let resolvedRootAuthorPubkey = normalizeString(rootAuthorPubkey);
|
||||
let resolvedRootAuthorRelay = normalizeString(rootAuthorRelay);
|
||||
function resolveCommentContext(inputs, schema) {
|
||||
let {
|
||||
resolvedRootKind,
|
||||
resolvedRootAuthorPubkey,
|
||||
resolvedRootAuthorRelay,
|
||||
resolvedParentAuthorPubkey,
|
||||
resolvedParentAuthorRelay,
|
||||
resolvedParentKind,
|
||||
normalizedVideoDefinitionAddress,
|
||||
normalizedVideoDefinitionRelay,
|
||||
normalizedThreadParticipantPubkey,
|
||||
normalizedThreadParticipantRelay,
|
||||
normalizedParentCommentId,
|
||||
} = inputs;
|
||||
|
||||
if (normalizedVideoDefinitionAddress) {
|
||||
const definitionSegments = normalizedVideoDefinitionAddress.split(":");
|
||||
@@ -2171,12 +2160,10 @@ export function buildCommentEvent(params) {
|
||||
}
|
||||
}
|
||||
|
||||
let resolvedParentAuthorPubkey = normalizeString(parentAuthorPubkey);
|
||||
if (!resolvedParentAuthorPubkey) {
|
||||
resolvedParentAuthorPubkey = normalizedThreadParticipantPubkey;
|
||||
}
|
||||
|
||||
let resolvedParentAuthorRelay = normalizeString(parentAuthorRelay);
|
||||
if (!resolvedParentAuthorRelay) {
|
||||
resolvedParentAuthorRelay = normalizedThreadParticipantRelay;
|
||||
}
|
||||
@@ -2195,7 +2182,6 @@ export function buildCommentEvent(params) {
|
||||
resolvedParentAuthorRelay = resolvedRootAuthorRelay;
|
||||
}
|
||||
|
||||
let resolvedParentKind = normalizeString(parentKind);
|
||||
if (!resolvedParentKind) {
|
||||
if (normalizedParentCommentId) {
|
||||
resolvedParentKind = String(schema?.kind ?? 1111);
|
||||
@@ -2208,6 +2194,41 @@ export function buildCommentEvent(params) {
|
||||
resolvedRootKind = resolvedParentKind;
|
||||
}
|
||||
|
||||
return {
|
||||
resolvedRootKind,
|
||||
resolvedRootAuthorPubkey,
|
||||
resolvedRootAuthorRelay,
|
||||
resolvedParentAuthorPubkey,
|
||||
resolvedParentAuthorRelay,
|
||||
resolvedParentKind,
|
||||
};
|
||||
}
|
||||
|
||||
function buildCommentTags(schema, inputs, context) {
|
||||
const {
|
||||
normalizedVideoEventId,
|
||||
normalizedVideoEventRelay,
|
||||
normalizedVideoDefinitionAddress,
|
||||
normalizedVideoDefinitionRelay,
|
||||
normalizedRootIdentifier,
|
||||
normalizedRootIdentifierRelay,
|
||||
normalizedParentCommentId,
|
||||
normalizedParentCommentRelay,
|
||||
normalizedParentIdentifier,
|
||||
normalizedParentIdentifierRelay,
|
||||
} = inputs;
|
||||
|
||||
const {
|
||||
resolvedRootKind,
|
||||
resolvedRootAuthorPubkey,
|
||||
resolvedRootAuthorRelay,
|
||||
resolvedParentAuthorPubkey,
|
||||
resolvedParentAuthorRelay,
|
||||
resolvedParentKind,
|
||||
} = context;
|
||||
|
||||
const tags = [];
|
||||
|
||||
const rootDefinitionPointerTagName = schema?.rootDefinitionPointerTagName || "A";
|
||||
const rootEventPointerTagName = schema?.rootEventPointerTagName || "E";
|
||||
const rootIdentifierPointerTagName = schema?.rootIdentifierPointerTagName || "I";
|
||||
@@ -2333,6 +2354,22 @@ export function buildCommentEvent(params) {
|
||||
}
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
|
||||
export function buildCommentEvent(params) {
|
||||
const {
|
||||
pubkey,
|
||||
created_at,
|
||||
additionalTags = [],
|
||||
content = "",
|
||||
} = params || {};
|
||||
const schema = getNostrEventSchema(NOTE_TYPES.VIDEO_COMMENT);
|
||||
|
||||
const inputs = normalizeCommentInputs(params || {});
|
||||
const context = resolveCommentContext(inputs, schema);
|
||||
const tags = buildCommentTags(schema, inputs, context);
|
||||
|
||||
const sanitizedAdditionalTags = sanitizeAdditionalTags(additionalTags);
|
||||
if (sanitizedAdditionalTags.length) {
|
||||
tags.push(...sanitizedAdditionalTags.map((tag) => tag.slice()));
|
||||
|
||||
Reference in new issue
Block a user