Dropbox OAuth implementation and Cloud framework

This commit is contained in:
Mészáros Gergely 2021-09-07 18:42:56 +02:00
parent abace06175
commit 4f020b846d
6 changed files with 259 additions and 57 deletions

View file

@ -12,16 +12,34 @@ function quickLoad() {
});
}
function loadFromDropbox() {
const options = {
success: function (files) {
const url = files[0].link;
loadMapFromURL(url);
},
linkType: "direct",
extensions: [".map"]
};
Dropbox.choose(options);
async function loadFromDropbox(fileName) {
const map = document.querySelector("#loadFromDropbox select").value;
console.log('loading dropbox map', map);
const blob = await Cloud.providers.dropbox.load(map);
uploadMap(blob);
}
async function createSharableDropboxLink() {
const mapFile = document.querySelector("#loadFromDropbox select").value;
const sharableLink = document.getElementById("sharableLink");
const sharableLinkContainer = document.getElementById("sharableLinkContainer");
let url
try {
url = await Cloud.providers.dropbox.getLink(mapFile);
} catch {
tip("Dropbox API error. Can not create link.", true, "error", 2000);
return
}
const fmg = window.location.href.split("?")[0];
const reallink= `${fmg}?maplink=${url}`;
// voodoo magic required by the yellow god of CORS
const link = reallink.replace('www.dropbox.com/s/', 'dl.dropboxusercontent.com/1/view/')
const shortLink = link.slice(0, 50) + "...";
sharableLinkContainer.style.display = "block";
sharableLink.innerText = shortLink;
sharableLink.setAttribute("href", link);
}
function loadMapPrompt(blob) {