From 96268de9d83b288b22669c9432aa0193f68a21d4 Mon Sep 17 00:00:00 2001 From: muwoo <2424880409@qq.com> Date: Wed, 30 Jun 2021 15:20:30 +0800 Subject: [PATCH] =?UTF-8?q?bugfix:=20=E4=BF=AE=E5=A4=8D=20=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=8C=85=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 + src/renderer/assets/common/utils.js | 65 ++----------------- src/renderer/pages/search/subpages/market.vue | 2 + src/renderer/pages/search/subpages/plugin.vue | 4 +- src/renderer/store/modules/main.js | 6 +- 5 files changed, 16 insertions(+), 63 deletions(-) diff --git a/package.json b/package.json index f85906b..44772a6 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,8 @@ "puppeteer-in-electron": "^3.0.3", "query-string": "^7.0.0", "robotjs": "git+ssh://git@github.com/Toinane/robotjs.git", + "sudo-prompt": "^9.2.1", + "unzip": "^0.1.11", "uuid": "^8.3.2", "vue": "^2.5.16", "vue-electron": "^1.0.6", diff --git a/src/renderer/assets/common/utils.js b/src/renderer/assets/common/utils.js index b4308ce..7614da5 100644 --- a/src/renderer/assets/common/utils.js +++ b/src/renderer/assets/common/utils.js @@ -1,12 +1,11 @@ import {WINDOW_MAX_HEIGHT, WINDOW_MIN_HEIGHT, PRE_ITEM_HEIGHT, SYSTEM_PLUGINS} from './constans'; -import download from 'download-git-repo'; import path from 'path'; import fs from 'fs'; -import process from 'child_process'; import Store from 'electron-store'; import downloadFile from 'download'; import {nativeImage} from 'electron'; import {APP_FINDER_PATH} from './constans'; +import {getlocalDataFile} from "../../../main/common/utils"; const store = new Store(); @@ -35,69 +34,21 @@ function existOrNot(path) { }); } -function mkdirFolder(name) { - return new Promise((resolve, reject) => { - process.exec(`mkdir ${name}`, async function (error, stdout, stderr) { - if (error) { - reject(false); - } else { - resolve(true); - } - }) - }); -} +const appPath = getlocalDataFile(); async function downloadZip(downloadRepoUrl, name) { try { - const plugin_path = path.join(__static, './plugins'); - const targetUrl = downloadRepoUrl ? downloadRepoUrl : `https://github.com/clouDr-f2e/${name}/archive/refs/heads/master.zip`; - if (!(await existOrNot(plugin_path))) { - await mkdirFolder(plugin_path); - } + const plugin_path = appPath; // 基础模版所在目录,如果是初始化,则是模板名称,否则是项目名称 - const temp_dest = `${plugin_path}/${name}-master`; - // 下载模板 - if (await existOrNot(temp_dest)) { - await process.execSync(`rm -rf ${temp_dest}`); - } - await downloadFile(targetUrl, `${__static}/plugins`,{extract: true}) + // const temp_dest = `${plugin_path}/${name}`; + await downloadFile(downloadRepoUrl, plugin_path,{extract: true}); + + return `${plugin_path}/${name}` } catch (e) { console.log(e); } } -function downloadFunc(downloadRepoUrl, name) { - const targetGit = downloadRepoUrl ? downloadRepoUrl : `github:clouDr-f2e/${name}`; - const plugin_path = path.join(__static, './plugins'); - - return new Promise(async (resolve, reject) => { - try { - if (!(await existOrNot(plugin_path))) { - await mkdirFolder(plugin_path); - } - // 基础模版所在目录,如果是初始化,则是模板名称,否则是项目名称 - const temp_dest = `${plugin_path}/${name}`; - // 下载模板 - if (await existOrNot(temp_dest)) { - await process.execSync(`rm -rf ${temp_dest}`); - } - - download(targetGit, temp_dest, {clone: true}, function (err) { - console.log(err ? 'Error' : 'Success') - if (err) { - console.log(err); - reject('请求模板下载失败'); - } else { - resolve('请求模板下载成功'); - } - }) - } catch (e) { - console.log(e); - } - - }); -} - const sysFile = { savePlugins(plugins) { store.set('user-plugins', plugins); @@ -113,7 +64,6 @@ const sysFile = { store.delete('user-plugins'); } } -sysFile.removeAllPlugins() function mergePlugins(plugins) { return [ @@ -218,7 +168,6 @@ function debounce(fn, delay) { export { getWindowHeight, searchKeyValues, - downloadFunc, sysFile, mergePlugins, find, diff --git a/src/renderer/pages/search/subpages/market.vue b/src/renderer/pages/search/subpages/market.vue index 3677da0..2ade8fa 100644 --- a/src/renderer/pages/search/subpages/market.vue +++ b/src/renderer/pages/search/subpages/market.vue @@ -73,6 +73,7 @@ export default { this.$set(this.loading, index, false); }, showButton(item) { + console.log(this.devPlugins) return !this.devPlugins.filter(plugin => (plugin.name === item.name && plugin.type === 'prod')).length; }, ...mapActions('main', ['downloadPlugin']) @@ -89,6 +90,7 @@ export default { background: #fff; padding: 20px; box-sizing: border-box; + overflow: auto; .ant-carousel .slick-slide { text-align: center; height: 235px; diff --git a/src/renderer/pages/search/subpages/plugin.vue b/src/renderer/pages/search/subpages/plugin.vue index 8da703d..62ae3b8 100644 --- a/src/renderer/pages/search/subpages/plugin.vue +++ b/src/renderer/pages/search/subpages/plugin.vue @@ -27,7 +27,7 @@ -
+
{{item.explain}}
{{cmd}} @@ -123,7 +123,7 @@ export default { color: #999; } } - .detail-container { + .detail-container, .feature-container { height: 340px; overflow: auto; } diff --git a/src/renderer/store/modules/main.js b/src/renderer/store/modules/main.js index 09f76e2..f6bda05 100644 --- a/src/renderer/store/modules/main.js +++ b/src/renderer/store/modules/main.js @@ -3,7 +3,6 @@ import { v4 as uuidv4 } from 'uuid'; import { getWindowHeight, searchKeyValues, - downloadFunc, sysFile, mergePlugins, find, @@ -221,8 +220,9 @@ const actions = { }); }, async downloadPlugin({commit}, payload) { - await downloadZip(payload.gitUrl, payload.name); - const fileUrl = find(path.join(__static, `plugins/${payload.name}-master`)); + const distUrl = await downloadZip(payload.downloadUrl, payload.name); + const fileUrl = find(distUrl); + // 复制文件 const config = JSON.parse(fs.readFileSync(`${fileUrl}/plugin.json`, 'utf-8')); const pluginConfig = {