var cloud_access_token_name = 'ss_cloud_access_token'; var cloud_user_name = 'ss_cloud_user_name'; var $cloudtoken = localstorage.getitem(cloud_access_token_name); var $cloudusername = localstorage.getitem(cloud_user_name); var cloud = _.extend(axios.create({ baseurl: 'https://api.sscms.com/v7', headers: { authorization: "bearer " + $cloudtoken, }, }), { host: 'https://sscms.com', hostimages: 'https://images.sscms.com', hostdl: 'https://dl.sscms.com', hostdemo: 'https://demo.sscms.com', hoststorage: 'https://storage.sscms.com', getdocsurl: function(relatedurl) { return this.host + '/docs/v7/' + relatedurl; }, getpluginiconurl: function (plugin) { if (!plugin.icon) return utils.getassetsurl('images/favicon.png'); if (plugin.success && !plugin.disabled) { return plugin.icon; } return this.hoststorage + '/plugins/' + plugin.pluginid + '/logo' + plugin.icon.substring(plugin.icon.lastindexof('.')); }, getpluginsurl: function(relatedurl) { return this.host + '/plugins/' + relatedurl; }, getextensions: function(cmsversion, word) { return this.post('cms/extensions', { cmsversion: cmsversion, word: word }); }, getextension: function(cmsversion, username, name) { return this.post('cms/extensions/actions/getextension', { cmsversion: cmsversion, username: username, name: name }).catch(function (error) { if (error.response && error.response.status === 404) { utils.error('找不到资源,请重试或者检查计算机是否能够连接外网'); } else { throw error; } }); }, getthemesurl: function(relatedurl) { return this.host + '/templates/' + relatedurl; }, getthemes: function(page, word, tag, price, order) { return this.get('cms/themes', { params: { page: page, word: word, tag: tag, price: price, order: order } }); }, getupdates: function(cmsversion, pluginids) { return this.post('cms/extensions/actions/getupdates', { cmsversion: cmsversion, pluginids: pluginids }); }, compareversion: function (currentversion, newversion, options) { var v1 = (currentversion || "").split("-")[0]; var v2 = (newversion || "").split("-")[0]; // var v1 = (currentversion || '').replace(/[^0-9\.]+/g, "."); // var v2 = (newversion || '').replace(/[^0-9\.]+/g, "."); var lexicographical = options && options.lexicographical, zeroextend = options && options.zeroextend, v1parts = v1.split("."), v2parts = v2.split("."); function isvalidpart(x) { return (lexicographical ? /^\d+[a-za-z]*$/ : /^\d+$/).test(x); } if (!v1parts.every(isvalidpart) || !v2parts.every(isvalidpart)) { return nan; } if (zeroextend) { while (v1parts.length < v2parts.length) v1parts.push("0"); while (v2parts.length < v1parts.length) v2parts.push("0"); } if (!lexicographical) { v1parts = v1parts.map(number); v2parts = v2parts.map(number); } for (var i = 0; i < v1parts.length; ++i) { if (v2parts.length == i) { return 1; } if (v1parts[i] == v2parts[i]) { continue; } else if (v1parts[i] > v2parts[i]) { return 1; } else { return -1; } } if (v1parts.length != v2parts.length) { return -1; } //1 >, -1 <, 0 == return 0; }, // cloud authentication isauth: function() { return ($cloudtoken && $cloudusername) ? true : false; }, logout: function() { localstorage.removeitem(cloud_user_name); localstorage.removeitem(cloud_access_token_name); }, login: function(username, token) { if (username && token) { localstorage.setitem(cloud_user_name, username); localstorage.setitem(cloud_access_token_name, token); } else { this.logout(); } }, checkauth: function(callback, url) { if (!this.isauth()) { var redirect = url || location.href; location.href = utils.getcloudsurl('connect', {redirect: redirect}); } else if (callback) { callback(); } }, });