aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/ApiManagers/UploadManager.ts14
-rw-r--r--src/server/DashUploadUtils.ts19
-rw-r--r--src/server/SharedMediaTypes.ts1
3 files changed, 29 insertions, 5 deletions
diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts
index 50a759c9d..42e33ece0 100644
--- a/src/server/ApiManagers/UploadManager.ts
+++ b/src/server/ApiManagers/UploadManager.ts
@@ -19,7 +19,8 @@ export enum Directory {
videos = "videos",
pdfs = "pdfs",
text = "text",
- pdf_thumbnails = "pdf_thumbnails"
+ pdf_thumbnails = "pdf_thumbnails",
+ audio = "audio"
}
export function serverPathToFile(directory: Directory, filename: string) {
@@ -61,9 +62,18 @@ export default class UploadManager extends ApiManager {
});
register({
+ method: Method.GET,
+ subscription: "/hello",
+ secureHandler: ({ req, res }) => {
+ res.send("<h1>world!</h1>");
+ }
+ });
+
+ register({
method: Method.POST,
subscription: "/uploadRemoteImage",
secureHandler: async ({ req, res }) => {
+
const { sources } = req.body;
if (Array.isArray(sources)) {
const results = await Promise.all(sources.map(source => DashUploadUtils.UploadImage(source)));
@@ -77,6 +87,7 @@ export default class UploadManager extends ApiManager {
method: Method.POST,
subscription: "/uploadDoc",
secureHandler: ({ req, res }) => {
+
const form = new formidable.IncomingForm();
form.keepExtensions = true;
// let path = req.body.path;
@@ -181,6 +192,7 @@ export default class UploadManager extends ApiManager {
method: Method.POST,
subscription: "/inspectImage",
secureHandler: async ({ req, res }) => {
+
const { source } = req.body;
if (typeof source === "string") {
return res.send(await DashUploadUtils.InspectImage(source));
diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts
index cc3dd75a4..cf78af60a 100644
--- a/src/server/DashUploadUtils.ts
+++ b/src/server/DashUploadUtils.ts
@@ -53,7 +53,7 @@ export namespace DashUploadUtils {
const size = "content-length";
const type = "content-type";
- const { imageFormats, videoFormats, applicationFormats } = AcceptibleMedia;
+ const { imageFormats, videoFormats, applicationFormats, audioFormats } = AcceptibleMedia;
export async function upload(file: File): Promise<Upload.FileResponse> {
const { type, path, name } = file;
@@ -76,14 +76,22 @@ export namespace DashUploadUtils {
if (applicationFormats.includes(format)) {
return UploadPdf(file);
}
- default: // "blob":
- return MoveParsedFile(file, Directory.videos);
+ case "audio":
+ if (audioFormats.includes(format)) {
+ return MoveParsedFile(file, Directory.audio);
+ }
}
console.log(red(`Ignoring unsupported file (${name}) with upload type (${type}).`));
return { source: file, result: new Error(`Could not upload unsupported file (${name}) with upload type (${type}).`) };
}
+ async function UploadAudio(file: File) {
+ const { path: sourcePath } = file;
+
+ return MoveParsedFile(file, Directory.audio);
+ }
+
async function UploadPdf(file: File) {
const { path: sourcePath } = file;
const dataBuffer = readFileSync(sourcePath);
@@ -94,6 +102,7 @@ export namespace DashUploadUtils {
const writeStream = createWriteStream(serverPathToFile(Directory.text, textFilename));
writeStream.write(result.text, error => error ? reject(error) : resolve());
});
+ console.log(MoveParsedFile(file, Directory.pdfs));
return MoveParsedFile(file, Directory.pdfs);
}
@@ -197,8 +206,10 @@ export namespace DashUploadUtils {
accessPaths: {
agnostic: getAccessPaths(destination, name)
}
+
}
- });
+ }
+ );
});
});
}
diff --git a/src/server/SharedMediaTypes.ts b/src/server/SharedMediaTypes.ts
index 185e787cc..3d3683912 100644
--- a/src/server/SharedMediaTypes.ts
+++ b/src/server/SharedMediaTypes.ts
@@ -10,6 +10,7 @@ export namespace AcceptibleMedia {
export const imageFormats = [...pngs, ...jpgs, ...gifs, ...webps, ...tiffs];
export const videoFormats = [".mov", ".mp4"];
export const applicationFormats = [".pdf"];
+ export const audioFormats = [".wav", ".mp3", ".flac", ".au", ".aiff", ".m4a", ".webm;codecs=opus"];
}
export namespace Upload {