Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 31 additions & 1 deletion background.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var remoteOptionId;
var s = chrome.storage.local;
var cn = chrome.notifications;
var apiKey;
var folderId;

var APIURLS = {
instantDld: 'https://offcloud.com/api/instant/download',
Expand All @@ -21,12 +22,15 @@ restoreOptions();
initMenus();

function restoreOptions(){
chrome.storage.local.get(['apiKey', 'remoteOptionId'], function(object){
chrome.storage.local.get(['apiKey', 'remoteOptionId', 'folderId'], function(object){
if (object.apiKey != null)
apiKey = object.apiKey;

if (object.remoteOptionId != null)
remoteOptionId = object.remoteOptionId;

if (object.folderId != null)
folderId = object.folderId;
});
}

Expand Down Expand Up @@ -63,6 +67,21 @@ function setApiKey(newApiKey){
});
}

function setFolderId(newFolderId){
s.set({
folderId: newFolderId
}, function(){
folderId = newFolderId;
});
}

function getFolderId(callback) {
s.get('folderId', function(result){
folderId = result.folderId;
callback();
});
}

function initMenus() {
cm.removeAll();

Expand Down Expand Up @@ -193,6 +212,10 @@ function processMultipleLink(html, needReg, remote, tab, api, href, type) {
dataBody.remoteOptionId = remoteOptionId;
else
dataBody.remoteOptionId = "";
if (folderId)
dataBody.folderId = folderId;
else
dataBody.folderId = "";
}
requestList.push($.ajax(api, {
method: 'POST',
Expand Down Expand Up @@ -260,6 +283,10 @@ function processCall(api, link, remote, tab, type) {
dataBody.remoteOptionId = remoteOptionId;
else
dataBody.remoteOptionId = "";
if (folderId)
dataBody.folderId = folderId;
else
dataBody.folderId = "";

processAjax(api, link, true, tab, dataBody, type);

Expand Down Expand Up @@ -354,6 +381,9 @@ om.addListener(function(req, sender, sendResponse) {

if (req.action == "removeRemoteOptionId")
remoteOptionId = null;

if (req.action == "setFolderId")
setFolderId(req.newFolderId);

if (req.cmd == "custom") {
var currentApi;
Expand Down
9 changes: 9 additions & 0 deletions options.html
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,15 @@
<div>
<button id="saveRemoteOptionBtn">Save remote account</button>
</div>
<div>
Google Folder ID / Amazon Cloud Drive Parent ID:
</div>
<div>
<input type="text" placeholder="(Optional) ID (e.g. 0B2Z7o1j38P5hLXE4M2dVNVhHejQ)" id="folderIdInput">
</div>
<div>
<button id="saveFolderIdBtn">Save ID</button>
</div>
<div class="status-div"></div>
</div>
<script src="options.js"></script>
Expand Down
22 changes: 20 additions & 2 deletions options.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
var apiKeyInput = document.getElementById('apiKeyInput');
var remoteOptionsSelect = document.getElementById('remoteOptionsSelect');
var folderIdInput = document.getElementById('folderIdInput');
var saveApiKeyBtn = document.getElementById('saveApiKeyBtn');
var saveRemoteOptionBtn = document.getElementById('saveRemoteOptionBtn');
var saveFolderIdBtn = document.getElementById('saveFolderIdBtn');
var statusDiv = document.querySelector('.status-div');

restoreOptions();
Expand Down Expand Up @@ -44,18 +46,34 @@ function setEventHandlers(){
});
});
}

});

saveFolderIdBtn.addEventListener('click', function(){
var folderId = folderIdInput.value;
if (folderId == "")
folderId = null;
chrome.storage.local.set({
folderId: folderId
}, function(){
chrome.runtime.sendMessage({
action: "setFolderId",
newFolderId: folderId
});
if (folderId) statusDiv.innerText = 'Your Folder ID / Parent ID has been successfully changed!';
else statusDiv.innerText = 'Your Folder ID / Parent ID has been cleared.';
});
});
}

function restoreOptions(){
chrome.storage.local.get(['apiKey', 'remoteOptionId'], function(object){
chrome.storage.local.get(['apiKey', 'remoteOptionId', 'folderId'], function(object){
if (object.apiKey != null){
apiKeyInput.value = object.apiKey;
getRemoteOptionsRequest(object.apiKey)
.then((data) => { setRemoteOptions(data, object.remoteOptionId); })
.catch((err) => { console.log(err); });
}
folderIdInput.value = object.folderId;
});
}

Expand Down