mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-12-25 17:33:09 +02:00
Merge pull request #1400 from akihikodaki/duplicate
Handle inReplyTo property
This commit is contained in:
commit
15b9bfb471
1 changed files with 17 additions and 8 deletions
|
@ -48,11 +48,6 @@ class Creator {
|
||||||
throw new Error();
|
throw new Error();
|
||||||
}
|
}
|
||||||
|
|
||||||
const mediaIds = 'attachment' in note &&
|
|
||||||
(await Promise.all(await this.create(resolver, note.attachment)))
|
|
||||||
.filter(media => media !== null && media.object.$ref === 'driveFiles.files')
|
|
||||||
.map(({ object }) => object.$id);
|
|
||||||
|
|
||||||
const { window } = new JSDOM(note.content);
|
const { window } = new JSDOM(note.content);
|
||||||
const mentions = [];
|
const mentions = [];
|
||||||
const tags = [];
|
const tags = [];
|
||||||
|
@ -71,13 +66,27 @@ class Creator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const [mediaIds, reply] = await Promise.all([
|
||||||
|
'attachment' in note && this.create(resolver, note.attachment)
|
||||||
|
.then(collection => Promise.all(collection))
|
||||||
|
.then(collection => collection
|
||||||
|
.filter(media => media !== null && media.object.$ref === 'driveFiles.files')
|
||||||
|
.map(({ object }: IResult) => object.$id)),
|
||||||
|
|
||||||
|
'inReplyTo' in note && this.create(resolver, note.inReplyTo)
|
||||||
|
.then(collection => Promise.all(collection.map(promise => promise.then(result => {
|
||||||
|
if (result !== null && result.object.$ref === 'posts') {
|
||||||
|
throw result.object;
|
||||||
|
}
|
||||||
|
}, () => { }))))
|
||||||
|
.then(() => null, ({ $id }) => Post.findOne({ _id: $id }))
|
||||||
|
]);
|
||||||
|
|
||||||
const inserted = await createPost({
|
const inserted = await createPost({
|
||||||
channelId: undefined,
|
channelId: undefined,
|
||||||
index: undefined,
|
index: undefined,
|
||||||
createdAt: new Date(note.published),
|
createdAt: new Date(note.published),
|
||||||
mediaIds,
|
mediaIds,
|
||||||
replyId: undefined,
|
|
||||||
repostId: undefined,
|
|
||||||
poll: undefined,
|
poll: undefined,
|
||||||
text: window.document.body.textContent,
|
text: window.document.body.textContent,
|
||||||
textHtml: note.content && createDOMPurify(window).sanitize(note.content),
|
textHtml: note.content && createDOMPurify(window).sanitize(note.content),
|
||||||
|
@ -87,7 +96,7 @@ class Creator {
|
||||||
geo: undefined,
|
geo: undefined,
|
||||||
uri: note.id,
|
uri: note.id,
|
||||||
tags
|
tags
|
||||||
}, null, null, await Promise.all(mentions));
|
}, reply, null, await Promise.all(mentions));
|
||||||
|
|
||||||
const promises = [];
|
const promises = [];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue