From d19899f0fc9e03022a1880c77c15101b5724025c Mon Sep 17 00:00:00 2001 From: Azgaar Date: Wed, 8 Sep 2021 09:55:54 +0300 Subject: [PATCH] change Fropbox clientId --- modules/cloud.js | 134 +++++++++++++++++++++++------------------------ 1 file changed, 66 insertions(+), 68 deletions(-) diff --git a/modules/cloud.js b/modules/cloud.js index 2a7d8e91..08771af0 100644 --- a/modules/cloud.js +++ b/modules/cloud.js @@ -16,126 +16,124 @@ restore(): restore access tokens from storage if possible */ window.Cloud = (function () { - // helpers to use in providers for token handling - const lSKey = x => `auth-${x}` - const setToken = (prov, key) => localStorage.setItem(lSKey(prov), key) - const getToken = prov => localStorage.getItem(lSKey(prov)) + const lSKey = x => `auth-${x}`; + const setToken = (prov, key) => localStorage.setItem(lSKey(prov), key); + const getToken = prov => localStorage.getItem(lSKey(prov)); /**********************************************************/ /* Dropbox provider */ /**********************************************************/ const DBP = { - name: 'dropbox', - clientId: 'sp7tzwm27u2w5ns', + name: "dropbox", + clientId: "pdr9ae64ip0qno4", authWindow: undefined, token: null, // Access token api: null, restore() { - this.token = getToken(this.name) - if (this.token) this.connect(this.token) + this.token = getToken(this.name); + if (this.token) this.connect(this.token); }, async call(name, param) { try { - return await this.api[name](param) + return await this.api[name](param); } catch (e) { - if (e.name !== "DropboxResponseError") throw(e) + if (e.name !== "DropboxResponseError") throw e; // retry with auth - await this.auth() - return await this.api[name](param) + await this.auth(); + return await this.api[name](param); } }, connect(token) { - const clientId = this.clientId - const auth = new Dropbox.DropboxAuth({ clientId }) - auth.setAccessToken(token) - this.api = new Dropbox.Dropbox({ auth }) + const clientId = this.clientId; + const auth = new Dropbox.DropboxAuth({clientId}); + auth.setAccessToken(token); + this.api = new Dropbox.Dropbox({auth}); }, async save(fileName, contents) { - if (!this.api) await this.auth() - const resp = this.call('filesUpload', { path: '/' + fileName, contents }) - console.log("Dropbox response:", resp) - return true + if (!this.api) await this.auth(); + const resp = this.call("filesUpload", {path: "/" + fileName, contents}); + console.log("Dropbox response:", resp); + return true; }, async load(path) { - if (!this.api) await this.auth() - const resp = await this.call('filesDownload', { path }) - const blob = resp.result.fileBlob - if (!blob) throw(new Error('Invalid response from dropbox.')) - return blob + if (!this.api) await this.auth(); + const resp = await this.call("filesDownload", {path}); + const blob = resp.result.fileBlob; + if (!blob) throw new Error("Invalid response from dropbox."); + return blob; }, async list() { - if (!this.api) return null - const resp = await this.call('filesListFolder', { path: '' }) - return resp.result.entries.map(e => ({ name: e.name, path: e.path_lower })) + if (!this.api) return null; + const resp = await this.call("filesListFolder", {path: ""}); + return resp.result.entries.map(e => ({name: e.name, path: e.path_lower})); }, auth() { - const url = window.location.origin + window.location.pathname + 'dropbox.html' - this.authWindow = window.open(url, 'auth', 'width=640,height=480') - // child window expected to call - // window.opener.Cloud.providers.dropbox.setDropBoxToken (see below) - return new Promise((resolve, reject) => { - const watchDog = () => { - this.authWindow.close() - reject(new Error("Timeout. No auth for dropbox.")) - } - setTimeout(watchDog, 120*1000) - window.addEventListener('dropboxauth', e => { - clearTimeout(watchDog) - resolve() - }) - }) + const url = window.location.origin + window.location.pathname + "dropbox.html"; + this.authWindow = window.open(url, "auth", "width=640,height=480"); + // child window expected to call + // window.opener.Cloud.providers.dropbox.setDropBoxToken (see below) + return new Promise((resolve, reject) => { + const watchDog = () => { + this.authWindow.close(); + reject(new Error("Timeout. No auth for dropbox.")); + }; + setTimeout(watchDog, 120 * 1000); + window.addEventListener("dropboxauth", e => { + clearTimeout(watchDog); + resolve(); + }); + }); }, // Callback function for auth window. setDropBoxToken(token) { - console.log('Access token got:', token) - setToken(this.name, token) - this.connect(token) - this.authWindow.close() - window.dispatchEvent(new Event('dropboxauth')) + console.log("Access token got:", token); + setToken(this.name, token); + this.connect(token); + this.authWindow.close(); + window.dispatchEvent(new Event("dropboxauth")); }, async getLink(path) { - if (!this.api) await this.auth() - let resp + if (!this.api) await this.auth(); + let resp; // already exists? - resp = await this.call('sharingListSharedLinks', { path }) - if (resp.result.links.length) - return resp.result.links[0].url + resp = await this.call("sharingListSharedLinks", {path}); + if (resp.result.links.length) return resp.result.links[0].url; // create new - resp = await this.call('sharingCreateSharedLinkWithSettings', { + resp = await this.call("sharingCreateSharedLinkWithSettings", { path, settings: { require_password: false, - audience: 'public', - access: 'viewer', - requested_visibility: 'public', - allow_download: true, + audience: "public", + access: "viewer", + requested_visibility: "public", + allow_download: true } - }) - console.log("dropbox link object:", resp.result) - return resp.result.url - }, - } + }); + console.log("dropbox link object:", resp.result); + return resp.result.url; + } + }; // register providers here: const providers = { - dropbox: DBP, - } + dropbox: DBP + }; // restore all providers at startup - for (const p of Object.values(providers)) p.restore() + for (const p of Object.values(providers)) p.restore(); - return { providers } -})() + return {providers}; +})();