diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-07-20 02:40:37 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-07-20 02:40:37 +0900 |
| commit | ec2b1ec3f0035466585d9cc2a7842e519e14e31a (patch) | |
| tree | 9a8e7c40e7b068d24b362a72552e456b1adddba7 /src/remote/activitypub | |
| parent | 4.24.1 (diff) | |
| download | sharkey-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.ts | 4 | ||||
| -rw-r--r-- | src/remote/activitypub/renderer/image.ts | 5 | ||||
| -rw-r--r-- | src/remote/activitypub/renderer/person.ts | 12 |
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) }; |