Fix Announce Activity

This commit is contained in:
mei23 2018-08-17 06:40:08 +09:00
parent 7a8d252f63
commit a89c206572
3 changed files with 20 additions and 8 deletions

View file

@ -40,11 +40,13 @@ export default async function(resolver: Resolver, actor: IRemoteUser, activity:
if (!note.to.includes('https://www.w3.org/ns/activitystreams#Public')) { if (!note.to.includes('https://www.w3.org/ns/activitystreams#Public')) {
if (note.cc.includes('https://www.w3.org/ns/activitystreams#Public')) { if (note.cc.includes('https://www.w3.org/ns/activitystreams#Public')) {
visibility = 'home'; visibility = 'home';
} else if (note.to.includes(`${actor.uri}/followers`)) { // TODO: person.followerと照合するべき
visibility = 'followers';
} else { } else {
visibility = 'specified'; visibility = 'specified';
visibleUsers = await Promise.all(note.to.map(uri => resolvePerson(uri))); visibleUsers = await Promise.all(note.to.map(uri => resolvePerson(uri)));
} }
} if (activity.cc.length == 0) visibility = 'followers'; }
//#endergion //#endergion
await post(actor, { await post(actor, {

View file

@ -1,5 +1,15 @@
export default (id: string, object: any) => ({ import config from '../../../config';
type: 'Announce', import { INote } from '../../../models/note';
id,
object export default (object: any, note: INote) => {
}); const attributedTo = `${config.url}/users/${note.userId}`;
return {
id: `${config.url}/notes/${note._id}`,
type: 'Announce',
published: note.createdAt.toISOString(),
to: ['https://www.w3.org/ns/activitystreams#Public'],
cc: [attributedTo, `${attributedTo}/followers`],
object
};
};

View file

@ -235,8 +235,8 @@ export default async (user: IUser, data: Option, silent = false) => new Promise<
async function renderActivity(data: Option, note: INote) { async function renderActivity(data: Option, note: INote) {
const content = data.renote && data.text == null const content = data.renote && data.text == null
? renderAnnounce(note._id.toHexString(), data.renote.uri ? data.renote.uri : await renderNote(data.renote)) ? renderAnnounce(data.renote.uri ? data.renote.uri : await renderNote(data.renote), note)
: renderCreate(await renderNote(note)); : renderCreate(await renderNote(note));
return packAp(content); return packAp(content);
} }