Skip to content
This repository was archived by the owner on Mar 17, 2019. It is now read-only.

Commit c0efde7

Browse files
committed
https://github.com/binjospookie/--shots/issues/24
1 parent 32f8576 commit c0efde7

1 file changed

Lines changed: 77 additions & 1 deletion

File tree

‎scripts/renderer.js‎

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1344,6 +1344,82 @@ ipc.on('freshImgurToken', (event, data) => {
13441344
localStorage.setItem('imgurToken', token);
13451345
});
13461346

1347+
ipc.on('saveImgur', (event) => {
1348+
isOnline((err, status) => {
1349+
if (status !== true) {
1350+
popUp(popupWindow, popupText, `You're offline now. Try again later.`);
1351+
} });
1352+
1353+
const time = new Date();
1354+
1355+
let imToken = localStorage.getItem('imgurToken');
1356+
hideControls(activeShape, stage);
1357+
activeShape = undefined;
1358+
setDefaultSceneState();
1359+
1360+
if (imToken === null || imToken === undefined) {
1361+
popUp(popupWindow, popupText, 'Sign in to Imgur (Sign in to > Imgur)');
1362+
return;
1363+
}
1364+
1365+
loader.style.transform = `scale(${1 / areaZoom})`;
1366+
loader.classList.add('show');
1367+
loaderText.textContent = 'In process';
1368+
1369+
let imageSringData = workArea.toDataURL('', 'image/png');
1370+
//Convert it to an arraybuffer
1371+
let timestamp = new Date().getTime();
1372+
let difference;
1373+
const imgUrl = "http://i.imgur.com/l5OqYoZ.jpg";
1374+
let xhr = new XMLHttpRequest();
1375+
let pathToServer = 'https://api.imgur.com/3/upload';
1376+
1377+
let imageData = imageSringData.replace('data:image/png;base64,', '');
1378+
1379+
xhr.open('POST', pathToServer, true);
1380+
xhr.setRequestHeader("Authorization", "Bearer " + imToken);
1381+
xhr.setRequestHeader('Content-Type', 'json');
1382+
let sendingData = {
1383+
image: imageData,
1384+
type: 'base64'
1385+
};
1386+
xhr.send(JSON.stringify(sendingData));
1387+
xhr.onload = () => {
1388+
let resp = JSON.parse(xhr.responseText);
1389+
switch (resp.status) {
1390+
case 500:
1391+
difference = Math.abs(new Date() - time);
1392+
hideLoader(difference, 'Server error😱', loaderText);
1393+
break;
1394+
1395+
case 400:
1396+
difference = Math.abs(new Date() - time);
1397+
hideLoader(difference, 'An impossible request 😱', loaderText);
1398+
break;
1399+
1400+
case 401:
1401+
difference = Math.abs(new Date() - time);
1402+
hideLoader(difference, 'Auth error 😱', loaderText);
1403+
break;
1404+
1405+
case 200:
1406+
if (xhr) {
1407+
let link = resp.data.link;
1408+
clipboard.writeText(link);
1409+
difference = Math.abs(new Date() - time);
1410+
hideLoader(difference, 'Saved to Imgur and copied to clipboard', loaderText);
1411+
}
1412+
1413+
break;
1414+
1415+
default:
1416+
difference = Math.abs(new Date() - time);
1417+
hideLoader(difference, 'Unknown error 😱', loaderText);
1418+
break;
1419+
}
1420+
}
1421+
});
1422+
13471423
ipc.on('saveDropbox', (event) => {
13481424
isOnline((err, status) => {
13491425
if (status !== true) {
@@ -1358,7 +1434,7 @@ ipc.on('saveDropbox', (event) => {
13581434
setDefaultSceneState();
13591435

13601436
if (dbToken === null || dbToken === undefined) {
1361-
popUp(popupWindow, popupText, 'Sign in to Dropbox (More > Sign in to Dropbox)');
1437+
popUp(popupWindow, popupText, 'Sign in to Dropbox (Sign in to > Dropbox)');
13621438
return;
13631439
}
13641440

0 commit comments

Comments
 (0)