function arrayBufferToString(buffer) { return new Uint8Array(buffer).toString() } function stringToArrayBuffer(str) { return new Uint8Array(str.split(',')).buffer } // file 切片 function localFileSlice(file = null, callback) { let blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice, chunkSize = 1024 * 1024, // Read in chunks of 1MB chunks = Math.ceil(file.size / chunkSize), currentChunk = 0, fileReader = new FileReader(), result = [] fileReader.onload = function (e) { result.push(e.target.result); currentChunk++; if (currentChunk < chunks) { loadNext(); } else { callback && callback(result); } }; fileReader.onerror = function () { console.error('文件读取失败'); callback && callback(''); }; function loadNext() { let start = currentChunk * chunkSize, end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize; fileReader.readAsArrayBuffer(blobSlice.call(file, start, end)); } loadNext(); } // file md5 function localFileToMD5(file = null, callback) { let blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice, chunkSize = 1024 * 1024 * 2, // Read in chunks of 2MB chunks = Math.ceil(file.size / chunkSize), currentChunk = 0, fileReader = new FileReader(), spark = new SparkMD5.ArrayBuffer() fileReader.onload = function (e) { spark.append(e.target.result); currentChunk++; if (currentChunk < chunks) { loadNext(); } else { //获取md5 let md5 = spark.end(); callback && callback(md5); } }; fileReader.onerror = function () { console.error('文件读取失败'); callback && callback(''); }; function loadNext() { let start = currentChunk * chunkSize, end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize; fileReader.readAsArrayBuffer(blobSlice.call(file, start, end)); } loadNext(); } function formateTime(time) { const h = parseInt(time / 3600) const minute = parseInt(time / 60 % 60) const second = Math.ceil(time % 60) const hours = h < 10 ? '0' + h : h const formatSecond = second > 59 ? 59 : second return `${hours > 0 ? `${hours}:` : ''}${minute < 10 ? '0' + minute : minute}:${formatSecond < 10 ? '0' + formatSecond : formatSecond}` } function updateConfig(){ axios({ method: 'get', url: 'http://art-weapp.oss-cn-hangzhou.aliyuncs.com/chromeExtension/config.json', }) .then(function (response) { let result = response.data chrome.storage.sync.get({ config: '' }, (item) => { if (!item.config) { chrome.storage.sync.set({ config: JSON.stringify(res) }); return } let config = JSON.parse(item.config) if (config.version != result.version) { chrome.storage.sync.set({ config: JSON.stringify(result) }); } }); }); }