summaryrefslogtreecommitdiff
path: root/src/remote/activitypub
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-07-20 02:40:37 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-07-20 02:40:37 +0900
commitec2b1ec3f0035466585d9cc2a7842e519e14e31a (patch)
tree9a8e7c40e7b068d24b362a72552e456b1adddba7 /src/remote/activitypub
parent4.24.1 (diff)
downloadsharkey-ec2b1ec3f0035466585d9cc2a7842e519e14e31a.tar.gz
sharkey-ec2b1ec3f0035466585d9cc2a7842e519e14e31a.tar.bz2
sharkey-ec2b1ec3f0035466585d9cc2a7842e519e14e31a.zip
#1334
Diffstat (limited to 'src/remote/activitypub')
-rw-r--r--src/remote/activitypub/models/image.ts4
-rw-r--r--src/remote/activitypub/renderer/image.ts5
-rw-r--r--src/remote/activitypub/renderer/person.ts12
3 files changed, 14 insertions, 7 deletions
diff --git a/src/remote/activitypub/models/image.ts b/src/remote/activitypub/models/image.ts
index fb17a7c9e5..8b33187ef5 100644
--- a/src/remote/activitypub/models/image.ts
+++ b/src/remote/activitypub/models/image.ts
@@ -16,7 +16,7 @@ export async function createImage(actor: IRemoteUser, value: any): Promise<IDriv
return null;
}
- const image = await new Resolver().resolve(value);
+ const image = await new Resolver().resolve(value) as any;
if (image.url == null) {
throw new Error('invalid image: url not privided');
@@ -24,7 +24,7 @@ export async function createImage(actor: IRemoteUser, value: any): Promise<IDriv
log(`Creating the Image: ${image.url}`);
- return await uploadFromUrl(image.url, actor, null, image.url);
+ return await uploadFromUrl(image.url, actor, null, image.url, image.sensitive);
}
/**
diff --git a/src/remote/activitypub/renderer/image.ts b/src/remote/activitypub/renderer/image.ts
index cf91ce3a0c..69bddd9188 100644
--- a/src/remote/activitypub/renderer/image.ts
+++ b/src/remote/activitypub/renderer/image.ts
@@ -1,7 +1,8 @@
import config from '../../../config';
import { IDriveFile } from '../../../models/drive-file';
-export default (fileId: IDriveFile['_id']) => ({
+export default (file: IDriveFile) => ({
type: 'Image',
- url: `${config.drive_url}/${fileId}`
+ url: `${config.drive_url}/${file._id}`,
+ sensitive: file.metadata.isSensitive
});
diff --git a/src/remote/activitypub/renderer/person.ts b/src/remote/activitypub/renderer/person.ts
index d4b3f40e41..7d828f97ae 100644
--- a/src/remote/activitypub/renderer/person.ts
+++ b/src/remote/activitypub/renderer/person.ts
@@ -4,10 +4,16 @@ import config from '../../../config';
import { ILocalUser } from '../../../models/user';
import toHtml from '../../../mfm/html';
import parse from '../../../mfm/parse';
+import DriveFile from '../../../models/drive-file';
-export default (user: ILocalUser) => {
+export default async (user: ILocalUser) => {
const id = `${config.url}/users/${user._id}`;
+ const [avatar, banner] = await Promise.all([
+ DriveFile.findOne({ _id: user.avatarId }),
+ DriveFile.findOne({ _id: user.bannerId })
+ ]);
+
return {
type: user.isBot ? 'Service' : 'Person',
id,
@@ -18,8 +24,8 @@ export default (user: ILocalUser) => {
preferredUsername: user.username,
name: user.name,
summary: toHtml(parse(user.description)),
- icon: user.avatarId && renderImage(user.avatarId),
- image: user.bannerId && renderImage(user.bannerId),
+ icon: user.avatarId && renderImage(avatar),
+ image: user.bannerId && renderImage(banner),
manuallyApprovesFollowers: user.isLocked,
publicKey: renderKey(user)
};