diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-10-13 17:57:40 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-10-13 17:57:40 +0900 |
| commit | a7237d157a353eddb41a0f2cbc6c1719cec31d50 (patch) | |
| tree | 153d802416fe74013705c42169b37b7b04d9fa11 /src/remote | |
| parent | 10.12.0 (diff) | |
| download | misskey-a7237d157a353eddb41a0f2cbc6c1719cec31d50.tar.gz misskey-a7237d157a353eddb41a0f2cbc6c1719cec31d50.tar.bz2 misskey-a7237d157a353eddb41a0f2cbc6c1719cec31d50.zip | |
Resolve #2600
Diffstat (limited to 'src/remote')
| -rw-r--r-- | src/remote/activitypub/models/image.ts | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/remote/activitypub/models/image.ts b/src/remote/activitypub/models/image.ts index 8b33187ef5..f1132014c7 100644 --- a/src/remote/activitypub/models/image.ts +++ b/src/remote/activitypub/models/image.ts @@ -2,7 +2,7 @@ import * as debug from 'debug'; import uploadFromUrl from '../../../services/drive/upload-from-url'; import { IRemoteUser } from '../../../models/user'; -import { IDriveFile } from '../../../models/drive-file'; +import DriveFile, { IDriveFile } from '../../../models/drive-file'; import Resolver from '../resolver'; const log = debug('misskey:activitypub'); @@ -24,7 +24,22 @@ 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, image.sensitive); + let file = await uploadFromUrl(image.url, actor, null, image.url, image.sensitive); + + // URLが異なっている場合、同じ画像が以前に異なるURLで登録されていたということなので、 + // URLを更新する + if (file.metadata.url !== image.url) { + file = await DriveFile.findOneAndUpdate({ _id: file._id }, { + $set: { + 'metadata.url': image.url, + 'metadata.uri': image.url + } + }, { + returnNewDocument: true + }); + } + + return file; } /** |