summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/models/image.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-17 16:05:50 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-17 16:05:50 +0900
commitaaa167fd5765360631af3b2c3af416e3f2db30e9 (patch)
tree384e0120778bfbab5ff8c2bbcde4bd956b9d6848 /src/remote/activitypub/models/image.ts
parentv4970 (diff)
downloadmisskey-aaa167fd5765360631af3b2c3af416e3f2db30e9.tar.gz
misskey-aaa167fd5765360631af3b2c3af416e3f2db30e9.tar.bz2
misskey-aaa167fd5765360631af3b2c3af416e3f2db30e9.zip
Refactor
Diffstat (limited to 'src/remote/activitypub/models/image.ts')
-rw-r--r--src/remote/activitypub/models/image.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/remote/activitypub/models/image.ts b/src/remote/activitypub/models/image.ts
new file mode 100644
index 0000000000..d7bc5aff2f
--- /dev/null
+++ b/src/remote/activitypub/models/image.ts
@@ -0,0 +1,36 @@
+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 Resolver from '../resolver';
+
+const log = debug('misskey:activitypub');
+
+/**
+ * Imageを作成します。
+ */
+export async function createImage(actor: IRemoteUser, value): Promise<IDriveFile> {
+ const image = await new Resolver().resolve(value);
+
+ if (image.url == null) {
+ throw new Error('invalid image: url not privided');
+ }
+
+ log(`Creating the Image: ${image.url}`);
+
+ return await uploadFromUrl(image.url, actor);
+}
+
+/**
+ * Imageを解決します。
+ *
+ * Misskeyに対象のImageが登録されていればそれを返し、そうでなければ
+ * リモートサーバーからフェッチしてMisskeyに登録しそれを返します。
+ */
+export async function resolveImage(actor: IRemoteUser, value: any): Promise<IDriveFile> {
+ // TODO
+
+ // リモートサーバーからフェッチしてきて登録
+ return await createImage(actor, value);
+}