aboutsummaryrefslogtreecommitdiff
path: root/src/server/apis
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-09-15 19:28:10 -0400
committerSam Wilkins <samwilkins333@gmail.com>2019-09-15 19:28:10 -0400
commitd7012323e87c21a25c29d89d66a1c54b99c8b458 (patch)
tree8538b1505d5382a0a53a32336c698f8961a34383 /src/server/apis
parent411d6015c7a9f2a3c10bd170e6e584e7c53833f8 (diff)
syncing of images in imported google doc
Diffstat (limited to 'src/server/apis')
-rw-r--r--src/server/apis/google/GooglePhotosUploadUtils.ts56
-rw-r--r--src/server/apis/google/existing_uploads.json1
2 files changed, 37 insertions, 20 deletions
diff --git a/src/server/apis/google/GooglePhotosUploadUtils.ts b/src/server/apis/google/GooglePhotosUploadUtils.ts
index f582cebd2..3ab9ba90f 100644
--- a/src/server/apis/google/GooglePhotosUploadUtils.ts
+++ b/src/server/apis/google/GooglePhotosUploadUtils.ts
@@ -118,28 +118,44 @@ export namespace DownloadUtils {
const generate = (prefix: string, url: string) => `${prefix}upload_${Utils.GenerateGuid()}${path.extname(url).toLowerCase()}`;
const sanitize = (filename: string) => filename.replace(/\s+/g, "_");
- export const UploadImage = async (url: string, filename?: string, prefix = ""): Promise<Opt<UploadInformation>> => {
- const resolved = filename ? sanitize(filename) : generate(prefix, url);
- let extension = path.extname(url) || path.extname(resolved);
+ export interface InspectionResults {
+ isLocal: boolean;
+ stream: any;
+ normalizedUrl: string;
+ contentSize: number;
+ contentType: string;
+ }
+
+ export const InspectImage = async (url: string) => {
+ const { isLocal, stream, normalized: normalizedUrl } = classify(url);
+ const metadata = (await new Promise<any>((resolve, reject) => {
+ request.head(url, async (error, res) => {
+ if (error) {
+ return reject(error);
+ }
+ resolve(res);
+ });
+ })).headers;
+ return {
+ contentSize: parseInt(metadata[size]),
+ contentType: metadata[type],
+ isLocal,
+ stream,
+ normalizedUrl
+ };
+ };
+
+ export const UploadImage = async (metadata: InspectionResults, filename?: string, prefix = ""): Promise<Opt<UploadInformation>> => {
+ const { isLocal, stream, normalizedUrl, contentSize, contentType } = metadata;
+ const resolved = filename ? sanitize(filename) : generate(prefix, normalizedUrl);
+ let extension = path.extname(normalizedUrl) || path.extname(resolved);
extension && (extension = extension.toLowerCase());
let information: UploadInformation = {
mediaPaths: [],
- fileNames: { clean: resolved }
+ fileNames: { clean: resolved },
+ contentSize,
+ contentType,
};
- const { isLocal, stream, normalized } = classify(url);
- url = normalized;
- if (!isLocal) {
- const metadata = (await new Promise<any>((resolve, reject) => {
- request.head(url, async (error, res) => {
- if (error) {
- return reject(error);
- }
- resolve(res);
- });
- })).headers;
- information.contentSize = parseInt(metadata[size]);
- information.contentType = metadata[type];
- }
return new Promise<UploadInformation>(async (resolve, reject) => {
const resizers = [
{ resizer: sharp().rotate(), suffix: "_o" },
@@ -164,7 +180,7 @@ export namespace DownloadUtils {
const filename = resolved.substring(0, resolved.length - extension.length) + suffix + extension;
information.mediaPaths.push(mediaPath = uploadDirectory + filename);
information.fileNames[suffix] = filename;
- stream(url).pipe(resizer.resizer).pipe(fs.createWriteStream(mediaPath))
+ stream(normalizedUrl).pipe(resizer.resizer).pipe(fs.createWriteStream(mediaPath))
.on('close', resolve)
.on('error', reject);
});
@@ -172,7 +188,7 @@ export namespace DownloadUtils {
}
if (!isLocal || nonVisual) {
await new Promise<void>(resolve => {
- stream(url).pipe(fs.createWriteStream(uploadDirectory + resolved)).on('close', resolve);
+ stream(normalizedUrl).pipe(fs.createWriteStream(uploadDirectory + resolved)).on('close', resolve);
});
}
resolve(information);
diff --git a/src/server/apis/google/existing_uploads.json b/src/server/apis/google/existing_uploads.json
new file mode 100644
index 000000000..05c20c33b
--- /dev/null
+++ b/src/server/apis/google/existing_uploads.json
@@ -0,0 +1 @@
+{"23625":{"mediaPaths":["C:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\src\\server\\public\\files\\upload_7e2d5fef-860a-49a8-b9ec-b91f28073180_o.png","C:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\src\\server\\public\\files\\upload_7e2d5fef-860a-49a8-b9ec-b91f28073180_s.png","C:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\src\\server\\public\\files\\upload_7e2d5fef-860a-49a8-b9ec-b91f28073180_m.png","C:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\src\\server\\public\\files\\upload_7e2d5fef-860a-49a8-b9ec-b91f28073180_l.png"],"fileNames":{"clean":"upload_7e2d5fef-860a-49a8-b9ec-b91f28073180.png","_o":"upload_7e2d5fef-860a-49a8-b9ec-b91f28073180_o.png","_s":"upload_7e2d5fef-860a-49a8-b9ec-b91f28073180_s.png","_m":"upload_7e2d5fef-860a-49a8-b9ec-b91f28073180_m.png","_l":"upload_7e2d5fef-860a-49a8-b9ec-b91f28073180_l.png"},"contentSize":23625,"contentType":"image/jpeg"}} \ No newline at end of file