Skip to content

Commit

Permalink
🐛 fix #333, fix #327
Browse files Browse the repository at this point in the history
  • Loading branch information
muwoo committed Dec 27, 2023
1 parent 583e993 commit a0644c0
Show file tree
Hide file tree
Showing 11 changed files with 35 additions and 105 deletions.
2 changes: 1 addition & 1 deletion detach/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5864,7 +5864,7 @@ lodash.memoize@^4.1.2:

lodash.throttle@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
resolved "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==

lodash.transform@^4.6.0:
Expand Down
3 changes: 2 additions & 1 deletion feature/src/views/settings/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -283,14 +283,15 @@ state.local = perf.local;
state.global = defaultGlobal;
const setConfig = debounce(() => {
const { perf } = localConfig.getConfig();
localConfig.setConfig(
JSON.parse(
JSON.stringify({
perf: {
...perf,
shortCut: state.shortCut,
common: state.common,
local: state.local,
custom: state.custom,
},
global: state.global,
})
Expand Down
2 changes: 2 additions & 0 deletions feature/src/views/settings/user-info.vue
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ const theme = ref(perf.custom.theme);
state.custom = perf.custom || {};
const setConfig = debounce(() => {
const { perf } = localConfig.getConfig();
localConfig.setConfig(
JSON.parse(
JSON.stringify({
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rubick",
"version": "4.2.0-beta.1",
"version": "4.2.1",
"author": "muwoo <[email protected]>",
"private": true,
"scripts": {
Expand Down
Binary file modified public/icons/icon.icns
Binary file not shown.
Binary file added public/icons/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
57 changes: 0 additions & 57 deletions src/core/app-search/get-mac-app/app2png.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,63 +32,6 @@ const getIconFile = (appFileInput) => {
});
};

// const sortIcons = (icons) => {
// const aWins = -1;
// const bWins = 1;
// const catWins = 0;
// return icons.sort((a, b) => {
// const aSize = parseInt(a.match(/(\d+)x\1/)[1], 10);
// const bSize = parseInt(b.match(/(\d+)x\1/)[1], 10);
// if (aSize === bSize) {
// if (a.indexOf('@2x') > -1) return aWins;
// if (b.indexOf('@2x') > -1) return bWins;
// return catWins;
// }
// if (aSize > bSize) return aWins;
// if (aSize < bSize) return bWins;
// return catWins;
// });
// };

// const icnsToPng = (iconFile, pngFileOutput) => {
// const outputDir = pngFileOutput.split('.')[0] + '.iconset'
// return new Promise((resolve, reject) => {
// exec(`iconutil --convert iconset '${iconFile}' --output '${outputDir}'`, (error) => {
// if (error) return reject(error)
// fs.readdir(outputDir, (error, files) => {
// if (error) {
// return resolve(tiffToPng(iconFile, pngFileOutput))
// }
// const realIcons = files.map((file) => {
// return path.join(outputDir, file)
// })
// const biggestIcon = sortIcons(realIcons).find(Boolean)
// fs.rename(biggestIcon, pngFileOutput, (error) => {
// error ? reject(error) : resolve(realIcons.filter((file) => {
// return file !== biggestIcon
// }))
// })
// })
// })
// }).then((files) => {
// // Cleanup temp icons
// return Promise.all(files.map((file) => {
// return new Promise((resolve, reject) => {
// fs.unlink(file, (error) => {
// error ? reject(error) : resolve()
// })
// })
// }))
// }).then(() => {
// // Cleanup temp directory
// return new Promise((resolve, reject) => {
// fs.rmdir(outputDir, (error) => {
// error ? reject(error) : resolve()
// })
// })
// })
// }

const tiffToPng = (iconFile, pngFileOutput) => {
return new Promise((resolve, reject) => {
exec(
Expand Down
20 changes: 10 additions & 10 deletions src/core/app-search/get-mac-app/getApps.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
import { spawn } from "child_process";
import plist from "plist";
import { spawn } from 'child_process';
import plist from 'plist';

export default function getApps(resolve, reject, filterByAppName = false) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
let resultBuffer = new Buffer.from([]);

const profileInstalledApps = spawn("/usr/sbin/system_profiler", [
"-xml",
"-detailLevel",
"mini",
"SPApplicationsDataType",
const profileInstalledApps = spawn('/usr/sbin/system_profiler', [
'-xml',
'-detailLevel',
'mini',
'SPApplicationsDataType',
]);

profileInstalledApps.stdout.on("data", (chunckBuffer) => {
profileInstalledApps.stdout.on('data', (chunckBuffer) => {
resultBuffer = Buffer.concat([resultBuffer, chunckBuffer]);
});

profileInstalledApps.on("exit", (exitCode) => {
profileInstalledApps.on('exit', (exitCode) => {
if (exitCode !== 0) {
reject([]);
return;
Expand All @@ -37,7 +37,7 @@ export default function getApps(resolve, reject, filterByAppName = false) {
}
});

profileInstalledApps.on("error", (err) => {
profileInstalledApps.on('error', (err) => {
reject(err);
});
}
36 changes: 1 addition & 35 deletions src/core/plugin-handler/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class AdapterHandler {
const packageJSON = JSON.parse(
fs.readFileSync(`${this.baseDir}/package.json`, 'utf-8')
);
const registryUrl = `https://registry.npm.taobao.org/${name}`;
const registryUrl = `${this.registry}${name}`;

// 从npm源中获取依赖包的最新版本
try {
Expand Down Expand Up @@ -185,40 +185,6 @@ class AdapterHandler {
console.log(message);
});
});

// if (cmd !== 'link') {
// args = args
// .concat('--color=always')
// .concat('--save')
// .concat(`--registry=${this.registry}`);
// }

// const npm = spawn('npm', args, {
// cwd: this.baseDir,
// });
//
// console.log(args);
//
// let output = '';
// npm.stdout
// .on('data', (data: string) => {
// output += data; // 获取输出日志
// })
// .pipe(process.stdout);
//
// npm.stderr
// .on('data', (data: string) => {
// output += data; // 获取报错日志
// })
// .pipe(process.stderr);
//
// npm.on('close', (code: number) => {
// if (!code) {
// resolve({ code: 0, data: output }); // 如果没有报错就输出正常日志
// } else {
// reject({ code: code, data: output }); // 如果报错就输出报错日志
// }
// });
});
}
}
Expand Down
11 changes: 11 additions & 0 deletions src/main/common/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ class API extends DBInstance {
public hideMainWindow(arg, window) {
window.hide();
}

public showMainWindow(arg, window) {
window.show();
}
Expand All @@ -156,6 +157,15 @@ class API extends DBInstance {
if (!originWindow) return;
const targetHeight = height;
originWindow.setSize(originWindow.getSize()[0], targetHeight);
const screenPoint = screen.getCursorScreenPoint();
const display = screen.getDisplayNearestPoint(screenPoint);
const position =
originWindow.getPosition()[1] + targetHeight > display.bounds.height
? height - 60
: 0;
originWindow.webContents.executeJavaScript(
`window.setPosition && typeof window.setPosition === "function" && window.setPosition(${position})`
);
}

public setSubInput({ data }, window, e) {
Expand Down Expand Up @@ -326,6 +336,7 @@ class API extends DBInstance {
shell.showItemInFolder(data.path);
return true;
}

public async getFileIcon({ data }) {
const nativeImage = await app.getFileIcon(data.path, { size: 'normal' });
return nativeImage.toDataURL();
Expand Down
7 changes: 7 additions & 0 deletions src/renderer/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@

<script setup lang="ts">
import { watch, ref, toRaw } from 'vue';
import { exec } from 'child_process';
import Result from './components/result.vue';
import Search from './components/search.vue';
import getWindowHeight from '../common/utils/getWindowHeight';
Expand Down Expand Up @@ -142,6 +143,12 @@ const choosePlugin = (plugin) => {
const localPlugins = getGlobal('LOCAL_PLUGINS').getLocalPlugins();
const currentChoose = plugin || pluginHistory.value[currentSelect.value];
let hasRemove = true;
if (currentChoose.pluginType === 'app') {
hasRemove = false;
changePluginHistory(currentChoose);
exec(currentChoose.action);
return;
}
localPlugins.find((plugin) => {
if (plugin.name === currentChoose.originName) {
hasRemove = false;
Expand Down

0 comments on commit a0644c0

Please sign in to comment.