import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; const ms = require('ms'); import { pack } from '../../../../../models/drive-file'; import uploadFromUrl from '../../../../../services/drive/upload-from-url'; import define from '../../../define'; export const meta = { desc: { 'ja-JP': 'ドライブに指定されたURLに存在するファイルをアップロードします。' }, limit: { duration: ms('1hour'), max: 60 }, requireCredential: true, kind: 'drive-write', params: { url: { // TODO: Validate this url validator: $.str, }, folderId: { validator: $.type(ID).optional.nullable, default: null as any, transform: transform }, isSensitive: { validator: $.bool.optional, default: false, desc: { 'ja-JP': 'このメディアが「閲覧注意」(NSFW)かどうか', 'en-US': 'Whether this media is NSFW' } }, force: { validator: $.bool.optional, default: false, desc: { 'ja-JP': 'true にすると、同じハッシュを持つファイルが既にアップロードされていても強制的にファイルを作成します。', } } } }; export default define(meta, (ps, user) => new Promise(async (res, rej) => { res(pack(await uploadFromUrl(ps.url, user, ps.folderId, null, ps.isSensitive, ps.force))); }));