wip
This commit is contained in:
parent
ed48349e39
commit
91ad9e4c41
1 changed files with 25 additions and 17 deletions
|
@ -112,6 +112,10 @@ export default async (user: IUser, data: Option, silent = false) => new Promise<
|
||||||
saveReply(data.reply, note);
|
saveReply(data.reply, note);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.renote) {
|
||||||
|
incRenoteCount(data.renote);
|
||||||
|
}
|
||||||
|
|
||||||
if (isQuote(note)) {
|
if (isQuote(note)) {
|
||||||
saveQuote(data.renote, note);
|
saveQuote(data.renote, note);
|
||||||
}
|
}
|
||||||
|
@ -119,25 +123,16 @@ export default async (user: IUser, data: Option, silent = false) => new Promise<
|
||||||
// Pack the note
|
// Pack the note
|
||||||
const noteObj = await pack(note);
|
const noteObj = await pack(note);
|
||||||
|
|
||||||
const noteActivity = await (async () => {
|
|
||||||
const content = data.renote && data.text == null
|
|
||||||
? renderAnnounce(data.renote.uri ? data.renote.uri : await renderNote(data.renote))
|
|
||||||
: renderCreate(await renderNote(note));
|
|
||||||
return packAp(content);
|
|
||||||
})();
|
|
||||||
|
|
||||||
const nm = new NotificationManager(user, note);
|
const nm = new NotificationManager(user, note);
|
||||||
|
|
||||||
createMentionedEvents(mentionedUsers, noteObj, nm);
|
createMentionedEvents(mentionedUsers, noteObj, nm);
|
||||||
|
|
||||||
|
const noteActivity = await renderActivity(data, note);
|
||||||
|
|
||||||
if (isLocalUser(user)) {
|
if (isLocalUser(user)) {
|
||||||
deliverNoteToMentionedRemoteUsers(mentionedUsers, user, noteActivity);
|
deliverNoteToMentionedRemoteUsers(mentionedUsers, user, noteActivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!silent) {
|
|
||||||
publish(user, note, noteObj, data.reply, data.renote, data.visibleUsers, noteActivity);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If has in reply to note
|
// If has in reply to note
|
||||||
if (data.reply) {
|
if (data.reply) {
|
||||||
// Fetch watchers
|
// Fetch watchers
|
||||||
|
@ -176,19 +171,32 @@ export default async (user: IUser, data: Option, silent = false) => new Promise<
|
||||||
event(data.renote.userId, 'renote', noteObj);
|
event(data.renote.userId, 'renote', noteObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Update renoteee status
|
if (!silent) {
|
||||||
Note.update({ _id: data.renote._id }, {
|
publish(user, note, noteObj, data.reply, data.renote, data.visibleUsers, noteActivity);
|
||||||
$inc: {
|
|
||||||
renoteCount: 1
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register to search database
|
// Register to search database
|
||||||
index(note);
|
index(note);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
async function renderActivity(data: Option, note: INote) {
|
||||||
|
const content = data.renote && data.text == null
|
||||||
|
? renderAnnounce(data.renote.uri ? data.renote.uri : await renderNote(data.renote))
|
||||||
|
: renderCreate(await renderNote(note));
|
||||||
|
|
||||||
|
return packAp(content);
|
||||||
|
}
|
||||||
|
|
||||||
|
function incRenoteCount(renote: INote) {
|
||||||
|
Note.update({ _id: renote._id }, {
|
||||||
|
$inc: {
|
||||||
|
renoteCount: 1
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async function publish(user: IUser, note: INote, noteObj: any, reply: INote, renote: INote, visibleUsers: IUser[], noteActivity: any) {
|
async function publish(user: IUser, note: INote, noteObj: any, reply: INote, renote: INote, visibleUsers: IUser[], noteActivity: any) {
|
||||||
if (isLocalUser(user)) {
|
if (isLocalUser(user)) {
|
||||||
// 投稿がリプライかつ投稿者がローカルユーザーかつリプライ先の投稿の投稿者がリモートユーザーなら配送
|
// 投稿がリプライかつ投稿者がローカルユーザーかつリプライ先の投稿の投稿者がリモートユーザーなら配送
|
||||||
|
|
Loading…
Reference in a new issue