import { uploadFromUrl } from "../../../../../services/drive/upload-from-url.js"; import define from "../../../define.js"; import { DriveFiles } from "../../../../../models/index.js"; import { publishMainStream } from "../../../../../services/stream.js"; import { HOUR } from "../../../../../const.js"; export const meta = { tags: [ "drive" ], limit: { duration: HOUR, max: 60 }, description: "Request the server to download a new drive file from the specified URL.", requireCredential: true, kind: "write:drive" }; export const paramDef = { type: "object", properties: { url: { type: "string" }, folderId: { type: "string", format: "misskey:id", nullable: true, default: null }, isSensitive: { type: "boolean", default: false }, comment: { type: "string", nullable: true, maxLength: 512, default: null }, marker: { type: "string", nullable: true, default: null }, force: { type: "boolean", default: false } }, required: [ "url" ] }; export default define(meta, paramDef, async (ps, user)=>{ uploadFromUrl({ url: ps.url, user, folderId: ps.folderId, sensitive: ps.isSensitive, force: ps.force, comment: ps.comment }).then((file)=>{ DriveFiles.pack(file, { self: true }).then((packedFile)=>{ publishMainStream(user.id, "urlUploadFinished", { marker: ps.marker, file: packedFile }); }); }); });