From 414c600356f361e34dce5db2d98aef90924a923f Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Fri, 4 May 2018 18:32:03 +0900
Subject: [PATCH] =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AEUR?=
 =?UTF-8?q?L=E3=82=92=E4=BF=9D=E5=AD=98=E3=81=99=E3=82=8B=E3=82=88?=
 =?UTF-8?q?=E3=81=86=E3=81=AB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/models/drive-file.ts               | 3 ++-
 src/remote/activitypub/models/image.ts | 2 +-
 src/services/drive/add-file.ts         | 5 +++++
 src/services/drive/upload-from-url.ts  | 2 +-
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/models/drive-file.ts b/src/models/drive-file.ts
index 718e8d0dc6..66be0fb2fc 100644
--- a/src/models/drive-file.ts
+++ b/src/models/drive-file.ts
@@ -28,7 +28,8 @@ export type IMetadata = {
 	_user: any;
 	folderId: mongo.ObjectID;
 	comment: string;
-	uri: string;
+	uri?: string;
+	url?: string;
 	deletedAt?: Date;
 	isExpired?: boolean;
 };
diff --git a/src/remote/activitypub/models/image.ts b/src/remote/activitypub/models/image.ts
index 3f522f9b52..0d5a690c6c 100644
--- a/src/remote/activitypub/models/image.ts
+++ b/src/remote/activitypub/models/image.ts
@@ -24,7 +24,7 @@ export async function createImage(actor: IRemoteUser, value): Promise<IDriveFile
 
 	log(`Creating the Image: ${image.url}`);
 
-	return await uploadFromUrl(image.url, actor);
+	return await uploadFromUrl(image.url, actor, null, image.url);
 }
 
 /**
diff --git a/src/services/drive/add-file.ts b/src/services/drive/add-file.ts
index 1e5b75f125..8b54330787 100644
--- a/src/services/drive/add-file.ts
+++ b/src/services/drive/add-file.ts
@@ -62,6 +62,7 @@ const addFile = async (
 	comment: string = null,
 	folderId: mongodb.ObjectID = null,
 	force: boolean = false,
+	url: string = null,
 	uri: string = null
 ): Promise<IDriveFile> => {
 	log(`registering ${name} (user: ${getAcct(user)}, path: ${path})`);
@@ -296,6 +297,10 @@ const addFile = async (
 		properties: properties
 	} as IMetadata;
 
+	if (url !== null) {
+		metadata.url = url;
+	}
+
 	if (uri !== null) {
 		metadata.uri = uri;
 	}
diff --git a/src/services/drive/upload-from-url.ts b/src/services/drive/upload-from-url.ts
index 08e0397706..ad2620c036 100644
--- a/src/services/drive/upload-from-url.ts
+++ b/src/services/drive/upload-from-url.ts
@@ -43,7 +43,7 @@ export default async (url, user, folderId = null, uri = null): Promise<IDriveFil
 	let error;
 
 	try {
-		driveFile = await create(user, path, name, null, folderId, false, uri);
+		driveFile = await create(user, path, name, null, folderId, false, url, uri);
 		log(`created: ${driveFile._id}`);
 	} catch (e) {
 		error = e;