aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/apis/google_docs/GoogleApiClientUtils.ts2
-rw-r--r--src/client/util/RichTextSchema.tsx2
-rw-r--r--src/new_fields/RichTextUtils.ts13
-rw-r--r--src/scraping/buxton/final/BuxtonImporter.ts2
-rw-r--r--src/server/ApiManagers/GooglePhotosManager.ts11
-rw-r--r--src/server/DashUploadUtils.ts4
6 files changed, 16 insertions, 18 deletions
diff --git a/src/client/apis/google_docs/GoogleApiClientUtils.ts b/src/client/apis/google_docs/GoogleApiClientUtils.ts
index d2a79f189..0d44ee8e0 100644
--- a/src/client/apis/google_docs/GoogleApiClientUtils.ts
+++ b/src/client/apis/google_docs/GoogleApiClientUtils.ts
@@ -248,7 +248,7 @@ export namespace GoogleApiClientUtils {
return undefined;
}
requests.push(...options.content.requests);
- const replies: any = await update({ documentId: documentId, requests });
+ const replies: any = await update({ documentId, requests });
if ("errors" in replies) {
console.log("Write operation failed:");
console.log(replies.errors.map((error: any) => error.message));
diff --git a/src/client/util/RichTextSchema.tsx b/src/client/util/RichTextSchema.tsx
index 269a045a0..f12b3632c 100644
--- a/src/client/util/RichTextSchema.tsx
+++ b/src/client/util/RichTextSchema.tsx
@@ -883,7 +883,7 @@ export class DashFieldView {
e.stopPropagation();
if ((e.key === "a" && e.ctrlKey) || (e.key === "a" && e.metaKey)) {
if (window.getSelection) {
- var range = document.createRange();
+ const range = document.createRange();
range.selectNodeContents(self._fieldSpan);
window.getSelection()!.removeAllRanges();
window.getSelection()!.addRange(range);
diff --git a/src/new_fields/RichTextUtils.ts b/src/new_fields/RichTextUtils.ts
index c50f8cc48..016bcc4ca 100644
--- a/src/new_fields/RichTextUtils.ts
+++ b/src/new_fields/RichTextUtils.ts
@@ -1,5 +1,5 @@
import { EditorState, Transaction, TextSelection } from "prosemirror-state";
-import { Node, Fragment, Mark, MarkType } from "prosemirror-model";
+import { Node, Fragment, Mark } from "prosemirror-model";
import { RichTextField } from "./RichTextField";
import { docs_v1 } from "googleapis";
import { GoogleApiClientUtils } from "../client/apis/google_docs/GoogleApiClientUtils";
@@ -17,6 +17,7 @@ import { Id } from "./FieldSymbols";
import { DocumentView } from "../client/views/nodes/DocumentView";
import { AssertionError } from "assert";
import { Networking } from "../client/Network";
+import { extname } from "path";
export namespace RichTextUtils {
@@ -123,9 +124,7 @@ export namespace RichTextUtils {
const objects = Object.keys(inlineObjects).map(objectId => inlineObjects[objectId]);
const mediaItems: MediaItem[] = objects.map(object => {
const embeddedObject = object.inlineObjectProperties!.embeddedObject!;
- const baseUrl = embeddedObject.imageProperties!.contentUri!;
- const filename = `upload_${Utils.GenerateGuid()}.png`;
- return { baseUrl, filename };
+ return { baseUrl: embeddedObject.imageProperties!.contentUri! };
});
const uploads = await Networking.PostToServer("/googlePhotosMediaDownload", { mediaItems });
@@ -136,11 +135,12 @@ export namespace RichTextUtils {
for (let i = 0; i < objects.length; i++) {
const object = objects[i];
- const { fileNames } = uploads[i];
+ const { clientAccessPath } = uploads[i];
const embeddedObject = object.inlineObjectProperties!.embeddedObject!;
const size = embeddedObject.size!;
const width = size.width!.magnitude!;
- const url = Utils.fileUrl(fileNames.clean);
+ const ext = extname(clientAccessPath);
+ const url = Utils.prepend(clientAccessPath.replace(ext, "_m" + ext));
inlineObjectMap.set(object.objectId!, {
title: embeddedObject.title || `Imported Image from ${document.title}`,
@@ -156,7 +156,6 @@ export namespace RichTextUtils {
interface MediaItem {
baseUrl: string;
- filename: string;
}
export const Import = async (documentId: GoogleApiClientUtils.Docs.DocumentId, textNote: Doc): Promise<Opt<GoogleApiClientUtils.Docs.ImportResult>> => {
diff --git a/src/scraping/buxton/final/BuxtonImporter.ts b/src/scraping/buxton/final/BuxtonImporter.ts
index 66d1e761a..6e3c66690 100644
--- a/src/scraping/buxton/final/BuxtonImporter.ts
+++ b/src/scraping/buxton/final/BuxtonImporter.ts
@@ -285,7 +285,7 @@ async function writeImages(zip: any): Promise<string[]> {
continue;
}
- const ext = `.${type}`;
+ const ext = `.${type}`.toLowerCase();
const generatedFileName = `upload_${Utils.GenerateGuid()}${ext}`;
await DashUploadUtils.outputResizedImages(streamImage, imageDir, generatedFileName, ext);
diff --git a/src/server/ApiManagers/GooglePhotosManager.ts b/src/server/ApiManagers/GooglePhotosManager.ts
index 1727cc5a6..3236d1ee2 100644
--- a/src/server/ApiManagers/GooglePhotosManager.ts
+++ b/src/server/ApiManagers/GooglePhotosManager.ts
@@ -21,7 +21,6 @@ interface GooglePhotosUploadFailure {
}
interface MediaItem {
baseUrl: string;
- filename: string;
}
interface NewMediaItem {
description: string;
@@ -83,12 +82,12 @@ export default class GooglePhotosManager extends ApiManager {
method: Method.POST,
subscription: "/googlePhotosMediaDownload",
secureHandler: async ({ req, res }) => {
- const contents: { mediaItems: MediaItem[] } = req.body;
+ const { mediaItems } = req.body as { mediaItems: MediaItem[] };
let failed = 0;
- if (contents) {
+ if (mediaItems) {
const completed: Opt<DashUploadUtils.ImageUploadInformation>[] = [];
- for (const item of contents.mediaItems) {
- const results = await DashUploadUtils.InspectImage(item.baseUrl);
+ for (const { baseUrl } of mediaItems) {
+ const results = await DashUploadUtils.InspectImage(baseUrl);
if (results instanceof Error) {
failed++;
continue;
@@ -96,7 +95,7 @@ export default class GooglePhotosManager extends ApiManager {
const { contentSize, ...attributes } = results;
const found: Opt<DashUploadUtils.ImageUploadInformation> = await Database.Auxiliary.QueryUploadHistory(contentSize);
if (!found) {
- const upload = await DashUploadUtils.UploadInspectedImage({ contentSize, ...attributes }, item.filename, prefix).catch(error => _error(res, downloadError, error));
+ const upload = await DashUploadUtils.UploadInspectedImage({ contentSize, ...attributes }, undefined, prefix, false).catch(error => _error(res, downloadError, error));
if (upload) {
completed.push(upload);
await Database.Auxiliary.LogUpload(upload);
diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts
index 4e6bbaa3f..83a0064e8 100644
--- a/src/server/DashUploadUtils.ts
+++ b/src/server/DashUploadUtils.ts
@@ -223,7 +223,7 @@ export namespace DashUploadUtils {
});
}
- export const UploadInspectedImage = async (metadata: InspectionResults, filename?: string, prefix = ""): Promise<ImageUploadInformation> => {
+ export const UploadInspectedImage = async (metadata: InspectionResults, filename?: string, prefix = "", cleanUp = true): Promise<ImageUploadInformation> => {
const { requestable, source, ...remaining } = metadata;
const extension = `.${remaining.contentType.split("/")[1].toLowerCase()}`;
const resolved = filename || `${prefix}upload_${Utils.GenerateGuid()}${extension}`;
@@ -237,7 +237,7 @@ export namespace DashUploadUtils {
for (const suffix of Object.keys(writtenFiles)) {
information.serverAccessPaths[suffix] = serverPathToFile(Directory.images, writtenFiles[suffix]);
}
- if (isLocal().test(source)) {
+ if (isLocal().test(source) && cleanUp) {
unlinkSync(source);
}
return information;