mirror of
https://github.com/HeyPuter/puter.git
synced 2026-05-05 14:40:10 -05:00
dev: add file output mode for convert
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
const { HLWrite } = require("../../filesystem/hl_operations/hl_write");
|
||||
const { LLRead } = require("../../filesystem/ll_operations/ll_read");
|
||||
const BaseService = require("../../services/BaseService");
|
||||
const { TypedValue } = require("../../services/drivers/meta/Runtime");
|
||||
@@ -27,7 +28,15 @@ class ConvertAPIService extends BaseService {
|
||||
},
|
||||
source: {
|
||||
type: 'file',
|
||||
required: true,
|
||||
},
|
||||
|
||||
// File output mode
|
||||
dest: {
|
||||
type: 'file',
|
||||
},
|
||||
overwrite: { type: 'flag' },
|
||||
dedupe_name: { type: 'flag' },
|
||||
},
|
||||
result_choices: [
|
||||
{
|
||||
@@ -52,7 +61,13 @@ class ConvertAPIService extends BaseService {
|
||||
|
||||
static IMPLEMENTS = {
|
||||
['convert-files']: {
|
||||
async convert ({ from, to, source }) {
|
||||
async convert ({
|
||||
// Require parameters
|
||||
from, to, source,
|
||||
|
||||
// File Output Mode
|
||||
dest, overwrite, dedupe_name,
|
||||
}) {
|
||||
const convertapi = this.convertapi;
|
||||
const axios = this.require('axios');
|
||||
|
||||
@@ -78,6 +93,22 @@ class ConvertAPIService extends BaseService {
|
||||
responseType: 'stream',
|
||||
});
|
||||
|
||||
if ( dest !== undefined ) {
|
||||
const hl_write = new HLWrite();
|
||||
return await hl_write.run({
|
||||
destination_or_parent: await dest.get('fs-node'),
|
||||
fallback_name: fileInfo.FileName,
|
||||
overwrite,
|
||||
dedupe_name,
|
||||
file: {
|
||||
originalname: fileInfo.FileName,
|
||||
stream: downloadResponse.data,
|
||||
size: fileInfo.FileSize,
|
||||
},
|
||||
actor: Context.get('actor'),
|
||||
});
|
||||
}
|
||||
|
||||
return new TypedValue({
|
||||
$: 'stream',
|
||||
content_type: mime.contentType(fileInfo.FileName),
|
||||
|
||||
@@ -226,6 +226,8 @@ class File extends BaseType {
|
||||
* @throws {APIError} If input format is invalid
|
||||
*/
|
||||
async consolidate (ctx, input, { arg_name }) {
|
||||
if ( input === undefined ) return undefined;
|
||||
|
||||
if ( input instanceof FileFacade ) {
|
||||
return input;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user