diff --git a/web-extension/manifest.json b/web-extension/manifest.json index a51ef0c..3c048c5 100644 --- a/web-extension/manifest.json +++ b/web-extension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "__MSG_extName__", - "version": "1.3.1", + "version": "1.3.2", "default_locale": "en", "author": "Alex Adam", "homepage_url": "https://github.com/alexadam/save-as-ebook", @@ -30,7 +30,8 @@ "notifications", "http://*/*", "https://*/*", - "" + "", + "downloads" ], "commands": { "save-page": { diff --git a/web-extension/menu.js b/web-extension/menu.js index e5b308b..840908f 100644 --- a/web-extension/menu.js +++ b/web-extension/menu.js @@ -221,7 +221,7 @@ function sendMessage(tabId, action, justAddToBuffer, appliedStyles) { window.close(); } if (!justAddToBuffer) { - buildEbook([response]); + buildEbook([response], true); } else { getEbookPages(function (allPages) { allPages.push(response); diff --git a/web-extension/saveEbook.js b/web-extension/saveEbook.js index 26a6715..5ce4205 100644 --- a/web-extension/saveEbook.js +++ b/web-extension/saveEbook.js @@ -32,12 +32,12 @@ function buildEbookFromChapters() { }) } -function buildEbook(allPages) { - _buildEbook(allPages); +function buildEbook(allPages, fromMenu=false) { + _buildEbook(allPages, fromMenu); } // http://ebooks.stackexchange.com/questions/1183/what-is-the-minimum-required-content-for-a-valid-epub -function _buildEbook(allPages) { +function _buildEbook(allPages, fromMenu=false) { allPages = allPages.filter(function(page) { return page !== null; }); @@ -179,27 +179,22 @@ function _buildEbook(allPages) { var done = false; - // FIXME - // var saveData = (function () { - // // alert('in save data') - // var a = document.createElement("a"); - // document.body.appendChild(a); - // a.style = "display: none"; - // return function (data, fileName) { - // var blob = new Blob([data], {type: "octet/stream"}), - // url = window.URL.createObjectURL(blob); - // // alert(url) - // // console.log(url); - // - // // blob:chrome-extension://odnciljldfihdbbpbpdeehpejonicnmh/12789e3f-4ee2-4287-8203-69bc719c2ce8 - // // blob:https://uk.godaddy.com/d9cbd1a4-427d-4e55-a30a-80b9bea6547a - // a.href = url; - // a.download = fileName; - // a.click(); - // window.URL.revokeObjectURL(url); - // }; - // }()); + var saveData = (function () { + var a = document.createElement("a"); + document.body.appendChild(a); + a.style = "display: none"; + return function (data, fileName) { + var wURL = window.URL || window.mozURL; + var blob = new Blob([data], {type: "application/epub+zip"}), + url = wURL.createObjectURL(blob); + + chrome.downloads.download({ + url: url, + filename: fileName + }); + }; + }()); zip.generateAsync({ type: "blob" @@ -207,11 +202,14 @@ function _buildEbook(allPages) { .then(function(content) { done = true; console.log("done !"); - saveAs(content, ebookFileName); - // FIXME - // saveData(content, ebookFileName); + if (!fromMenu) { + saveAs(content, ebookFileName); + } else { + saveData(content, ebookFileName); + } }); + // FIXME - remove or fix? setTimeout(function() { if (done) { return;