iceshrimp/src/remote/activitypub/objects/image.ts
2018-04-09 05:14:47 +09:00

37 lines
1.1 KiB
TypeScript

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);
}