summaryrefslogtreecommitdiff
path: root/src/remote
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-10-13 17:57:40 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-10-13 17:57:40 +0900
commita7237d157a353eddb41a0f2cbc6c1719cec31d50 (patch)
tree153d802416fe74013705c42169b37b7b04d9fa11 /src/remote
parent10.12.0 (diff)
downloadmisskey-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.ts19
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;
}
/**