mirror of
https://activitypub.software/TransFem-org/Sharkey
synced 2024-11-23 06:25:14 +00:00
wip
This commit is contained in:
parent
5f8ab58446
commit
30bd467b71
2 changed files with 24 additions and 22 deletions
|
@ -31,7 +31,7 @@ export default async (user: IUser, content: {
|
|||
visibility?: string;
|
||||
uri?: string;
|
||||
app?: IApp;
|
||||
}) => new Promise<IPost>(async (res, rej) => {
|
||||
}, silent = false) => new Promise<IPost>(async (res, rej) => {
|
||||
if (content.createdAt == null) content.createdAt = new Date();
|
||||
if (content.visibility == null) content.visibility = 'public';
|
||||
|
||||
|
@ -120,26 +120,28 @@ export default async (user: IUser, content: {
|
|||
_id: false
|
||||
});
|
||||
|
||||
const note = await renderNote(user, post);
|
||||
const content = renderCreate(note);
|
||||
content['@context'] = context;
|
||||
if (!silent) {
|
||||
const note = await renderNote(user, post);
|
||||
const content = renderCreate(note);
|
||||
content['@context'] = context;
|
||||
|
||||
Promise.all(followers.map(({ follower }) => {
|
||||
if (isLocalUser(follower)) {
|
||||
// Publish event to followers stream
|
||||
stream(follower._id, 'post', postObj);
|
||||
} else {
|
||||
// フォロワーがリモートユーザーかつ投稿者がローカルユーザーなら投稿を配信
|
||||
if (isLocalUser(user)) {
|
||||
createHttp({
|
||||
type: 'deliver',
|
||||
user,
|
||||
content,
|
||||
to: follower.account.inbox
|
||||
}).save();
|
||||
Promise.all(followers.map(({ follower }) => {
|
||||
if (isLocalUser(follower)) {
|
||||
// Publish event to followers stream
|
||||
stream(follower._id, 'post', postObj);
|
||||
} else {
|
||||
// フォロワーがリモートユーザーかつ投稿者がローカルユーザーなら投稿を配信
|
||||
if (isLocalUser(user)) {
|
||||
createHttp({
|
||||
type: 'deliver',
|
||||
user,
|
||||
content,
|
||||
to: follower.account.inbox
|
||||
}).save();
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
// チャンネルへの投稿
|
||||
|
|
|
@ -58,7 +58,7 @@ async function createImage(resolver: Resolver, actor: IRemoteUser, image) {
|
|||
return await uploadFromUrl(image.url, actor);
|
||||
}
|
||||
|
||||
async function createNote(resolver: Resolver, actor: IRemoteUser, note) {
|
||||
async function createNote(resolver: Resolver, actor: IRemoteUser, note, silent = false) {
|
||||
if (
|
||||
('attributedTo' in note && actor.account.uri !== note.attributedTo) ||
|
||||
typeof note.id !== 'string'
|
||||
|
@ -86,7 +86,7 @@ async function createNote(resolver: Resolver, actor: IRemoteUser, note) {
|
|||
const inReplyTo = await resolver.resolve(note.inReplyTo) as any;
|
||||
const actor = await resolvePerson(inReplyTo.attributedTo);
|
||||
if (isRemoteUser(actor)) {
|
||||
reply = await createNote(resolver, actor, inReplyTo);
|
||||
reply = await createNote(resolver, actor, inReplyTo, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -102,5 +102,5 @@ async function createNote(resolver: Resolver, actor: IRemoteUser, note) {
|
|||
viaMobile: false,
|
||||
geo: undefined,
|
||||
uri: note.id
|
||||
});
|
||||
}, silent);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue