40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
import config from "../../../config/index.js";
|
|
export default ((object, note)=>{
|
|
const attributedTo = `${config.url}/users/${note.userId}`;
|
|
const mentions = JSON.parse(note.mentionedRemoteUsers).map((x)=>x.uri);
|
|
let to = [];
|
|
let cc = [];
|
|
if (note.visibility === "public") {
|
|
to = [
|
|
"https://www.w3.org/ns/activitystreams#Public"
|
|
];
|
|
cc = [
|
|
`${attributedTo}/followers`
|
|
];
|
|
} else if (note.visibility === "home") {
|
|
to = [
|
|
`${attributedTo}/followers`
|
|
];
|
|
cc = [
|
|
"https://www.w3.org/ns/activitystreams#Public"
|
|
];
|
|
} else if (note.visibility === "followers") {
|
|
to = [
|
|
`${attributedTo}/followers`
|
|
];
|
|
} else if (note.visibility === "specified") {
|
|
to = mentions;
|
|
} else {
|
|
return null;
|
|
}
|
|
return {
|
|
id: `${config.url}/notes/${note.id}/activity`,
|
|
actor: `${config.url}/users/${note.userId}`,
|
|
type: "Announce",
|
|
published: note.createdAt.toISOString(),
|
|
to,
|
|
cc,
|
|
object
|
|
};
|
|
});
|