aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-09-07 23:15:32 -0400
committerSam Wilkins <samwilkins333@gmail.com>2019-09-07 23:15:32 -0400
commitc24f5f29dff8dd22f1d4029a2722ee4d1a725aad (patch)
tree0834eb51c28a0ccc167626308318099b48650f52 /src
parent32cd51e2bcc0a8cf498c0b31a5ead60802f672de (diff)
collection of search
Diffstat (limited to 'src')
-rw-r--r--src/client/apis/google_docs/GooglePhotosClientUtils.ts14
-rw-r--r--src/client/views/MainView.tsx7
-rw-r--r--src/server/apis/google/GooglePhotosUploadUtils.ts10
-rw-r--r--src/server/credentials/google_docs_token.json2
-rw-r--r--src/server/index.ts10
5 files changed, 21 insertions, 22 deletions
diff --git a/src/client/apis/google_docs/GooglePhotosClientUtils.ts b/src/client/apis/google_docs/GooglePhotosClientUtils.ts
index e8daf3dd4..bb5d23971 100644
--- a/src/client/apis/google_docs/GooglePhotosClientUtils.ts
+++ b/src/client/apis/google_docs/GooglePhotosClientUtils.ts
@@ -10,6 +10,7 @@ import { RichTextField } from "../../../new_fields/RichTextField";
import { RichTextUtils } from "../../../new_fields/RichTextUtils";
import { EditorState } from "prosemirror-state";
import { FormattedTextBox } from "../../views/nodes/FormattedTextBox";
+import { Docs } from "../../documents/Documents";
export namespace GooglePhotosClientUtils {
@@ -130,14 +131,13 @@ export namespace GooglePhotosClientUtils {
filters.setMediaTypeFilter(new photos.MediaTypeFilter(options.type || MediaType.ALL_MEDIA));
- return new Promise<any>((resolve, reject) => {
+ return new Promise<Doc>(resolve => {
photos.mediaItems.search(filters, options.pageSize || 20).then(async (response: SearchResponse) => {
- if (!response) {
- return reject();
- }
- let filenames = await PostToServer(RouteStore.googlePhotosMediaDownload, response);
- console.log(filenames);
- resolve(filenames);
+ response && resolve(Docs.Create.StackingDocument((await PostToServer(RouteStore.googlePhotosMediaDownload, response)).map((download: any) => {
+ let document = Docs.Create.ImageDocument(Utils.prepend(`/files/${download.fileName}`));
+ document.contentSize = download.contentSize;
+ return document;
+ }), { width: 500, height: 500 }));
});
});
};
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx
index ee58c684a..b72df3715 100644
--- a/src/client/views/MainView.tsx
+++ b/src/client/views/MainView.tsx
@@ -131,8 +131,6 @@ export class MainView extends React.Component {
window.addEventListener("keydown", KeyManager.Instance.handle);
// this.executeGooglePhotosRoutine();
- const imageTag = GooglePhotosClientUtils.ContentCategories;
- GooglePhotosClientUtils.Search({ included: [imageTag.ANIMALS] });
reaction(() => {
let workspaces = CurrentUserUtils.UserDocument.workspaces;
@@ -472,12 +470,15 @@ export class MainView extends React.Component {
// let youtubeurl = "https://www.youtube.com/embed/TqcApsGRzWw";
// let addYoutubeSearcher = action(() => Docs.Create.YoutubeDocument(youtubeurl, { width: 600, height: 600, title: "youtube search" }));
- let btns: [React.RefObject<HTMLDivElement>, IconName, string, () => Doc][] = [
+ let googlePhotosSearch = () => GooglePhotosClientUtils.Search({ included: [GooglePhotosClientUtils.ContentCategories.ANIMALS] });
+
+ let btns: [React.RefObject<HTMLDivElement>, IconName, string, () => Doc | Promise<Doc>][] = [
[React.createRef<HTMLDivElement>(), "object-group", "Add Collection", addColNode],
[React.createRef<HTMLDivElement>(), "tv", "Add Presentation Trail", addPresNode],
[React.createRef<HTMLDivElement>(), "globe-asia", "Add Website", addWebNode],
[React.createRef<HTMLDivElement>(), "bolt", "Add Button", addButtonDocument],
[React.createRef<HTMLDivElement>(), "file", "Add Document Dragger", addDragboxNode],
+ [React.createRef<HTMLDivElement>(), "object-group", "Test Google Photos Search", googlePhotosSearch],
[React.createRef<HTMLDivElement>(), "cloud-upload-alt", "Import Directory", addImportCollectionNode], //remove at some point in favor of addImportCollectionNode
//[React.createRef<HTMLDivElement>(), "play", "Add Youtube Searcher", addYoutubeSearcher],
];
diff --git a/src/server/apis/google/GooglePhotosUploadUtils.ts b/src/server/apis/google/GooglePhotosUploadUtils.ts
index 032bc2a2d..9b3e68761 100644
--- a/src/server/apis/google/GooglePhotosUploadUtils.ts
+++ b/src/server/apis/google/GooglePhotosUploadUtils.ts
@@ -78,8 +78,8 @@ export namespace GooglePhotosUploadUtils {
export namespace IOUtils {
- export const Download = async (url: string, filename?: string): Promise<Opt<DownloadInformation>> => {
- const resolved = filename || `upload_${Utils.GenerateGuid()}${path.extname(url).toLowerCase()}`;
+ export const Download = async (url: string, filename?: string, prefix = ""): Promise<Opt<DownloadInformation>> => {
+ const resolved = filename || `${prefix}upload_${Utils.GenerateGuid()}${path.extname(url).toLowerCase()}`;
const mediaPath = Paths.uploadDirectory + resolved;
return new Promise<DownloadInformation>((resolve, reject) => {
request.head(url, (error, res) => {
@@ -87,10 +87,10 @@ export namespace GooglePhotosUploadUtils {
return reject(error);
}
const information: DownloadInformation = {
- mediaPath,
- contentType: res.headers['content-type'],
+ fileName: resolved,
contentSize: res.headers['content-length'],
- fileName: resolved
+ contentType: res.headers['content-type'],
+ mediaPath
};
request(url).pipe(fs.createWriteStream(mediaPath)).on('close', () => resolve(information));
});
diff --git a/src/server/credentials/google_docs_token.json b/src/server/credentials/google_docs_token.json
index 88838e18a..a1c23ea35 100644
--- a/src/server/credentials/google_docs_token.json
+++ b/src/server/credentials/google_docs_token.json
@@ -1 +1 @@
-{"access_token":"ya29.Glx8B266dydsOIEYhedUZYQ8sIsR9utSSxCBUex0O85zYrujZCSTbjVhrXF3Y4q41mLFghLwspgW-1w6zqnGnMtkZhuDGpBGArIwLZsJDyhUugEu3xvh7gY78WfePA","refresh_token":"1/HTv_xFHszu2Nf3iiFrUTaeKzC_Vp2-6bpIB06xW_WHI","scope":"https://www.googleapis.com/auth/presentations.readonly https://www.googleapis.com/auth/documents.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/documents https://www.googleapis.com/auth/photoslibrary https://www.googleapis.com/auth/photoslibrary.appendonly https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/presentations https://www.googleapis.com/auth/photoslibrary.sharing","token_type":"Bearer","expiry_date":1567890805451} \ No newline at end of file
+{"access_token":"ya29.Glx9B3Fumh3qHpgasQvHNNrwNXtmTVWJR9XckFsnUjOswDOO91ccF3FhD4ko7Z-3rvxEljpP1Qj5BgNq305pt-pgIquoLPWYiaEtinHNF7IXGPz4s4raqJWEJPJxow","refresh_token":"1/HTv_xFHszu2Nf3iiFrUTaeKzC_Vp2-6bpIB06xW_WHI","scope":"https://www.googleapis.com/auth/presentations.readonly https://www.googleapis.com/auth/documents.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/documents https://www.googleapis.com/auth/photoslibrary https://www.googleapis.com/auth/photoslibrary.appendonly https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/presentations https://www.googleapis.com/auth/photoslibrary.sharing","token_type":"Bearer","expiry_date":1567913435149} \ No newline at end of file
diff --git a/src/server/index.ts b/src/server/index.ts
index aadadb11a..49010e7e2 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -848,18 +848,16 @@ app.post(RouteStore.googlePhotosMediaUpload, async (req, res) => {
);
});
+const prefix = "google_photos_";
app.post(RouteStore.googlePhotosMediaDownload, async (req, res) => {
const contents = req.body;
if (!contents) {
return res.send(undefined);
}
await GooglePhotosUploadUtils.initialize({ uploadDirectory, credentialsPath, tokenPath });
- let bundles: GooglePhotosUploadUtils.DownloadInformation[] = [];
- await Promise.all(contents.mediaItems.forEach(async (item: any) => {
- const information = await GooglePhotosUploadUtils.IOUtils.Download(item.baseUrl, item.filename);
- information && bundles.push(information);
- }));
- res.send(bundles);
+ res.send(await Promise.all(contents.mediaItems.map((item: any) =>
+ GooglePhotosUploadUtils.IOUtils.Download(item.baseUrl, undefined, prefix)))
+ );
});
const suffixMap: { [type: string]: (string | [string, string | ((json: any) => any)]) } = {