From 1eeee5630eb6b0092aa66f7b15e71b9b71960828 Mon Sep 17 00:00:00 2001 From: fanchenio Date: Fri, 3 Nov 2023 15:17:45 +0800 Subject: [PATCH] change --- .env.production | 2 + .gitignore | 38 +- .prettierrc | 3 - .vscode/.debug.script.mjs | 23 + .vscode/extensions.json | 6 + .vscode/launch.json | 53 + .vscode/settings.json | 13 + .vscode/tasks.json | 31 + Cargo.lock | 748 + LICENSE => LICENSE.txt | 0 README.md | 69 +- babel.config.js | 4 - binding.gyp | 14 - build.rs | 6 + cargo.toml | 37 + commons/data/languages.d.ts | 3 + commons/data/languages.ts | 934 ++ commons/data/theme.d.ts | 4 + commons/data/theme.ts | 86 + commons/data/webSearchSource.d.ts | 4 + commons/data/webSearchSource.ts | 41 + commons/utils/common.d.ts | 71 + commons/utils/common.ts | 308 + commons/utils/setting.d.ts | 4 + commons/utils/setting.ts | 378 + electron-builder.json5 | 35 + electron/commons/betterSqlite3.ts | 40 + electron/commons/constants.ts | 15 + electron/commons/logger.ts | 32 + electron/commons/utilityProcessUtils.ts | 80 + electron/commons/utils.ts | 155 + electron/electron-env.d.ts | 11 + electron/main/about/index.ts | 58 + electron/main/about/ipcEvent.ts | 20 + electron/main/classification/data.ts | 397 + electron/main/classification/index.ts | 954 ++ electron/main/classification/ipcEvent.ts | 336 + electron/main/commons/cacheData.ts | 12 + electron/main/commons/index.ts | 481 + electron/main/commons/ipcEvent.ts | 166 + electron/main/data/data.ts | 486 + electron/main/data/index.ts | 71 + electron/main/data/ipcEvent.ts | 75 + electron/main/index.ts | 159 + electron/main/item/commons/data.ts | 561 + electron/main/item/commons/index.ts | 60 + electron/main/item/data.ts | 427 + electron/main/item/index.ts | 687 + electron/main/item/ipcEvent.ts | 680 + electron/main/main/index.ts | 701 + electron/main/main/ipcEvent.ts | 33 + electron/main/search/index.ts | 131 + electron/main/search/ipcEvent.ts | 21 + electron/main/setting/data.ts | 82 + electron/main/setting/index.ts | 146 + electron/main/setting/ipcEvent.ts | 207 + electron/main/worker.ts | 793 + electron/preload/index.ts | 850 ++ electron/types/global.d.ts | 75 + images/soft1.png | Bin 0 -> 123849 bytes images/soft2.png | Bin 0 -> 89937 bytes images/soft3.png | Bin 0 -> 90888 bytes images/soft4.png | Bin 0 -> 137945 bytes images/soft5.png | Bin 0 -> 117189 bytes images/soft6.webp | Bin 0 -> 45752 bytes images/soft7.png | Bin 0 -> 70687 bytes images/soft8.webp | Bin 0 -> 44066 bytes ...1\345\235\200\344\277\241\346\201\257.gif" | Bin 51021 -> 0 bytes ...4\346\226\207\344\273\266\345\244\271.gif" | Bin 817320 -> 0 bytes .../\345\255\220\345\210\206\347\261\273.png" | Bin 32879 -> 0 bytes ...3\351\200\237\346\220\234\347\264\242.gif" | Bin 229693 -> 0 bytes "images/\347\225\214\351\235\242.png" | Bin 40126 -> 0 bytes ...0\345\257\271\350\267\257\345\276\204.png" | Bin 22287 -> 0 bytes ...2\344\271\211\344\270\273\351\242\230.png" | Bin 25413 -> 0 bytes ...2\344\271\211\350\203\214\346\231\257.png" | Bin 651224 -> 0 bytes index.html | 16 + jsconfig.JSON | 19 - package.json | 109 +- postcss.config.js | 2 +- public/{images => }/drag-and-drop.png | Bin public/images/logo.png | Bin 11076 -> 0 bytes public/{images => }/logo-transparent.png | Bin public/{images => }/logo.ico | Bin public/{images/logo-thick.ico => tray.ico} | Bin rebuild.js | 33 + rust/lib.rs | 167 + rust/windows.rs | 673 + src/App.vue | 282 + src/components/CustomItemIcon.vue | 91 + src/components/Desc.vue | 20 + src/components/ItemIcon.vue | 172 + src/index.d.ts | 185 + src/main.ts | 9 + src/main/api/api.cc | 589 - src/main/appInit.js | 32 - src/main/cache/data.js | 7 - src/main/classification/index.js | 50 - src/main/classification/ipcEvent.js | 338 - src/main/data.js | 126 - src/main/ipcEvent.js | 414 - src/main/item/index.js | 790 - src/main/item/ipcEvent.js | 1897 --- src/main/main.js | 816 - src/main/mouse.js | 70 - src/main/setting/data.js | 516 - src/main/setting/index.js | 149 - src/main/setting/ipcEvent.js | 162 - src/main/util.js | 297 - src/pages/about/Index.vue | 85 + src/pages/classification/AddEdit.vue | 216 + src/pages/classification/Aggregate.vue | 213 + src/pages/classification/AssociateFolder.vue | 224 + src/pages/classification/SetIcon.vue | 12354 ++++++++++++++++ .../classification/components/Content.vue | 1403 ++ src/pages/classification/js/index.ts | 381 + src/pages/data/BackupRestore.vue | 94 + src/pages/index/Index.vue | 576 + src/pages/item/AddEdit.vue | 858 ++ src/pages/item/NetworkIcon.vue | 152 + src/pages/item/SVGIcon.vue | 147 + src/pages/item/components/AppxItemList.vue | 213 + src/pages/item/components/Content.vue | 894 ++ src/pages/item/components/List.vue | 267 + src/pages/item/components/MultiItem.vue | 188 + .../item/components/StartMenuItemList.vue | 213 + src/pages/item/components/SystemItemList.vue | 214 + src/pages/item/js/index.ts | 815 + src/pages/search/QuickSearch.vue | 640 + src/pages/search/components/Search.vue | 392 + src/pages/search/js/index.ts | 51 + src/pages/setting/Index.vue | 2259 +++ src/renderer/App.vue | 14 - src/renderer/assets/images/logo-thick.png | Bin 14198 -> 0 bytes .../assets/images/logo-transparent.png | Bin 11633 -> 0 bytes src/renderer/common/index.js | 300 - src/renderer/components/Button.vue | 71 - src/renderer/components/CheckBox.vue | 56 - src/renderer/components/Close.vue | 33 - src/renderer/components/Color.vue | 93 - src/renderer/components/Input.vue | 39 - src/renderer/components/Popup.vue | 174 - src/renderer/components/Select.vue | 130 - src/renderer/components/TopTitleBar.vue | 44 - src/renderer/main.js | 125 - src/renderer/router/index.js | 39 - src/renderer/store/index.js | 608 - src/renderer/views/about/Index.vue | 59 - src/renderer/views/classification/AddEdit.vue | 234 - .../views/classification/Aggregate.vue | 146 - .../views/classification/AssociatedFolder.vue | 165 - src/renderer/views/classification/Icon.vue | 12281 --------------- src/renderer/views/classification/js/index.js | 59 - src/renderer/views/data/BackupRestore.vue | 58 - src/renderer/views/index/Index.vue | 4246 ------ src/renderer/views/index/js/index.js | 2 - src/renderer/views/item/AddEdit.vue | 1564 -- src/renderer/views/item/ItemList.vue | 523 - src/renderer/views/item/SVGIcon.vue | 127 - src/renderer/views/item/URLIcon.vue | 150 - src/renderer/views/item/js/index.js | 222 - src/renderer/views/item/js/systemIcon.js | 59 - src/renderer/views/search/Index.vue | 356 - src/renderer/views/search/Window.vue | 806 - src/renderer/views/search/js/index.js | 149 - src/renderer/views/setting/Index.vue | 1992 --- src/renderer/views/setting/js/index.js | 27 - src/router/index.ts | 77 + src/store/index.ts | 79 + .../style/main.css => styles/style.css} | 78 +- src/{renderer/style => styles}/tailwind.css | 2 +- src/utils/common.ts | 243 + src/utils/localSetting.ts | 39 + src/utils/shortcutKey.ts | 161 + src/utils/style.ts | 141 + src/vite-env.d.ts | 7 + tailwind.config.js | 17 +- tsconfig.json | 25 + tsconfig.node.json | 19 + types/classification.d.ts | 47 + types/common.d.ts | 13 + types/item.d.ts | 75 + types/setting.d.ts | 239 + vite.config.ts | 153 + vue.config.js | 82 - yarn.lock | 8614 ++--------- 185 files changed, 39361 insertions(+), 38498 deletions(-) create mode 100644 .env.production delete mode 100644 .prettierrc create mode 100644 .vscode/.debug.script.mjs create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 Cargo.lock rename LICENSE => LICENSE.txt (100%) delete mode 100644 babel.config.js delete mode 100644 binding.gyp create mode 100644 build.rs create mode 100644 cargo.toml create mode 100644 commons/data/languages.d.ts create mode 100644 commons/data/languages.ts create mode 100644 commons/data/theme.d.ts create mode 100644 commons/data/theme.ts create mode 100644 commons/data/webSearchSource.d.ts create mode 100644 commons/data/webSearchSource.ts create mode 100644 commons/utils/common.d.ts create mode 100644 commons/utils/common.ts create mode 100644 commons/utils/setting.d.ts create mode 100644 commons/utils/setting.ts create mode 100644 electron-builder.json5 create mode 100644 electron/commons/betterSqlite3.ts create mode 100644 electron/commons/constants.ts create mode 100644 electron/commons/logger.ts create mode 100644 electron/commons/utilityProcessUtils.ts create mode 100644 electron/commons/utils.ts create mode 100644 electron/electron-env.d.ts create mode 100644 electron/main/about/index.ts create mode 100644 electron/main/about/ipcEvent.ts create mode 100644 electron/main/classification/data.ts create mode 100644 electron/main/classification/index.ts create mode 100644 electron/main/classification/ipcEvent.ts create mode 100644 electron/main/commons/cacheData.ts create mode 100644 electron/main/commons/index.ts create mode 100644 electron/main/commons/ipcEvent.ts create mode 100644 electron/main/data/data.ts create mode 100644 electron/main/data/index.ts create mode 100644 electron/main/data/ipcEvent.ts create mode 100644 electron/main/index.ts create mode 100644 electron/main/item/commons/data.ts create mode 100644 electron/main/item/commons/index.ts create mode 100644 electron/main/item/data.ts create mode 100644 electron/main/item/index.ts create mode 100644 electron/main/item/ipcEvent.ts create mode 100644 electron/main/main/index.ts create mode 100644 electron/main/main/ipcEvent.ts create mode 100644 electron/main/search/index.ts create mode 100644 electron/main/search/ipcEvent.ts create mode 100644 electron/main/setting/data.ts create mode 100644 electron/main/setting/index.ts create mode 100644 electron/main/setting/ipcEvent.ts create mode 100644 electron/main/worker.ts create mode 100644 electron/preload/index.ts create mode 100644 electron/types/global.d.ts create mode 100644 images/soft1.png create mode 100644 images/soft2.png create mode 100644 images/soft3.png create mode 100644 images/soft4.png create mode 100644 images/soft5.png create mode 100644 images/soft6.webp create mode 100644 images/soft7.png create mode 100644 images/soft8.webp delete mode 100644 "images/\344\270\200\351\224\256\350\216\267\345\217\226\347\275\221\345\235\200\344\277\241\346\201\257.gif" delete mode 100644 "images/\345\205\263\350\201\224\346\226\207\344\273\266\345\244\271.gif" delete mode 100644 "images/\345\255\220\345\210\206\347\261\273.png" delete mode 100644 "images/\345\277\253\351\200\237\346\220\234\347\264\242.gif" delete mode 100644 "images/\347\225\214\351\235\242.png" delete mode 100644 "images/\347\233\270\345\257\271\350\267\257\345\276\204.png" delete mode 100644 "images/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.png" delete mode 100644 "images/\350\207\252\345\256\232\344\271\211\350\203\214\346\231\257.png" create mode 100644 index.html delete mode 100644 jsconfig.JSON rename public/{images => }/drag-and-drop.png (100%) delete mode 100644 public/images/logo.png rename public/{images => }/logo-transparent.png (100%) rename public/{images => }/logo.ico (100%) rename public/{images/logo-thick.ico => tray.ico} (100%) create mode 100644 rebuild.js create mode 100644 rust/lib.rs create mode 100644 rust/windows.rs create mode 100644 src/App.vue create mode 100644 src/components/CustomItemIcon.vue create mode 100644 src/components/Desc.vue create mode 100644 src/components/ItemIcon.vue create mode 100644 src/index.d.ts create mode 100644 src/main.ts delete mode 100644 src/main/api/api.cc delete mode 100644 src/main/appInit.js delete mode 100644 src/main/cache/data.js delete mode 100644 src/main/classification/index.js delete mode 100644 src/main/classification/ipcEvent.js delete mode 100644 src/main/data.js delete mode 100644 src/main/ipcEvent.js delete mode 100644 src/main/item/index.js delete mode 100644 src/main/item/ipcEvent.js delete mode 100644 src/main/main.js delete mode 100644 src/main/mouse.js delete mode 100644 src/main/setting/data.js delete mode 100644 src/main/setting/index.js delete mode 100644 src/main/setting/ipcEvent.js delete mode 100644 src/main/util.js create mode 100644 src/pages/about/Index.vue create mode 100644 src/pages/classification/AddEdit.vue create mode 100644 src/pages/classification/Aggregate.vue create mode 100644 src/pages/classification/AssociateFolder.vue create mode 100644 src/pages/classification/SetIcon.vue create mode 100644 src/pages/classification/components/Content.vue create mode 100644 src/pages/classification/js/index.ts create mode 100644 src/pages/data/BackupRestore.vue create mode 100644 src/pages/index/Index.vue create mode 100644 src/pages/item/AddEdit.vue create mode 100644 src/pages/item/NetworkIcon.vue create mode 100644 src/pages/item/SVGIcon.vue create mode 100644 src/pages/item/components/AppxItemList.vue create mode 100644 src/pages/item/components/Content.vue create mode 100644 src/pages/item/components/List.vue create mode 100644 src/pages/item/components/MultiItem.vue create mode 100644 src/pages/item/components/StartMenuItemList.vue create mode 100644 src/pages/item/components/SystemItemList.vue create mode 100644 src/pages/item/js/index.ts create mode 100644 src/pages/search/QuickSearch.vue create mode 100644 src/pages/search/components/Search.vue create mode 100644 src/pages/search/js/index.ts create mode 100644 src/pages/setting/Index.vue delete mode 100644 src/renderer/App.vue delete mode 100644 src/renderer/assets/images/logo-thick.png delete mode 100644 src/renderer/assets/images/logo-transparent.png delete mode 100644 src/renderer/common/index.js delete mode 100644 src/renderer/components/Button.vue delete mode 100644 src/renderer/components/CheckBox.vue delete mode 100644 src/renderer/components/Close.vue delete mode 100644 src/renderer/components/Color.vue delete mode 100644 src/renderer/components/Input.vue delete mode 100644 src/renderer/components/Popup.vue delete mode 100644 src/renderer/components/Select.vue delete mode 100644 src/renderer/components/TopTitleBar.vue delete mode 100644 src/renderer/main.js delete mode 100644 src/renderer/router/index.js delete mode 100644 src/renderer/store/index.js delete mode 100644 src/renderer/views/about/Index.vue delete mode 100644 src/renderer/views/classification/AddEdit.vue delete mode 100644 src/renderer/views/classification/Aggregate.vue delete mode 100644 src/renderer/views/classification/AssociatedFolder.vue delete mode 100644 src/renderer/views/classification/Icon.vue delete mode 100644 src/renderer/views/classification/js/index.js delete mode 100644 src/renderer/views/data/BackupRestore.vue delete mode 100644 src/renderer/views/index/Index.vue delete mode 100644 src/renderer/views/index/js/index.js delete mode 100644 src/renderer/views/item/AddEdit.vue delete mode 100644 src/renderer/views/item/ItemList.vue delete mode 100644 src/renderer/views/item/SVGIcon.vue delete mode 100644 src/renderer/views/item/URLIcon.vue delete mode 100644 src/renderer/views/item/js/index.js delete mode 100644 src/renderer/views/item/js/systemIcon.js delete mode 100644 src/renderer/views/search/Index.vue delete mode 100644 src/renderer/views/search/Window.vue delete mode 100644 src/renderer/views/search/js/index.js delete mode 100644 src/renderer/views/setting/Index.vue delete mode 100644 src/renderer/views/setting/js/index.js create mode 100644 src/router/index.ts create mode 100644 src/store/index.ts rename src/{renderer/style/main.css => styles/style.css} (61%) rename src/{renderer/style => styles}/tailwind.css (64%) create mode 100644 src/utils/common.ts create mode 100644 src/utils/localSetting.ts create mode 100644 src/utils/shortcutKey.ts create mode 100644 src/utils/style.ts create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 types/classification.d.ts create mode 100644 types/common.d.ts create mode 100644 types/item.d.ts create mode 100644 types/setting.d.ts create mode 100644 vite.config.ts delete mode 100644 vue.config.js diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..c0a3cdc --- /dev/null +++ b/.env.production @@ -0,0 +1,2 @@ +VITE_BETTER_SQLITE3_BINDING=.\resources\app.asar\native\better_sqlite3.node +VITE_INSTALL=false \ No newline at end of file diff --git a/.gitignore b/.gitignore index 75920e4..ae3c994 100644 --- a/.gitignore +++ b/.gitignore @@ -1,28 +1,38 @@ -.DS_Store -node_modules -/dist - - -# local env files -.env.local -.env.*.local - -# Log files +# Logs +logs +*.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +dist-electron +native +release +*.local +.env # Editor directories and files +.vscode/.debug.env .idea -.vscode +.DS_Store *.suo *.ntvs* *.njsproj *.sln *.sw? -#Electron-builder output -/dist_electron +# lockfile +package-lock.json +pnpm-lock.yaml +yarn.lock + +# VSCode +.history -/build +# Rust +target \ No newline at end of file diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 3748136..0000000 --- a/.prettierrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "printWidth": 160, -} diff --git a/.vscode/.debug.script.mjs b/.vscode/.debug.script.mjs new file mode 100644 index 0000000..e3674cb --- /dev/null +++ b/.vscode/.debug.script.mjs @@ -0,0 +1,23 @@ +import fs from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' +import { createRequire } from 'node:module' +import { spawn } from 'node:child_process' + +const pkg = createRequire(import.meta.url)('../package.json') +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +// write .debug.env +const envContent = Object.entries(pkg.debug.env).map(([key, val]) => `${key}=${val}`) +fs.writeFileSync(path.join(__dirname, '.debug.env'), envContent.join('\n')) + +// bootstrap +spawn( + // TODO: terminate `npm run dev` when Debug exits. + process.platform === 'win32' ? 'npm.cmd' : 'npm', + ['run', 'dev'], + { + stdio: 'inherit', + env: Object.assign(process.env, { VSCODE_DEBUG: 'true' }), + }, +) diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..232ead7 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "Vue.volar", + "Vue.vscode-typescript-vue-plugin" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..3d01d65 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,53 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "compounds": [ + { + "name": "Debug App", + "preLaunchTask": "Before Debug", + "configurations": [ + "Debug Main Process", + "Debug Renderer Process" + ], + "presentation": { + "hidden": false, + "group": "", + "order": 1 + }, + "stopAll": true + } + ], + "configurations": [ + { + "name": "Debug Main Process", + "type": "node", + "request": "launch", + "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron", + "windows": { + "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd" + }, + "runtimeArgs": [ + "--remote-debugging-port=9229", + "." + ], + "envFile": "${workspaceFolder}/.vscode/.debug.env", + "console": "integratedTerminal" + }, + { + "name": "Debug Renderer Process", + "port": 9229, + "request": "attach", + "type": "chrome", + "timeout": 60000, + "skipFiles": [ + "/**", + "${workspaceRoot}/node_modules/**", + "${workspaceRoot}/dist-electron/**", + // Skip files in host(VITE_DEV_SERVER_URL) + "http://127.0.0.1:3344/**" + ] + }, + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1e3e2cd --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,13 @@ +{ + "typescript.tsdk": "node_modules/typescript/lib", + "typescript.tsc.autoDetect": "off", + "json.schemas": [ + { + "fileMatch": [ + "/*electron-builder.json5", + "/*electron-builder.json" + ], + "url": "https://json.schemastore.org/electron-builder" + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..adb5c58 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,31 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Before Debug", + "type": "shell", + "command": "node .vscode/.debug.script.mjs", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "fileLocation": "relative", + "pattern": { + // TODO: correct "regexp" + "regexp": "^([a-zA-Z]\\:\/?([\\w\\-]\/?)+\\.\\w+):(\\d+):(\\d+): (ERROR|WARNING)\\: (.*)$", + "file": 1, + "line": 3, + "column": 4, + "code": 5, + "message": 6 + }, + "background": { + "activeOnStart": true, + "beginsPattern": "^.*VITE v.* ready in \\d* ms.*$", + "endsPattern": "^.*\\[startup\\] Electron App.*$" + } + } + } + ] +} diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..17f4723 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,748 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "ctor" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583" +dependencies = [ + "quote", + "syn 2.0.38", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + +[[package]] +name = "exr" +version = "1.71.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "832a761f35ab3e6664babfbdc6cef35a4860e816ec3916dcfd0882954e98a8a8" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + +[[package]] +name = "fdeflate" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "spin", +] + +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "half" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" +dependencies = [ + "crunchy", +] + +[[package]] +name = "image" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "jpeg-decoder", + "num-rational", + "num-traits", + "png", + "qoi", + "tiff", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" +dependencies = [ + "rayon", +] + +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + +[[package]] +name = "libc" +version = "0.2.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "napi" +version = "2.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd063c93b900149304e3ba96ce5bf210cd4f81ef5eb80ded0d100df3e85a3ac0" +dependencies = [ + "bitflags 2.4.1", + "ctor", + "napi-derive", + "napi-sys", + "once_cell", +] + +[[package]] +name = "napi-build" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882a73d9ef23e8dc2ebbffb6a6ae2ef467c0f18ac10711e4cc59c5485d41df0e" + +[[package]] +name = "napi-derive" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da1c6a8fa84d549aa8708fcd062372bf8ec6e849de39016ab921067d21bde367" +dependencies = [ + "cfg-if", + "convert_case", + "napi-derive-backend", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "napi-derive-backend" +version = "1.0.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20bbc7c69168d06a848f925ec5f0e0997f98e8c8d4f2cc30157f0da51c009e17" +dependencies = [ + "convert_case", + "once_cell", + "proc-macro2", + "quote", + "regex", + "semver", + "syn 1.0.109", +] + +[[package]] +name = "napi-sys" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "166b5ef52a3ab5575047a9fe8d4a030cdd0f63c96f071cd6907674453b07bae3" +dependencies = [ + "libloading", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "png" +version = "0.17.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "proc-macro2" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rust" +version = "0.0.0" +dependencies = [ + "base64", + "clipboard-win", + "image", + "napi", + "napi-build", + "napi-derive", + "serde", + "serde_json", + "static_vcruntime", + "windows", +] + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" + +[[package]] +name = "serde" +version = "1.0.190" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.190" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "smallvec" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "static_vcruntime" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "954e3e877803def9dc46075bf4060147c55cd70db97873077232eae0269dc89b" + +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tiff" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] diff --git a/LICENSE b/LICENSE.txt similarity index 100% rename from LICENSE rename to LICENSE.txt diff --git a/README.md b/README.md index 3c9b771..afe1ec8 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,70 @@ +# 更新 + +消失了三个多月,我将`Dawn Launcher`代码进行重构,因为一开始没有开发`NodeJS`和`Electron`的经验,`Vue`也写的不好,代码写的有些潦草,所以进行了代码重构,新版使用了`Electron26 + Vite + Vue3 + TS`,UI 框架使用了`Naive`,关于原生 API 方面,我从`C++`切换到了 `Rust`,数据库从`electron-store`切换到了`SQLite3`,语言也新增了`英语`。 + # Dawn Launcher -Windows快捷启动工具,帮助您整理杂乱无章的桌面,分门别类管理您的桌面快捷方式,让您的桌面保持干净整洁。 -支持相对路径(便携路径),支持扫描本机开始菜单、本地Appx应用列表添加项目、支持多项目添加,一次启动多个项目、支持添加网址并一键获取网址信息。 -# 开发框架 -Electron +`Windows`快捷启动工具,帮助您整理杂乱无章的桌面,分门别类管理您的桌面快捷方式,让您的桌面保持干净整洁。 + +支持关联文件夹(实时同步文件夹内容)、快速搜索、相对路径(便携路径)、扫描本机开始菜单、本地扫描本机 Appx 应用列表、添加网址并一键获取网址信息。 + +# 技术栈 + +`Electron + Vite + Vue3 + TS` + # 支持平台 -Windows + +`Windows(10/11)` + # 编译步骤 -1. 需要配置 node-gyp 环境,这个可以自行搜索一下。 -2. yarn install 安装依赖。 -3. node-gyp rebuild --arch=x64 或 node-gyp rebuild --arch=ia32 编译64位或32位DLL。 -4. yarn electron:serve 本地运行项目。 -5. yarn electron:build 打包项目,打包64位和32位的时候,需要分两次打包,将 vue.config.js 配置中的 pluginOptions.electronBuilder.builderOptions.win.target.arch 修改为x64或者ia32。 + +1. 首先需要安装`node-gyp`,编译本地模块需要用到。 +2. 然后运行`yarn install`安装项目依赖(如果修改了`Rust`代码也需要重新运行`yarn install`)。 +3. `yarn run dev`本地运行项目。 +4. `yarn run build`打包项目。 +5. 便携版和安装版需要分两次打包,通过修改`.env.production`中的`VITE_INSTALL`,`true`为安装版,`false`为便携版。 + # 官网 + [dawnlauncher.com](https://dawnlauncher.com/) + # 捐赠 + ![微信](/images/wechat.png) ![支付宝](/images/alipay.png) + # 界面 -![界面](/images/界面.png) + +![界面](/images/soft1.png) + ## 子分类 -![子分类](/images/子分类.png) + +![子分类](/images/soft2.png) + ## 自定义主题 -![自定义主题](/images/自定义主题.png) + +![自定义主题](/images/soft3.png) + ## 自定义背景 -![自定义背景](/images/自定义背景.png) + +![自定义背景](/images/soft4.png) + ## 快速搜索 -![快速搜索](/images/快速搜索.gif) + +![快速搜索](/images/soft5.png) + ## 一键获取网址信息 -![一键获取网址信息](/images/一键获取网址信息.gif) + +![一键获取网址信息](/images/soft6.webp) + ## 相对路径(便携路径) -![相对路径(便携路径)](/images/相对路径.png) + +![相对路径(便携路径)](/images/soft7.png) + ## 关联文件夹 -![关联文件夹](/images/关联文件夹.gif) + +![关联文件夹](/images/soft8.webp) + # License + Apache License Version 2.0 diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index ca2a3c1..0000000 --- a/babel.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - presets: ["@vue/cli-plugin-babel/preset"], - plugins: [], -}; diff --git a/binding.gyp b/binding.gyp deleted file mode 100644 index 5c01172..0000000 --- a/binding.gyp +++ /dev/null @@ -1,14 +0,0 @@ -{ - "targets": [ - { - "target_name": "api", - "cflags!": [ "-fno-exceptions" ], - "cflags_cc!": [ "-fno-exceptions" ], - "sources": [ "./src/main/api/api.cc" ], - "include_dirs": [ - " { + return '与"' + value + '"分类快捷键产生冲突,请重新设置。'; + }, + shortcutKeyPrompt3: (value: string) => { + return '与"' + value + '"项目快捷键产生冲突,请重新设置。'; + }, + shortcutKeyPrompt4: + '与"设置-常规"中的"显示/隐藏"快捷键产生冲突,请重新设置。', + shortcutKeyPrompt5: '与"设置-常规"中的"搜索"快捷键产生冲突,请重新设置。', + shortcutKeyPrompt6: + '与"设置-快速搜索"中的"显示/隐藏"快捷键产生冲突,请重新设置。', + show: "显示", + showFollowMousePosition: "显示时跟随鼠标位置", + showHide: "显示/隐藏", + showOnlyFiles: "只显示文件", + showOnlyFolders: "只显示文件夹", + shutdown: "关机", + simplifiedChinese: "简体中文", + size: "尺寸", + sleep: "睡眠", + small: "小", + sort: "排序", + startLocation: "起始位置", + startMenu: "开始菜单", + startup: "启动", + startupTray: "启动后最小化到系统托盘", + subclassification: "子分类", + svgIcon: "SVG图标", + svgIconPrompt1: "输入SVG代码后,需要先点击“校验代码”按钮。", + switch: "切换", + switchClassificationCollapseOtherSubClassification: + "切换分类时收起其他子分类", + switchEnglish: "显示窗口时将输入法切换为英文模式", + system: "系统", + target: "目标", + taskManager: "任务管理器", + theme: "主题", + timeInterval: "时间间隔", + tile: "平铺", + title: "标题", + top: "顶部", + traditionalChinese: "繁体中文", + turnOffMonitor: "关闭显示器", + unlockClassification: "解锁分类", + unlockItem: "解锁项目", + uploadIcon: "上传图标", + url: "网址", + useItemOpen: "从程序外拖动文件到项目图标上时用此项目打开文件", + useProxy: "使用代理", + useQuickSearch: "使用快速搜索", + username: "用户名", + update: "更新", + webSearch: "网络搜索", + webSearchModePrompt1: + '输入"冒号 + 关键字 + 空格"或"关键字 + 空格"使用网络搜索,例如使用谷歌搜索,输入":g"或"g",然后按下空格键,进入网络搜索模式。', + webSearchModePrompt2: "{w}为搜索关键字。", + width: "宽度", + window: "窗口", + zoom: "缩放", +}; + +let traditionalChinese = { + about: "關於", + add: "新增", + address: "地址", + aggregateClassification: "聚合分類", + aggregateClassificationPrompt1: + "聚合分類可以將所有分類下的項目聚合到一起,按照設定的排序方式、項目數量進行排序和顯示。", + aggregateClassificationPrompt2: "當前分類為父級分類,不能設置聚合分類。", + aggregateClassificationPrompt3: + "當前設置排序為按打開次數,需開啟設置-項目-記錄打開次數。", + aggregateClassificationPrompt4: + "設置聚合分類會清空原分類下所有項目,請謹慎操作,是否確認?", + align: "對齊", + all: "全部", + altNumberKey: "Alt + 數字鍵", + alwaysCenter: "永遠居中", + alwaysTop: "永遠置頂", + appearance: "外觀", + appx: "Appx", + associateFolder: "關聯文件夾", + associateFolderPrompt1: + "關聯文件夾可以實時監控指定文件夾內的變化並同步到對應分類中。", + associateFolderPrompt2: "需要隱藏的文件/文件夾名稱,多個按英文逗號分割", + associateFolderPrompt3: "當前分類為父級分類,不能設置關聯文件夾。", + associateFolderPrompt4: "目標路徑不存在。", + associateFolderPrompt5: "目標路徑必須是文件夾。", + associateFolderPrompt6: + "設置關聯文件夾會清空原分類下所有項目,請謹慎操作,是否確認?", + associateFolderPrompt7: + "目標路徑為空,當前分類將會自動轉換為普通分類,是否確認?", + autoSwitchClassification: "項目列表滾動到底部或頂部時自動切換分類", + backgroundIcon: "背景圖標", + backgroundImage: "背景圖", + backgroundImageMode: "背景圖模式", + backgroundImagePostion: "背景圖定位", + backgroundImageTransparent: "背景圖透明", + backgroundTransparent: "背景透明", + backup: "備份", + backupRestoreData: "備份/還原數據", + backupRestoreDataPrompt: + "如果要還原1.2.3及之前版本的備份數據,請在還原時選擇導入JSON格式的文件。", + batchConvertAbsolutePath: "轉為絕對路徑", + batchConvertRelativePath: "轉為相對路徑", + batchCopyTo: "批量復製到", + batchDelete: "批量刪除", + batchDeletePrompt: "是否批量刪除項目?", + batchMoveTo: "批量移動到", + batchOperation: "批量操作", + batchRefreshIcon: "批量刷新圖標", + borderColor: "邊框顏色", + bottom: "底部", + byInitialLetter: "按首字母", + byLastOpen: "按最後打開", + byOpenNumber: "按打開次數", + calculator: "計算器", + cancel: "取消", + cancelBatchOperation: "取消批量操作", + center: "居中", + checkCode: "校驗代碼", + checkInvalidItem: "檢查無效項目", + checkUpdates: "檢查更新", + checkUpdatesPrompt1: '檢查到有新版本,點擊"確定"跳轉官網下載最新版本。', + checkUpdatesPrompt2: "當前已經是最新版本。", + checkUpdatesPrompt3: "檢查更新失敗,請確認網絡。", + classification: "分類", + clear: "清空", + close: "關閉", + colon: ":", + colonKeywordSpace: "冒號 + 關鍵字 + 空格", + color: "顏色", + columnNumber: "列數", + commandPrompt: "命令提示符", + computer: "計算機", + computerManagement: "計算機管理", + controlPanel: "控製面板", + convertAbsolutePath: "轉為絕對路徑", + convertRelativePath: "轉為相對路徑", + copyFullPath: "復製完整路徑", + copyTo: "復製到", + createShortcut: "創建快捷方式", + ctrlNumberKey: "Ctrl + 數字鍵", + default: "默認", + defaultIcon: "默認圖標", + delayDisplay: "延遲顯示", + delayHide: "延遲隱藏", + delete: "刪除", + deleteClassificationPrompt: "是否刪除當前分類?", + deleteIcon: "刪除圖標", + deleteItemPrompt: "是否刪除當前項目?", + description: "描述", + display: "顯示", + displayMainWindow: "顯示主界面", + documents: "文檔", + doubleClickOpen: "雙擊打開", + doubleClickTaskbar: "雙擊任務欄", + downloadImagePrompt1: "下載圖片失敗。", + downloadImagePrompt2: "鏈接不是圖片格式。", + dontPromptAgain: "不再提示", + edgeAutoHide: "停靠在桌面邊緣時自動隱藏", + edgeDock: "邊緣吸附", + edit: "編輯", + editClassification: "編輯分類", + editItem: "編輯項目", + editSubclassification: "編輯子分類", + emptyRecycleBin: "清空回收站", + enable: "啟用", + english: "英語", + excludeSearch: "排除搜索", + exit: "退出", + explorerMenu: "資源管理器菜單", + exportIcon: "導出圖標", + extraLarge: "超大", + feedback: "反饋", + file: "文件", + fileExplorer: "文件資源管理器", + fixedClassification: "固定分類", + fixedIcon: "固定圖標", + fixedPosition: "固定位置", + folder: "文件夾", + folderPath: "文件夾路徑", + fontLineHeight: "字體行高", + fontMainColor: "字體主色", + fontSecondaryColor: "字體副色", + fontShadow: "字體陰影", + fontSize: "字體大小", + fontWeight: "字體粗細", + functions: "功能", + general: "常規", + getIcon: "獲取圖標", + getURLInformation: "獲取網址信息", + globalShortcutKey: "全局快捷鍵", + hiddenItems: "隱藏項", + hideEllipses: "隱藏省略號", + hideLoseFocus: "失去焦點後隱藏", + hideName: "隱藏名稱", + hideTray: "隱藏托盤圖標", + hideWindowCollapseSubClassification: "隱藏窗口時收起子分類", + history: "歷史記錄", + hover: "懸停", + icon: "圖標", + imageLink: "圖片鏈接", + item: "項目", + itemAddEditPrompt1: "選中固定圖標後,當前項目不參與刷新圖標。", + itemAddEditPrompt2: "無特殊需求為空即可", + itemAddEditPrompt3: "添加成功。", + itemAddEditPrompt4: "目標不存在。", + itemAddEditPrompt5: "獲取網址信息失敗。", + itemList: "項目列表", + keyword: "關鍵字", + keywordSpace: "關鍵字 + 空格", + language: "語言", + large: "大", + layout: "布局", + layoutListModeTakeEffect: '布局為"列表"模式下生效。', + layoutTileModeTakeEffect: '布局為"平鋪"模式下生效。', + left: "左側", + lineNumber: "行數", + list: "列表", + lock: "鎖定", + lockClassification: "鎖定分類", + lockItem: "鎖定項目", + lockSize: "鎖定尺寸", + mainColor: "主色", + matchCondition: "匹配條件", + medium: "中", + middleClick: "中鍵單擊", + millisecond: "毫秒", + mode: "模式", + modifyIcon: "修改圖標", + mouseHover: "鼠標懸停", + mouseWheel: "鼠標滾輪", + moveTo: "移動到", + multiItems: "多項目", + name: "名稱", + network: "網絡", + networkIcon: "網絡圖標", + networkIconPrompt1: "支持JPG/JPEG/GIF/PNG/ICO/SVG/WEBP格式圖片。", + networkShareCenter: "網絡和共享中心", + newClassification: "新建分類", + newClassificationName: "新分類", + newItem: "新建項目", + newSubclassification: "新建子分類", + none: "無", + noRepeat: "不重復", + normal: "普通", + notDisturb: "勿擾模式", + notDisturbPrompt: + "開啟勿擾模式後,計算機在遊戲、應用全屏模式下不會彈出Dawn Launcher窗口。", + notFoundFile: "找不到指定的文件", + notFoundFolder: "找不到指定的文件夾", + number: "數量", + numberKey: "數字鍵", + officialWebsite: "官方網站", + ok: "確定", + open: "打開", + openAfterHideMainInterface: "打開後隱藏主界面", + openAfterHideQuickSearchWindow: "打開後隱藏窗口", + openFileLocation: "打開文件所在位置", + openNow: "僅剩一項時立即打開", + openNumber: "打開次數", + parameters: "參數", + password: "密碼", + pasteIcon: "粘貼圖標", + powerOptions: "電源選項", + programsFeatures: "程序和功能", + proxy: "代理", + proxyPrompt: + "僅支持HTTP代理,填寫「地址」時需要帶通信協議和端口,例如:http://127.0.0.1:7890,如果沒有用戶名和密碼,為空即可。", + quickSearch: "快速搜索", + recordOpenNumber: "記錄打開次數", + recycleBin: "回收站", + refreshIcon: "刷新圖標", + registryEditor: "註冊表編輯器", + remark: "備註", + rememberSelectionState: "記住選擇狀態", + repeat: "重復", + resourceMonitor: "資源監視器", + restart: "重啟", + restore: "還原", + restoreDataPrompt: "還原數據失敗。", + rewardSponsor: "打賞&贊助", + right: "右側", + roundedCorners: "圓角", + runAsAdministrator: "以管理員身份運行", + runSystemStartup: "開機啟動", + save: "保存", + search: "搜索", + searchSource: "搜索源", + secondaryColor: "副色", + select: "選擇", + selectAll: "全選", + selectItem: "選擇項目", + services: "服務", + setClassificationIcon: "設置分類圖標", + setIcon: "設置圖標", + settings: "設置", + shortcutKey: "快捷鍵", + shortcutKeyPrompt1: "快捷鍵不完整,請完善快捷鍵。", + shortcutKeyPrompt2: (value: string) => { + return '與"' + value + '"分類快捷鍵產生沖突,請重新設置。'; + }, + shortcutKeyPrompt3: (value: string) => { + return '與"' + value + '"項目快捷鍵產生沖突,請重新設置。'; + }, + shortcutKeyPrompt4: + '與"設置-常規"中的"顯示/隱藏"快捷鍵產生沖突,請重新設置。', + shortcutKeyPrompt5: '與"設置-常規"中的"搜索"快捷鍵產生沖突,請重新設置。', + shortcutKeyPrompt6: + '與"設置-快速搜索"中的"顯示/隱藏"快捷鍵產生沖突,請重新設置。', + show: "顯示", + showFollowMousePosition: "顯示時跟隨鼠標位置", + showHide: "顯示/隱藏", + showOnlyFiles: "只顯示文件", + showOnlyFolders: "只顯示文件夾", + shutdown: "關機", + simplifiedChinese: "簡體中文", + size: "尺寸", + sleep: "睡眠", + small: "小", + sort: "排序", + startLocation: "起始位置", + startMenu: "開始菜單", + startup: "啟動", + startupTray: "啟動後最小化到系統托盤", + subclassification: "子分類", + svgIcon: "SVG圖標", + svgIconPrompt1: "輸入SVG代碼後,需要先點擊「校驗代碼」按鈕。", + switch: "切換", + switchClassificationCollapseOtherSubClassification: + "切換分類時收起其他子分類", + switchEnglish: "顯示窗口時將輸入法切換為英文模式", + system: "系統", + target: "目標", + taskManager: "任務管理器", + theme: "主題", + timeInterval: "時間間隔", + tile: "平鋪", + title: "標題", + top: "頂部", + traditionalChinese: "繁體中文", + turnOffMonitor: "關閉顯示器", + unlockClassification: "解鎖分類", + unlockItem: "解鎖項目", + uploadIcon: "上傳圖標", + url: "網址", + useItemOpen: "從程序外拖動文件到項目圖標上時用此項目打開文件", + useProxy: "使用代理", + useQuickSearch: "使用快速搜索", + username: "用戶名", + update: "更新", + webSearch: "網絡搜索", + webSearchModePrompt1: + '輸入"冒號 + 關鍵字 + 空格"或"關鍵字 + 空格"使用網絡搜索,例如使用谷歌搜索,輸入":g"或"g",然後按下空格鍵,進入網絡搜索模式。', + webSearchModePrompt2: "{w}為搜索關鍵字。", + width: "寬度", + window: "窗口", + zoom: "縮放", +}; + +// 英语 +let english = { + about: "About", + add: "Add", + address: "Address", + aggregateClassification: "Aggregate Classification", + aggregateClassificationPrompt1: + "Aggregation classification can aggregate items under all categories together, sort and display them according to the set sorting method and number of items.", + aggregateClassificationPrompt2: + "The current classification is the parent classification, and aggregate classification cannot be set.", + aggregateClassificationPrompt3: + "The current settings are sorted by the number of opens. You need to enable Settings-Item-Open Count the number of opens.", + aggregateClassificationPrompt4: + "Setting an aggregation classification will clear all items under the original classification. Please operate with caution. Are you sure?", + align: "Align", + all: "All", + altNumberKey: "Alt + Number Key", + alwaysCenter: "Always Center", + alwaysTop: "Always Top", + appearance: "Appearance", + appx: "Appx", + associateFolder: "Associate Folder", + associateFolderPrompt1: + "Associate folder can monitor changes in the specified folder in real time and synchronize them to the corresponding classification.", + associateFolderPrompt2: + "Name of the file/folder to be hidden, multiple separated by commas", + associateFolderPrompt3: + "The current classification is the parent classification and associate folder cannot be set.", + associateFolderPrompt4: "The target path does not exist.", + associateFolderPrompt5: "The destination path must be a folder.", + associateFolderPrompt6: + "Setting the associate folder will clear all items under the original classification. Please operate with caution. Are you sure?", + associateFolderPrompt7: + "The target path is empty. The current classification will be automatically converted to a normal classification. Are you sure?", + autoSwitchClassification: "Auto Switch Classification on Scroll", + backgroundIcon: "Background Icon", + backgroundImage: "Background Image", + backgroundImageMode: "Background Image Mode", + backgroundImagePostion: "Background Image Postion", + backgroundImageTransparent: "Background Image Transparent", + backgroundTransparent: "Background Transparent", + backup: "Backup", + backupRestoreData: "Backup/Restore Data", + backupRestoreDataPrompt: + "If you want to restore the backup data of versions 1.2.3 and earlier, please choose to import a file in JSON format when restoring.", + batchConvertAbsolutePath: "Batch Convert to Absolute Path", + batchConvertRelativePath: "Batch Convert to Relative Path", + batchCopyTo: "Batch Copy to", + batchDelete: "Batch Delete", + batchDeletePrompt: "Delete items in batches?", + batchMoveTo: "Batch Move to", + batchOperation: "Batch Operation", + batchRefreshIcon: "Batch Refresh Icon", + borderColor: "Border Color", + bottom: "Bottom", + byInitialLetter: "by Initial Letter", + byLastOpen: "by Last Open", + byOpenNumber: "by Open Count", + calculator: "Calculator", + cancel: "Cancel", + cancelBatchOperation: "Cancel Batch Operation", + center: "Center", + checkCode: "Check Code", + checkInvalidItem: "Check for Invalid Items", + checkUpdates: "Check Updates", + checkUpdatesPrompt1: + 'Check that there is a new version, click "OK" to jump to the official website to download the latest version.', + checkUpdatesPrompt2: "It is currently the latest version.", + checkUpdatesPrompt3: + "Failed to check for updates, please confirm the network.", + classification: "Classification", + clear: "Clear", + close: "Close", + colon: ": ", + colonKeywordSpace: "Colon + Keyword + Space", + color: "Color", + columnNumber: "Column Number", + commandPrompt: "Command Prompt", + computer: "Computer", + computerManagement: "Computer Management", + controlPanel: "Control Panel", + convertAbsolutePath: "Convert to Absolute Path", + convertRelativePath: "Convert to Relative Path", + copyFullPath: "Copy Full Path", + copyTo: "Copy to", + createShortcut: "Create Shortcut", + ctrlNumberKey: "Ctrl + Number Key", + default: "Default", + defaultIcon: "Default Icon", + delayDisplay: "Delay Display", + delayHide: "Delay Hide", + delete: "Delete", + deleteClassificationPrompt: "Delete current classification?", + deleteIcon: "Delete Icon", + deleteItemPrompt: "Delete current item?", + description: "Description", + display: "Display", + displayMainWindow: "Display Main Interface", + documents: "Documents", + doubleClickOpen: "Double Click Open", + doubleClickTaskbar: "Double Click Taskbar", + downloadImagePrompt1: "Failed to download image.", + downloadImagePrompt2: "The link is not in image format.", + dontPromptAgain: "Don't prompt again", + edgeAutoHide: "Auto Hide at Desktop Edge", + edgeDock: "Edge Dock", + edit: "Edit", + editClassification: "Edit Classification", + editItem: "Edit Item", + editSubclassification: "Edit Subclassification", + emptyRecycleBin: "Empty Recycle Bin", + enable: "Enable", + english: "English", + excludeSearch: "Exclude Search", + exit: "Exit", + explorerMenu: "Explorer Menu", + exportIcon: "Export Icon", + extraLarge: "Extra Large", + feedback: "Feedback", + file: "File", + fileExplorer: "File Explorer", + fixedClassification: "Fixed Classification", + fixedIcon: "Fixed Icon", + fixedPosition: "Fixed Position", + folder: "Folder", + folderPath: "Folder Path", + fontLineHeight: "Font Line Height", + fontMainColor: "Font Main Color", + fontSecondaryColor: "Font Secondary Color", + fontShadow: "Font Shadow", + fontSize: "Font Size", + fontWeight: "Font Weight", + functions: "Functions", + general: "General", + getIcon: "Get Icon", + getURLInformation: "Get URL Information", + globalShortcutKey: "Global Shortcut Key", + hiddenItems: "Hidden Items", + hideEllipses: "Hide Ellipses", + hideLoseFocus: "Hide After Lose Focus", + hideName: "Hide Name", + hideTray: "Hide Tray", + hideWindowCollapseSubClassification: + "Collapse Subclassification when Hide Window", + history: "History", + hover: "Hover", + icon: "Icon", + imageLink: "Image Link", + item: "Item", + itemAddEditPrompt1: + "After selecting the fixed icon, the current project will not participate in refreshing the icon.", + itemAddEditPrompt2: "Leave it blank if there are no special requirements", + itemAddEditPrompt3: "Add successfully.", + itemAddEditPrompt4: "The target does not exist.", + itemAddEditPrompt5: "Failed to obtain URL information.", + itemList: "Item List", + keyword: "Keyword", + keywordSpace: "Leyword + Space", + language: "Language", + large: "Large", + layout: "Layout", + layoutListModeTakeEffect: 'Effective when the layout is in "list" mode.', + layoutTileModeTakeEffect: 'Effective when the layout is in "tile" mode.', + left: "Left", + lineNumber: "Number of Lines", + list: "List", + lock: "Lock", + lockClassification: "Lock Classification", + lockItem: "Lock Item", + lockSize: "Lock Size", + mainColor: "Main Color", + matchCondition: "Match Condition", + medium: "Medium", + middleClick: "Middle Click", + millisecond: "Millisecond", + mode: "Mode", + modifyIcon: "Modify Icon", + mouseHover: "Mouse Hover", + mouseWheel: "Mouse Wheel", + moveTo: "Move to", + multiItems: "Multi Items", + name: "Name", + network: "Network", + networkIcon: "Network Icon", + networkIconPrompt1: "Supports JPG/JPEG/GIF/PNG/ICO/SVG/WEBP format images.", + networkShareCenter: "Network Share Center", + newClassification: "New Classification", + newClassificationName: "New Classification", + newItem: "New Item", + newSubclassification: "New Subclassification", + none: "None", + noRepeat: "No Repeat", + normal: "Normal", + notDisturb: "Not Disturb Mode", + notDisturbPrompt: + "After turning on Do Not Disturb mode, the Dawn Launcher window will not pop up when the computer is in full-screen mode for games or applications.", + notFoundFile: "The file specified cannot be found", + notFoundFolder: "The specified folder cannot be found", + number: "Number", + numberKey: "Number Key", + officialWebsite: "Official Website", + ok: "OK", + open: "Open", + openAfterHideMainInterface: "Hide Main Interface After Open", + openAfterHideQuickSearchWindow: "Hide Window After Open", + openFileLocation: "Open File Location", + openNow: "Open when Only One Item", + openNumber: "Open Count", + parameters: "Parameters", + password: "Password", + pasteIcon: "Paste Icon", + powerOptions: "Power Options", + programsFeatures: "Programs Features", + proxy: "Proxy", + proxyPrompt: + 'Only HTTP proxy is supported. When filling in the "address", you need to include the communication protocol and port, for example: http://127.0.0.1:7890. If there is no username and password, just leave it blank.', + quickSearch: "Quick Search", + recordOpenNumber: "Record Open Count", + recycleBin: "Recycle Bin", + refreshIcon: "Refresh Icon", + registryEditor: "Registry Editor", + remark: "Remark", + rememberSelectionState: "Remember Selection State", + repeat: "Repeat", + resourceMonitor: "Resource Monitor", + restart: "Restart", + restore: "Restore", + restoreDataPrompt: "Failed to restore data.", + rewardSponsor: "Reward&Sponsor", + right: "Right", + roundedCorners: "Rounded Corners", + runAsAdministrator: "Run as Administrator", + runSystemStartup: "Run System Startup", + save: "Save", + search: "Search", + searchSource: "Search Source", + secondaryColor: "Secondary Color", + select: "Select", + selectAll: "Select All", + selectItem: "Select Item", + services: "Services", + setClassificationIcon: "Set Classification Icon", + setIcon: "Set Icon", + settings: "Settings", + shortcutKey: "Shortcut Key", + shortcutKeyPrompt1: + "The shortcut keys are incomplete, please improve the shortcut keys.", + shortcutKeyPrompt2: (value: string) => { + return ( + "There is a conflict with the " + + value + + " classification shortcut keys, please reset." + ); + }, + shortcutKeyPrompt3: (value: string) => { + return ( + "There is a conflict with the " + + value + + " item shortcut keys, please reset." + ); + }, + shortcutKeyPrompt4: + 'It conflicts with the "Show/Hide" shortcut key in "Settings-General", please reset it.', + shortcutKeyPrompt5: + 'It conflicts with the "Search" shortcut key in "Settings-General", please reset it.', + shortcutKeyPrompt6: + 'It conflicts with the "Show/Hide" shortcut key in "Settings-Quick Search", please reset it.', + show: "Show", + showFollowMousePosition: "Follows Mouse Position on Display", + showHide: "Show/Hide", + showOnlyFiles: "Show Only Files", + showOnlyFolders: "Show Only Folders", + shutdown: "Shutdown关机", + simplifiedChinese: "Simplified Chinese", + size: "Size", + sleep: "Sleep", + small: "Small", + sort: "Sort", + startLocation: "Start Location", + startMenu: "Start Menu", + startup: "Startup", + startupTray: "Minimize to System Tray on Startup", + subclassification: "Subclassification", + svgIcon: "SVG Icon", + svgIconPrompt1: + 'After entering the SVG code, you need to click the "Check Code" button first.', + switch: "Switch", + switchClassificationCollapseOtherSubClassification: + "Collapse Other Subclassification on Classification Switch", + switchEnglish: "Switch to English Input on Window Display", + system: "System", + target: "Target", + taskManager: "Task Manager", + theme: "Theme", + timeInterval: "Time Interval", + tile: "Tile", + title: "Title", + top: "Top", + traditionalChinese: "Traditional Chinese", + turnOffMonitor: "Turn Off Monitor", + unlockClassification: "Unlock Classification", + unlockItem: "Unlock Item", + uploadIcon: "Upload Icon", + url: "URL", + useItemOpen: "Use This Item to Open Dragged Files", + useProxy: "Use Proxy", + useQuickSearch: "Use Quick Search", + username: "Username", + update: "Update", + webSearch: "Web Search", + webSearchModePrompt1: + 'Enter "Colon + Keyword + Space" or "Keyword + Space" to use a web search, such as using Google search, enter ":g" or "g", and then press the space bar to enter web search mode.', + webSearchModePrompt2: "{w} is the search keyword.", + width: "Width", + window: "Window", + zoom: "Zoom", +}; + +/** + * 获取语言 + * @param language + * @returns + */ +function getLanguage(language: string | null) { + if (language === "SimplifiedChinese") { + return simplifiedChinese; + } else if (language === "TraditionalChinese") { + return traditionalChinese; + } else if (language === "English") { + return english; + } + return simplifiedChinese; +} + +export { getLanguage }; diff --git a/commons/data/theme.d.ts b/commons/data/theme.d.ts new file mode 100644 index 0000000..456064b --- /dev/null +++ b/commons/data/theme.d.ts @@ -0,0 +1,4 @@ +// 无用,为了tsc编译通过 +import { Theme } from "../../types/setting"; + +export const themeList: Array; diff --git a/commons/data/theme.ts b/commons/data/theme.ts new file mode 100644 index 0000000..4d25df2 --- /dev/null +++ b/commons/data/theme.ts @@ -0,0 +1,86 @@ +import { Theme } from "../../types/setting"; + +const themeList: Array = [ + { + name: "#FFFFFF", + mainFontColor: "#505050FF", + secondFontColor: "#505050FF", + mainBackgroundColor: "#FFFFFFFF", + secondBackgroundColor: "#DCDEDFFF", + borderColor: "#F0F0F0FF", + }, + { + name: "#2B2B2B", + mainFontColor: "#BBBBBBFF", + secondFontColor: "#BBBBBBFF", + mainBackgroundColor: "#2B2B2BFF", + secondBackgroundColor: "#3C3F41FF", + borderColor: "#3C3F41FF", + }, + { + name: "#508CC8", + mainFontColor: "#FFFFFFFF", + secondFontColor: "#FFFFFFFF", + mainBackgroundColor: "#508CC8FF", + secondBackgroundColor: "#6FA0D2FF", + borderColor: "#6FA0D2FF", + }, + { + name: "#024351", + mainFontColor: "#FFFFFFFF", + secondFontColor: "#FFFFFFFF", + mainBackgroundColor: "#024351FF", + secondBackgroundColor: "#025A6CFF", + borderColor: "#025A6CFF", + }, + { + name: "#516FA3", + mainFontColor: "#FFFFFFFF", + secondFontColor: "#FFFFFFFF", + mainBackgroundColor: "#516FA3FF", + secondBackgroundColor: "#91A8D0FF", + borderColor: "#91A8D0FF", + }, + { + name: "#45326E", + mainFontColor: "#FFFFFFFF", + secondFontColor: "#FFFFFFFF", + mainBackgroundColor: "#45326EFF", + secondBackgroundColor: "#5F4B8BFF", + borderColor: "#5F4B8BFF", + }, + { + name: "#693030", + mainFontColor: "#FFFFFFFF", + secondFontColor: "#FFFFFFFF", + mainBackgroundColor: "#693030FF", + secondBackgroundColor: "#955151FF", + borderColor: "#803A3AFF", + }, + { + name: "#9F2F4A", + mainFontColor: "#FFFFFFFF", + secondFontColor: "#FFFFFFFF", + mainBackgroundColor: "#9F2F4AFF", + secondBackgroundColor: "#EA6F8CFF", + borderColor: "#AD3350FF", + }, + { + name: "#000000,#FFDB00", + mainFontColor: "#B3B3B3FF", + secondFontColor: "#000000FF", + mainBackgroundColor: "#000000FF", + secondBackgroundColor: "#FFDB00FF", + borderColor: "#1D1D1DFF", + }, + { + name: "#000000,#FFFFFF", + mainFontColor: "#B3B3B3FF", + secondFontColor: "#000000FF", + mainBackgroundColor: "#000000FF", + secondBackgroundColor: "#FFFFFFFF", + borderColor: "#1D1D1DFF", + }, +]; + +export { themeList }; diff --git a/commons/data/webSearchSource.d.ts b/commons/data/webSearchSource.d.ts new file mode 100644 index 0000000..155e4dc --- /dev/null +++ b/commons/data/webSearchSource.d.ts @@ -0,0 +1,4 @@ +// 无用,为了tsc编译通过 +import { WebSearchSource } from "../../types/setting"; + +export const webSearchSourceList: Array; diff --git a/commons/data/webSearchSource.ts b/commons/data/webSearchSource.ts new file mode 100644 index 0000000..7d2efd9 --- /dev/null +++ b/commons/data/webSearchSource.ts @@ -0,0 +1,41 @@ +import { WebSearchSource } from "../../types/setting"; + +const webSearchSourceList: Array = [ + { + id: 1, + keyword: "g", + name: "Google", + url: "https://www.google.com/search?q={w}", + description: null, + }, + { + id: 2, + keyword: "b", + name: "Baidu", + url: "https://www.baidu.com/s?wd={w}", + description: null, + }, + { + id: 3, + keyword: "bing", + name: "Bing", + url: "https://cn.bing.com/search?q={w}", + description: null, + }, + { + id: 4, + keyword: "so", + name: "360", + url: "https://www.so.com/s?q={w}", + description: null, + }, + { + id: 5, + keyword: "sogou", + name: "Sogou", + url: "https://www.sogou.com/web?query={w}", + description: null, + }, +]; + +export { webSearchSourceList }; diff --git a/commons/utils/common.d.ts b/commons/utils/common.d.ts new file mode 100644 index 0000000..47e6409 --- /dev/null +++ b/commons/utils/common.d.ts @@ -0,0 +1,71 @@ +// 无用,为了tsc编译通过 +import { Classification, ClassificationData } from "../../types/classification"; +import { CommonItem, CommonItemData, Item, ItemData } from "../../types/item"; + +export function convert(from: F): T; +export function isAbsolutePath(path: string): boolean; +export function deleteExtname(name: string | null): string | null; +export function getFileName(path: string | null): string | null; +export function getFileExtname(path: string | null): string | null; +export function newClassification(data: { + id?: number | null; + parentId?: number | null; + name?: string | null; + type?: number | null; + data?: ClassificationData | null; + shortcutKey?: string | null; + globalShortcutKey?: boolean | null; + order?: number | null; + childList?: Array | null; +}): Classification; +export function newClassificationData(data: { + icon?: string | null; + associateFolderPath?: string | null; + associateFolderHiddenItems?: string | null; + itemLayout?: "default" | "tile" | "list"; + itemSort?: "default" | "initial" | "openNumber" | "lastOpen"; + itemColumnNumber?: number | null; + itemIconSize?: number | null; + itemShowOnly?: "default" | "file" | "folder"; + fixed?: boolean | null; + aggregateItemCount?: number | null; +}): ClassificationData; +export function newCommonItem(data: { + id?: number | null; + name?: string | null; + data?: CommonItemData | null; + order?: number | null; +}): CommonItem; +export function newCommonItemData(data: { + target?: string | null; + params?: string | null; + icon?: string | null; + htmlIcon?: string | null; +}): CommonItemData; +export function newItem(data: { + id?: number | null; + classificationId: number; + name?: string | null; + type?: number | null; + data?: ItemData | null; + shortcutKey?: string | null; + globalShortcutKey?: boolean | null; + order?: number | null; +}): Item; +export function newItemData(data: { + startLocation?: string | null; + target?: string | null; + params?: string | null; + runAsAdmin?: boolean | null; + icon?: string | null; + htmlIcon?: string | null; + remark?: string | null; + iconBackgroundColor?: boolean | null; + fixedIcon?: boolean | null; + openNumber?: number | null; + lastOpen?: number | null; + quickSearchOpenNumber?: number | null; + quickSearchLastOpen?: number | null; + multiItemsTimeInterval?: number | null; +}): ItemData; +export function getItemName(name: string | null): string; diff --git a/commons/utils/common.ts b/commons/utils/common.ts new file mode 100644 index 0000000..164f482 --- /dev/null +++ b/commons/utils/common.ts @@ -0,0 +1,308 @@ +import { Classification, ClassificationData } from "../../types/classification"; +import { CommonItem, CommonItemData, Item, ItemData } from "../../types/item"; + +/** + * 转换 + */ +function convert(from: F): T { + return JSON.parse(JSON.stringify(from)) as T; +} + +/** + * 是否是绝对路径 + * @param path + * @returns + */ +function isAbsolutePath(path: string) { + const regex = /^[a-zA-Z]:\\/; + return regex.test(path); +} + +/** + * 删除文件后缀 + * @param name + * @returns + */ +function deleteExtname(name: string | null) { + if (name && name.trim() !== "") { + if (name.indexOf(".") > 0) { + return name.substring(0, name.lastIndexOf(".")); + } else { + return name; + } + } + return null; +} + +/** + * 获取文件名 + * @param path + * @returns + */ +function getFileName(path: string | null) { + if (path && path.trim() !== "") { + let split = path.split("\\"); + return split[split.length - 1]; + } else { + return null; + } +} + +/** + * 获取文件拓展名 + * @param path + * @returns + */ +function getFileExtname(path: string | null) { + // 获取文件名 + let fileName = getFileName(path); + if (fileName && fileName.trim() !== "") { + if (fileName.indexOf(".") >= 0) { + return fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); + } + } + return null; +} + +/** + * 初始化CLassification + * @returns + */ +function newClassification({ + id = null, + parentId = null, + name = null, + type = null, + data = null, + shortcutKey = null, + globalShortcutKey = false, + order = null, + childList = null, +}: { + id?: number | null; + parentId?: number | null; + name?: string | null; + type?: number | null; + data?: ClassificationData | null; + shortcutKey?: string | null; + globalShortcutKey?: boolean | null; + order?: number | null; + childList?: Array | null; +}): Classification { + return { + id: id ?? 0, + parentId: parentId ?? null, + name: name ?? null, + type: type ?? 0, + data: data ? newClassificationData(data) : newClassificationData({}), + shortcutKey: shortcutKey ?? null, + globalShortcutKey: globalShortcutKey ?? false, + order: order ?? 0, + childList: childList ?? null, + }; +} + +/** + * 初始化ClassificationData + * @returns + */ +function newClassificationData({ + icon = null, + associateFolderPath = null, + associateFolderHiddenItems = null, + itemLayout = "default", + itemSort = "default", + itemColumnNumber = null, + itemIconSize = null, + itemShowOnly = "default", + fixed = false, + aggregateItemCount = 50, + excludeSearch = false, +}: { + icon?: string | null; + associateFolderPath?: string | null; + associateFolderHiddenItems?: string | null; + itemLayout?: "default" | "tile" | "list"; + itemSort?: "default" | "initial" | "openNumber" | "lastOpen"; + itemColumnNumber?: number | null; + itemIconSize?: number | null; + itemShowOnly?: "default" | "file" | "folder"; + fixed?: boolean | null; + aggregateItemCount?: number | null; + excludeSearch?: boolean | null; +}): ClassificationData { + return { + icon: icon ?? null, + associateFolderPath: associateFolderPath ?? null, + associateFolderHiddenItems: associateFolderHiddenItems ?? null, + itemLayout: itemLayout ?? "default", + itemSort: itemSort ?? "default", + itemColumnNumber: itemColumnNumber ?? null, + itemIconSize: itemIconSize ?? null, + itemShowOnly: itemShowOnly ?? "default", + fixed: fixed ?? false, + aggregateItemCount: aggregateItemCount ?? 50, + excludeSearch: excludeSearch ?? false, + }; +} + +/** + * 初始化CommonItem + * @returns + */ +function newCommonItem({ + id = null, + name = null, + data = null, + order = null, +}: { + id?: number | null; + name?: string | null; + data?: CommonItemData | null; + order?: number | null; +}): CommonItem { + return { + id: id ?? 0, + name: name ?? null, + data: data ? newCommonItemData(data) : newCommonItemData({}), + order: order ?? 0, + }; +} + +/** + * 初始化CommonItemData + * @returns + */ +function newCommonItemData({ + target = null, + params = null, + icon = null, + htmlIcon = null, +}: { + target?: string | null; + params?: string | null; + icon?: string | null; + htmlIcon?: string | null; +}): CommonItemData { + return { + target: target ?? null, + params: params ?? null, + icon: icon ?? null, + htmlIcon: htmlIcon ?? null, + }; +} + +/** + * 初始化Item + * @returns + */ +function newItem({ + id = null, + classificationId, + name = null, + type = null, + data = null, + shortcutKey = null, + globalShortcutKey = false, + order = null, +}: { + id?: number | null; + classificationId: number; + name?: string | null; + type?: number | null; + data?: ItemData | null; + shortcutKey?: string | null; + globalShortcutKey?: boolean | null; + order?: number | null; +}): Item { + return { + id: id ?? 0, + classificationId, + name: name ?? null, + type: type ?? 0, + data: data ? newItemData(data) : newItemData({}), + shortcutKey: shortcutKey ?? null, + globalShortcutKey: globalShortcutKey ?? false, + order: order ?? 0, + }; +} + +/** + * 初始化ItemData + * @returns + */ +function newItemData({ + startLocation = null, + target = null, + params = null, + runAsAdmin = false, + icon = null, + htmlIcon = null, + remark = null, + iconBackgroundColor = false, + fixedIcon = false, + openNumber = 0, + lastOpen = 0, + quickSearchOpenNumber = 0, + quickSearchLastOpen = 0, + multiItemsTimeInterval = 0, +}: { + startLocation?: string | null; + target?: string | null; + params?: string | null; + runAsAdmin?: boolean | null; + icon?: string | null; + htmlIcon?: string | null; + remark?: string | null; + iconBackgroundColor?: boolean | null; + fixedIcon?: boolean | null; + openNumber?: number | null; + lastOpen?: number | null; + quickSearchOpenNumber?: number | null; + quickSearchLastOpen?: number | null; + multiItemsTimeInterval?: number | null; +}): ItemData { + return { + startLocation: startLocation ?? null, + target: target ?? null, + params: params ?? null, + runAsAdmin: runAsAdmin ?? false, + icon: icon ?? null, + htmlIcon: htmlIcon ?? null, + remark: remark ?? null, + iconBackgroundColor: iconBackgroundColor ?? false, + fixedIcon: fixedIcon ?? false, + openNumber: openNumber ?? 0, + lastOpen: lastOpen ?? 0, + quickSearchOpenNumber: quickSearchOpenNumber ?? 0, + quickSearchLastOpen: quickSearchLastOpen ?? 0, + multiItemsTimeInterval: multiItemsTimeInterval ?? 0, + }; +} + +/** + * 获取项目名 + * @param name + * @returns + */ +function getItemName(name: string | null) { + if (name) { + return name.replace(/\\n/g, " "); + } + return ""; +} + +export { + convert, + isAbsolutePath, + deleteExtname, + getFileName, + getFileExtname, + newClassification, + newClassificationData, + newCommonItem, + newCommonItemData, + newItem, + newItemData, + getItemName, +}; diff --git a/commons/utils/setting.d.ts b/commons/utils/setting.d.ts new file mode 100644 index 0000000..9be03b8 --- /dev/null +++ b/commons/utils/setting.d.ts @@ -0,0 +1,4 @@ +// 无用,为了tsc编译通过 +import { Setting } from "../../types/setting"; + +export function getSetting(setting: Setting | null): Setting; diff --git a/commons/utils/setting.ts b/commons/utils/setting.ts new file mode 100644 index 0000000..994e74d --- /dev/null +++ b/commons/utils/setting.ts @@ -0,0 +1,378 @@ +import { + Appearance, + Classification, + General, + Item, + Network, + Proxy, + QuickSearch, + Setting, + SubClassification, + Theme, + WebSearch, + WebSearchSource, +} from "../../types/setting"; +import { convert } from "./common"; +import { themeList } from "../data/theme"; +import { webSearchSourceList } from "../data/webSearchSource"; + +/** + * 常规 + * @returns + */ +function getGeneral({ + startup = false, + startupTray = false, + showHideShortcutKey = null, + language = "SimplifiedChinese", + alwaysTop = false, + edgeAdsorb = true, + edgeAutoHide = false, + lockSize = false, + hideLoseFocus = false, + hideTray = false, + fixedPosition = false, + alwaysCenter = false, + showHideMouseWheelClick = false, + showFollowMousePosition = false, + notDisturb = false, + showHideDoubleClickTaskbar = false, + delayDisplayMs = 0, + delayHideMs = 0, + switchEnglish = false, + searchShowHideShortcutKey = "TAB", + checkUpdates = true, +}: { + startup?: boolean | null; + startupTray?: boolean | null; + showHideShortcutKey?: string | null; + language?: string | null; + alwaysTop?: boolean | null; + edgeAdsorb?: boolean | null; + edgeAutoHide?: boolean | null; + lockSize?: boolean | null; + hideLoseFocus?: boolean | null; + hideTray?: boolean | null; + fixedPosition?: boolean | null; + alwaysCenter?: boolean | null; + showHideMouseWheelClick?: boolean | null; + showFollowMousePosition?: boolean | null; + notDisturb?: boolean | null; + showHideDoubleClickTaskbar?: boolean | null; + delayDisplayMs?: number | null; + delayHideMs?: number | null; + switchEnglish?: boolean | null; + searchShowHideShortcutKey?: string | null; + checkUpdates?: boolean | null; +}): General { + return { + startup: startup ?? false, + startupTray: startupTray ?? false, + showHideShortcutKey: showHideShortcutKey ?? null, + language: language ?? "SimplifiedChinese", + alwaysTop: alwaysTop ?? false, + edgeAdsorb: edgeAdsorb ?? true, + edgeAutoHide: edgeAutoHide ?? false, + lockSize: lockSize ?? false, + hideLoseFocus: hideLoseFocus ?? false, + hideTray: hideTray ?? false, + fixedPosition: fixedPosition ?? false, + alwaysCenter: alwaysCenter ?? false, + showHideMouseWheelClick: showHideMouseWheelClick ?? false, + showFollowMousePosition: showFollowMousePosition ?? false, + notDisturb: notDisturb ?? false, + showHideDoubleClickTaskbar: showHideDoubleClickTaskbar ?? false, + delayDisplayMs: delayDisplayMs ?? 0, + delayHideMs: delayHideMs ?? 0, + switchEnglish: switchEnglish ?? false, + searchShowHideShortcutKey: searchShowHideShortcutKey ?? null, + checkUpdates: checkUpdates ?? true, + }; +} + +/** + * 外观 + * @returns + */ +function getAppearance({ + theme = convert(themeList[0]), + transparency = 1, + backgroundImage = null, + backgroundImageTransparency = 1, + backgroundImageMode = "repeat", + backgroundImagePosition = "default", + fontShadow = false, + fontShadowColor = "#000000", + windowRounded = false, + title = "Dawn Launcher", +}: { + theme?: Theme | null; + transparency?: number | null; + backgroundImage?: string | null; + backgroundImageTransparency?: number | null; + backgroundImageMode?: string | null; + backgroundImagePosition?: string | null; + fontShadow?: boolean | null; + fontShadowColor?: string | null; + windowRounded?: boolean | null; + title?: string | null; +}): Appearance { + return { + theme: theme ?? convert(themeList[0]), + transparency: transparency ?? 1, + backgroundImage: backgroundImage ?? null, + backgroundImageTransparency: backgroundImageTransparency ?? 1, + backgroundImageMode: backgroundImageMode ?? "repeat", + backgroundImagePosition: backgroundImagePosition ?? "default", + fontShadow: fontShadow ?? false, + fontShadowColor: fontShadowColor ?? "#000000", + windowRounded: windowRounded ?? false, + title: title ?? "Dawn Launcher", + }; +} + +/** + * 分类 + * @returns + */ +function getClassification({ + width = 140, + layout = "left", + mouseHover = false, + mouseHoverMs = 0, + mouseWheel = false, + rememberSelectionState = false, + nameAlign = "left", + mode = "normal", + autoSwitchClassification = false, + hideWindowCollapseSubClassification = false, + switchClassificationCollapseOtherSubClassification = false, +}: { + width?: number | null; + layout?: string | null; + mouseHover?: boolean | null; + mouseHoverMs?: number | null; + mouseWheel?: boolean | null; + rememberSelectionState?: boolean | null; + nameAlign?: string | null; + mode?: string | null; + autoSwitchClassification?: boolean | null; + hideWindowCollapseSubClassification?: boolean | null; + switchClassificationCollapseOtherSubClassification?: boolean | null; +}): Classification { + return { + width: width ?? 140, + layout: layout ?? "left", + mouseHover: mouseHover ?? false, + mouseHoverMs: mouseHoverMs ?? 0, + mouseWheel: mouseWheel ?? false, + rememberSelectionState: rememberSelectionState ?? false, + nameAlign: nameAlign ?? "left", + mode: mode ?? "normal", + autoSwitchClassification: autoSwitchClassification ?? false, + hideWindowCollapseSubClassification: + hideWindowCollapseSubClassification ?? false, + switchClassificationCollapseOtherSubClassification: + switchClassificationCollapseOtherSubClassification ?? false, + }; +} + +/** + * 子分类 + * @returns + */ +function getSubClassification({ + itemAreaNameFontSize = 14, + itemAreaNameFontWeight = 700, + itemAreaNameFontLineHeight = 1.25, +}: { + itemAreaNameFontSize?: number | null; + itemAreaNameFontWeight?: number | null; + itemAreaNameFontLineHeight?: number | null; +}): SubClassification { + return { + itemAreaNameFontSize: itemAreaNameFontSize ?? 14, + itemAreaNameFontWeight: itemAreaNameFontWeight ?? 700, + itemAreaNameFontLineHeight: itemAreaNameFontLineHeight ?? 1.25, + }; +} + +/** + * 项目 + * @returns + */ +function getItem({ + layout = "tile", + iconSize = 40, + doubleClickOpen = false, + openAfterHideMainInterface = false, + useItemOpen = false, + openNumber = false, + hideItemName = false, + hideEllipsis = false, + itemNameRowCount = 2, + width = 85, + columnNumber = 1, + checkInvalidItem = false, + fontSize = 14, + fontWeight = 400, + fontLineHeight = 1.25, +}: { + layout?: string | null; + iconSize?: number | null; + doubleClickOpen?: boolean | null; + openAfterHideMainInterface?: boolean | null; + useItemOpen?: boolean | null; + openNumber?: boolean | null; + hideItemName?: boolean | null; + hideEllipsis?: boolean | null; + itemNameRowCount?: number | null; + width?: number | null; + columnNumber?: number | null; + checkInvalidItem?: boolean | null; + fontSize?: number | null; + fontWeight?: number | null; + fontLineHeight?: number | null; +}): Item { + return { + layout: layout ?? "tile", + iconSize: iconSize ?? 40, + doubleClickOpen: doubleClickOpen ?? false, + openAfterHideMainInterface: openAfterHideMainInterface ?? false, + useItemOpen: useItemOpen ?? false, + openNumber: openNumber ?? false, + hideItemName: hideItemName ?? false, + hideEllipsis: hideEllipsis ?? false, + itemNameRowCount: itemNameRowCount ?? 2, + width: width ?? 85, + columnNumber: columnNumber ?? 1, + checkInvalidItem: checkInvalidItem ?? false, + fontSize: fontSize ?? 14, + fontWeight: fontWeight ?? 400, + fontLineHeight: fontLineHeight ?? 1.25, + }; +} + +/** + * 快速搜索 + * @returns + */ +function getQuickSearch({ + enable = true, + showHideShortcutKey = "Alt + Space", + openShortcutKey = "none", + hideLoseFocus = false, + openNow = false, + showHistory = false, + showHistorySort = "lastOpen", + useItemOpen = false, + openAfterHideQuickSearchWindow = true, + matchConditionsRemark = false, +}: { + enable?: boolean | null; + showHideShortcutKey?: string | null; + openShortcutKey?: string | null; + hideLoseFocus?: boolean | null; + openNow?: boolean | null; + showHistory?: boolean | null; + showHistorySort?: string | null; + useItemOpen?: boolean | null; + openAfterHideQuickSearchWindow?: boolean | null; + matchConditionsRemark?: boolean | null; +}): QuickSearch { + return { + enable: enable ?? true, + showHideShortcutKey: showHideShortcutKey ?? "Alt + Space", + openShortcutKey: openShortcutKey ?? "none", + hideLoseFocus: hideLoseFocus ?? false, + openNow: openNow ?? false, + showHistory: showHistory ?? false, + showHistorySort: showHistorySort ?? "lastOpen", + useItemOpen: useItemOpen ?? false, + openAfterHideQuickSearchWindow: openAfterHideQuickSearchWindow ?? true, + matchConditionsRemark: matchConditionsRemark ?? false, + }; +} + +/** + * 网络搜索 + * @returns + */ +function getWebSearch({ + mode = 0, + searchSourceList = webSearchSourceList, +}: { + mode?: number | null; + searchSourceList?: Array | null; +}): WebSearch { + return { + mode: mode ?? 0, + searchSourceList: searchSourceList ?? webSearchSourceList, + }; +} + +/** + * 网络 + * @returns + */ +function getNetwork({ + useProxy = false, + proxy = getProxy({}), +}: { + useProxy?: boolean | null; + proxy?: Proxy | null; +}): Network { + return { + useProxy: useProxy ?? false, + proxy: proxy ? getProxy(proxy) : getProxy({}), + }; +} + +/** + * 代理 + * @returns + */ +function getProxy({ + address = "", + username = null, + password = null, +}: { + address?: string | null; + username?: string | null; + password?: string | null; +}): Proxy { + return { + address: address ?? "", + username: username ?? null, + password: password ?? null, + }; +} + +/** + * 设置 + * @returns + */ +function getSetting(setting: Setting | null): Setting { + return { + general: getGeneral(setting && setting.general ? setting.general : {}), + appearance: getAppearance( + setting && setting.appearance ? setting.appearance : {} + ), + classification: getClassification( + setting && setting.classification ? setting.classification : {} + ), + subClassification: getSubClassification( + setting && setting.subClassification ? setting.subClassification : {} + ), + item: getItem(setting && setting.item ? setting.item : {}), + quickSearch: getQuickSearch( + setting && setting.quickSearch ? setting.quickSearch : {} + ), + webSearch: getWebSearch( + setting && setting.webSearch ? setting.webSearch : {} + ), + network: getNetwork(setting && setting.network ? setting.network : {}), + }; +} + +export { getSetting }; diff --git a/electron-builder.json5 b/electron-builder.json5 new file mode 100644 index 0000000..372ec7c --- /dev/null +++ b/electron-builder.json5 @@ -0,0 +1,35 @@ +/** + * @see https://www.electron.build/configuration/configuration + */ +{ + $schema: "https://raw.githubusercontent.com/electron-userland/electron-builder/master/packages/app-builder-lib/scheme.json", + appId: "com.dawnlauncher.application", + asar: true, + compression: "maximum", + productName: "Dawn Launcher", + directories: { + output: "release/${version}", + }, + asarUnpack: ["**/*.node"], + npmRebuild: false, + files: ["dist", "dist-electron", "native", "!node_modules/**/*"], + win: { + appId: "com.dawnlauncher.application", + target: [ + { + target: "nsis", + arch: ["x64"], + }, + ], + artifactName: "${productName}-Windows-${version}-Setup.${ext}", + icon: "public/logo.ico", + }, + nsis: { + artifactName: "${productName}-${version}.${ext}", + oneClick: false, + allowElevation: true, + allowToChangeInstallationDirectory: true, + createDesktopShortcut: true, + createStartMenuShortcut: true, + }, +} diff --git a/electron/commons/betterSqlite3.ts b/electron/commons/betterSqlite3.ts new file mode 100644 index 0000000..9b768eb --- /dev/null +++ b/electron/commons/betterSqlite3.ts @@ -0,0 +1,40 @@ +import { join, dirname } from "node:path"; +import Database from "better-sqlite3-multiple-ciphers"; +import { getUserDataPath } from "../main/commons"; + +let database: Database.Database; +let cacheDatabase: Database.Database; + +function getDataSqlite3() { + let filename = join(getUserDataPath(), "Data.db"); + database ??= new Database(filename, { + nativeBinding: join( + process.env.NODE_ENV !== "development" ? dirname(process.execPath) : "", + import.meta.env.VITE_BETTER_SQLITE3_BINDING + ), + }); + return database; +} + +function getCacheDataSqlite3() { + let filename = join(getUserDataPath(), "CacheData.db"); + cacheDatabase ??= new Database(filename, { + nativeBinding: join( + process.env.NODE_ENV !== "development" ? dirname(process.execPath) : "", + import.meta.env.VITE_BETTER_SQLITE3_BINDING + ), + }); + return cacheDatabase; +} + +function getCustomDataSqlite3(filePath: string) { + let db = new Database(filePath, { + nativeBinding: join( + process.env.NODE_ENV !== "development" ? dirname(process.execPath) : "", + import.meta.env.VITE_BETTER_SQLITE3_BINDING + ), + }); + return db; +} + +export { getDataSqlite3, getCacheDataSqlite3, getCustomDataSqlite3 }; diff --git a/electron/commons/constants.ts b/electron/commons/constants.ts new file mode 100644 index 0000000..73f1fab --- /dev/null +++ b/electron/commons/constants.ts @@ -0,0 +1,15 @@ +// 网络和共享中心图标 +export let networkSharingCenterIcon = + "data:image/png;base64,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"; + +// 计算器图标 +export let calcIcon = + "data:image/png;base64,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"; + +// 文件资源管理器图标 +export let fileExplorerIcon = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAZJklEQVR42u2dbZAcxWGG397Pu9vdk3QiIMkYO+hkjKkYYTsoRoiIz5NFFYaKk/xIJXbiVBK7QkDlGDsKThw7iI8yBQKn4koVwdjlP07FOHEZISm2oSQRDI4RpGIr1gkXkS1OCElIu3sfq9vt/Jjdvd2dmd3Z2Zmd7p73qRLHbPf09M7N8/Z83YyQUoIQEk8SUXeAEBIdDABCYgwDgJAYwwAgJMYwAAiJMQwAQmIMA4CQGMMAICTGMAAIiTEMAEJiDAOAkBjDACAkxjAACIkxDABCYgwDgJAYk4q6A34ovnJLfw8xkF0ne88QUFVfsw30uAbpqTi0J0IEuhr7/iUO1l2X9kViBCI5Almdh6zNfxvAzpVXPvVM8L0Jh87nfwgdHwhSfOUWWTh/a9TdIJEhe3zca5uW/Ze1tp3MQybHsVgpYvbkAVTnjz288sqntkW9VrzQ6TsPAYhmRCw/AFRLEJVjSCclxtd8GOmxd9558oWtD0W9ZvzAACAaoYD8rVRLEOeOI7/6ZiQzE3eefGHr5qjXUL8wAIgmKCZ/g9oshFzAyIr3AcAd0a6j/mEAEA1QVP5G+eIZZHIXA8CtUa0hvzAAiOIoLj8AyEWIRBYiMRLROvKPcQEgF88AqYmenxEd0EB+AJDz1o/a/LBX0MAwAIiiaCI/AMjakNdNcBgXAMQENJLfc5maMACIYugqv55oeSswsbPja+WouxBz/gfA9bjn/utVTwnROqHnHoDqq5iQiNi08Sps2niV63QnegYAIQRAb8F7wUMAQjRm34Hn+pruhHsAhMQYLfcAeArAme13fQrnzp2LuhtEQdLpNHY88KDtc+4BEBJjGACExBgGACExhgFASIxhABASYxgAhMQYBgAhMUbTAOCdAIQEgaYBQAgJAgYACZ3j5Rq+8d9zKFe456YaDAASKuWKxBeeLeLrr8zhk0+dwaunq1F3ibTAACCh8o//NYvpU1VICcyUavj03rN47mgl6m6ROgwAEhpPHprHniMLkEDzX7EicYR7Acqg5V8DkuFw6NAhzM7OQkrZ/q9WgwRQq9UAKVFrK5OQkJhZyOKxNy6xtbl2RRK3vVu/5+ebCgOAuDI7O4tLL70Uo6Ojfc1Xqkj82XfPAGh/XHYuI/B3mwvIZ0Rf7ZHwYAAQV6SUfcsPAH/7TAkzJfuz8j99VQ4X5HnUqRIMAOJK57vkvfDEy3M4OGN/KMkfXD6KjW/PRP2VSAeMY+LI7iMLuOsnF+P+A94fN37gaAVPvDzXdtJPAnjvqjQ+enn/exIkfPTcA+D9JKHy9PRCU/ynpxcAAJ/ZmOs6z0yphvv2l9G507AsuYAvbl7huy+7d++OenUMlampqaEuT88AIKExfaqK+zpG/V3TC7j8ghS2TGYd5ylVJO7+QRFFhzv9bi38L/KZ1b77M2wh4gYPAUgb+YxALiNsu/H3Hig39wY6efSFWRw+VbXN89mNOfxKshT1VyJdYACQNlblE9g5NY5cWkBKtP3bsb+MXR0hsGt6AbumF2x1t6zNYstk1teJRDI8GADExuREErdfOWYb0SWsEHhpZhEAcPhUFTv2l211GvMD/q4kkOHBACCOfGgyi98+/xicUmD794p4aWYR279XtJXl0wI7rlu62YcBoDYMAOLKFYXT2L4pZ8uAYkXi9l1n8XqpZivbvimHVS03+zAA1IZXAYgrUkp8aDKLY8Ua/vngXM/6f7R+FJsuar/ZR9YGCwBeBgwXBgBxpSHvx68YxeulGp46vOBa94rVaXz8CvvNPnLAmzZ4GTBcGADElVZ5795k3Qj0XYcQWJ1P4P7r885t1Gog6sIAIK50ynv3phyktIfA/Te4/4UfTwGoDU8CElekBIrFYttn235jDOtWJpsn/T53TQ7rJpKO8584cQJScg9ABdxOxnIPgLiSy+fww+efbz7soyYlUJO4LZXAV1PvwQWpMmo//Rn+/SftDwORtVr9hqAali1bHvXXiC1ersAwAIgrGzZscC27sX7ffyHz7qi7SVro97KrlgHAw8roKfCpPkrh934LLQOAEBLMTVY8CUhC59XTVXzh2RLfCRAArQ9nDQLuAZBQKVck7vqPsyhVJF554xz+9P1juPHi7OANx4gwb6fmHgAJlU/vPYviggQkUFqQePC5Mp48NB91t7QgyJHeDe4BkND4yo9mmy8B4Ylbbwz7j6cYACQU9hxZwLccRvqr3p7hi0E6iPIvJhkAxBW/bwaaqWTx9RNrIWX7HYIX5BP4yw/m/HXGMFT5M2kGAHHFz5uBShWJT+05i/la+xn/PN8KBEAd8RvwJCBx5ZdzaVST/e2uP3Cg3HwbcOu/T3xgDGtXJPtqyxSCvnQXJHoGgHrr0TieeHkODx15G7btsS7heeFffzqP/UcrtqcETa3NYmptvC79qSx9KzwEIDbuO1DG7vrTf6dPVvEPL872fDHIwZlFfPnFWdvnF6RmcdfGCd99idsTgW666aahLo8BYATBjTIHZxZtz//fNb3QfM6/E40Xg0gJtB7h5zMCtxV+BuBC3/3R4YlAqo/y3fZE9DwEIC0Eu/FNTiSxdiJp243fNb2Ae/c7vyfwzt1Lhwmt83zx2gIKwsybflTfxffaPwaA1gS/8eUzAvdcW3B8Mciu6QU83vFw0EdfmMXhk/aTfh+9fBTrV6WMeiCIKdK3wgDQlvA2wlX5BB7ZMo6RhF3exw/ONd8OtGt6Af/yk3nb3sLVF2Xwh+utS4eqyuIV1aVv7aMfeA5AS8LfGCcnkviTC1/DY69fvHQVoH6Av2N/GTOlGr5Zl7+VVfkE/urqpXMFKovTDdX7HVT/uAegHcPbMFdl5vDIh8aXRveWXfzHXppDcUG2fZbreCsQoL5Irag+2ofRP+4BaIXs6+OBlyYl1k0ksX1TDvfsK/es/xcbxmwPCB10Y437ZUD+NSCpM1z5gaWNb+tkFpDA33cJgZvXZa16nW0M+GagMC4DqjrCR9FHBoAW9JI/nI2lVd6t6yy5v1gPgdbr/esmkvjrTc73CAz6ZqBAv4/i4kfRP54DUJ5o5Ldabm9767osfveykeZSJYBcRuC+GwrubUT8ZqA4Htf3AwNAaaKTH3CW984NY9g6mW2e+Lv/+gJW5903oyi266il0ql/PARQlmjlB5beDFQotI/wn7vGemX4mkIC71vtvgkN881AKsikYx8ZAEoSvfyA+5uBalLi/bIGeUbiO0fbHwYy7DcDqSiVTv3TNADUXqmhfLchyw90fzNQlKguler9a0XTADAVdeRXDdWlUr1/bvAkoDKYK//eVxfwkW+exn8erfS3RhQ6Wdarj6rSax0yAJRgUPnV3QCPnK7iS8+VUaxIfP7ZEr7yo9me8+guVdT00z8eAkSOufKXKhKff7bY1sNvHZpHLiPw++9tf9CoqjKZ3j8GQKSoLb/fx4I3rgR8481JHK/kbe02Hg5qqlQ69ZEBEBlqyw/4eyx4g6+9MofXfjln+/y2d4/ggxemlZZL5b4F3T8GQCSoLz9gbWh+5D9wtIKvvWyX//ILUvjEB/pvb1jfVWXC6p+eAaD278pf5xWTH/C30c2UanjgQNl2C3A+I/D538z33Z5q38+0/vEqwFDRR34A2HdyHDMl77fylioSf/NMEcWKtD0m7MGb1HgrkOpn8Fv7OAy0DAB1f3U+eh2I/MGvkfsPlPGd4+d5ejFIY4P98ovWW4E6+aQCbwXSRXq+HdhI9JG/VJHYtvtsU+SZYg3bdp/FQ1PjthG8dWPdfaSC3dP2G30uy76B37r0Et/92bNnT6DfT3VuuOGGoS6PARA6+sgPANOnqjjcMYofPlXFnbvP4uGpceTSzvPcd8D+tKDJiSSulT8H4D8A+n1TjsqjvIr90/IQQB/0kh8A1q9KOb4Y5PCpKu54+qytvvVWoJKtfi4t8JmrcsiKxVD62bYmeFzvGwZAaOgnf4OdU+NYuyJpe9nH4VNV3Nsx0t97oIzXSzVb3c9uzGFyIhnqE4FUlaqzfyr3kQEQCvrKL6VELg3snCpgddb+Wq+npyvNEHj85Xns/79ztjofeU8WV19kHSsM+ExQx/6pLJXq/euE5wACJwL5B9zWnDbWfEbgj1f/HP904jLbpcBdhyt4vVjDwRn77v36VSnc/utjLW0Pvgegukyq969bH7kHECj6yO9lpMqKRdxzXR65jLAd4780s2g/7s8I7Lgub1tOWP2LGl36162P3AMIjCjl97YR9ruxNl4M8siWAm5/utjzfoBHthS6Xir008e9e/f2Nb/uDHoZsN/1zQAIBLXl9ztK1erzrZtI4tEtBfz5LvcQuMPhrUBel92tzo033uir70Gi8ig/aB95CDAwasofyC50y7yNl3907vZLAFsnM/id92RdmpCun6u8C616/4LqIwNgINSSP+iNtiYlSsVic/qai9K4u+MNQOsmkrhjw5jj/CdOnGh7u5BOUqlK0OuQhwC+UUv+MMjncnj++R9Cylpzo0tIiVvGz8O/nZnEiFjENdWX8P1dpbY6rQ8HWbZsmdJCAerv4ofZPwaAL8yXHwCudHks+BYAv3a4gkJG4Jp3XOfc3RhLpVMfGQB9Ew/5e3Hzuoy9m4pLpXr/ougjA6AvKL+te5RK6/4xADyjsvzD34AolRn9YwB4gvID6my0uvZPxT4yAHoSb/lV22B165/qfWQAdCWe8qu8werSR9X714AB4Er85Fd9o2X/gocB4Eh85Fd9o1W9fzr0sdudg3oGQKjr23z5Vd9gdeijKf3TMwBCQ1f5w/uLwGGieh9N7B8DoImZ8pu40bJ/wfWRAQDANPlV32hV758OfeRfAwaGOfLr8KesKhPH/sU8AAyRv2UynU5DJeIolU79i3EAmCf/fV96KNhVRIwnpgFgnvzbfy81YNsO9aSfdjz2IYy2e46WA5T3+v3lLsOJn30F52/cHf0rkLuw/a5PtU3H8JFg5sk/eNsO9Si/Q5Hahwt+iFkAUH5P9Si/Q1H0f5gVBjELAAcof3s9yu9QZKb8gKYB0P/q5sjvqR7ldygyV35A0wDoD8rvqR7ldyjqrw0do8DwAKD8nupRfocis0f+BgYHAOX3VI/yOxTFQ37A6ABwgPK316P8DkXxkR8wMgBC3Egof3RtU/5QMCwAuNvvqR7ldyiKn/yAUQFA+T3Vo/wORWHuNaqNpgEge0x3fkz5u1en/KEsQwM0DYBWKL+nepTfoSjAZWiaA5oHAE/4eapH+R2KKD+gdQBw5PdUj/I7FFH+BnoGgOz1OeXvXp3yB7IMj6eiVEbPAHCC8rfXo/wORWGO/BraD1MCgPK316P8DkWU3wn9A4Dyt9ej/A5FlN8NvQPA8y/YUyM+26b8vtum/JGjbwBw5G+vR/kdiih/L/QNAACUn/K7F1F+L2gcAJS/e3XKH8gyDJYf0DoAukH5/S+D8rtXdZk3mat/vSqO759aD40wNADcoPyRtW2q/AAg0la59R3fCY0wLAB87J5R/vDbNll+AMicj9r8MaTTYwBwBzTCoADgbr//ZVB+96o95s2+DRBpLJZfRXZ0OSBrm4/vn3ocmmBIAFB+/8ug/O5VPcifWo5zZ16GrJaRyRSQK6wCpPyYLiFgQABQfv/LoPzuVb3JX3nrJVTnj0GIBCAEsiMTyI+/DYAeIaB5AFB+/8ug/O5Vvctfm38dQiQBkYQQSQgkkB1Zifz4RQCgfAhoHAA84ed/GZTfvapH+U//GLX5YxCJuvgiCcgEIBIQIoGR0fNQGH8HoHgIaBwAbnDkj6ztGMlv7fbX5U8kIUSi+RNCQEBgZOw8FJa9ExL42Mw+NUPAsACg/JG1HQf5k+OovGXJn0ikIBIpS3o09gKsPQBAAEIAAEZHV6Iw/qsQIqlkCBgUAJQ/srZjIv/8qRdRnTuGRCLZIn9qaeSHACDq/y+tSQiM5VZi4rxLIBLqhYAhAUD5I2s7RvLLyglL9taRP5GEpZF17C8gAEgIIaymhbWKUukxTKxshsCTM/umlkMBDAgAyh9Z27GS/w2IRNLa9Reppd3+uvioH/s3Rn1r1VghYB0NSKTSo5hY+S6IRPJWQP5gZt9NyxExWgaAdPg/5wqUP7S2YyP/C035hajL3zzxl2ye9Rf1Y37U9wGaP0X7sqw9gXdBJJLrAUQeAloGgAXlj6ztuMh/8oeW/MIa+ROtl/ywJD+c5LdOBzguK5Uew8TEJY0QeBIRonEAOED5w2/bdPmTY0BqOeZPPg9ZOd5yeS+1JH/9jL+b/BA9liWtw4HlK9YCwOaZfTd9DBGhZwDIbp9R/tDaNl1+SCB9PhZnj6K2MFMf4a3dfiABiNZR37/8DTKZArIjywHgw4gIPQOgE8offttxkB8Akjkszh1dGvkbN/l0jPoCg8nfYHR0JQDciojQPwAof/htx0X+xtRiuT7SW5f4muI3Lvch0TzbP4j8AOqXEaND7wDwvPF4asSlKco/2PfXS34AkNViU3jr7H6i44Rf/QI/gEHkByTSqVFESSrSpQ8CR/7w246h/BaNkb4hf+OUfuPSXn3cb54D6NJWF/kB7gEMCOUPre3Yym9pLoRonuhbmpYtNaxVZK0mf/KrgMYBQPlDazvG8lsISNkY8Rujf2O3XyxNCUAIfeUHtA6AblB+323HXn4AjRG//v9tJ/yat/gL6DzyNzA0ANyg/N2bjrv89XLR+qN1nsaxf/1zx/tR+pU/2lAwLAD6WJmUv6OY8tto3s7bUVMGNfL3+n2Gj0EBwN1+321T/rap5k0+sqWoeUggXbqg18jfwJAAoPy+26b8Dp+0HAqIlvMBgZ3wU0N+wIgAoPy+26b8jpN17721pbH8gPYBQPl9t035+6hupvyA1gEwyMqk/KGtH+3ll97aMkB+QOsAcIMjf/emKb/7ZLzkB4wLAMrfvWnK7z4Zkfw9fyfhYlAAUP7uTVN+98l4yg8YEwCUv3vTlN990uPvPkT5o4wBAwIgxI3bqR7ldyii/H31SYGRv4HmAcCRv3vTlN99kvIDWgcA5e/eNOV3n6T8DTQNAMrfvWnK7z7p9fcyLPl5FWAwKH9HMeV3n6T8negZALLjp62g14weF0D5HYoMl7/vcn3lB3QNAIDy24opv/sk5XdD3wBoI6gVSvndiyh/X/NpID9gRABw5A9t/cRefp/zaSI/oH0AUP7Q1k/s5R/WyM+rAD6h/KGtn9jL73M+zeQHNA2A3quN8vsup/z+5tNQfkDTAAgGyu9eFFf547Hb34phAcCR33c55fc336DySw9dCxGDAoDy+y6n/P7mC0L+iDEkACi/73LK31/1Zj395QeMCIA+1yTldyii/H2tD0PkB7QPAI78vsspf3/Vm/WClp/3AfikT/l9lVN+z+WU38dyot8V0DgAvMCR372I8nuq3qxnnvyA0QFA+d2LKL97dYcPDZUfMDoAQPkdiyi/e/V4yQ8YGQAc+d2LKL979fjJDxgXADzh515E+d2rx1N+wKgA4MjvXkT53atHLb/08D3Cw5AAoPzuRZTfvXo/4oUlf7QYEACU372I8rtXp/yA9gFA+d2LKL979SDk019+QNcAkM3/UH7HIsrvXr2fNswd+RvoGQANKL9DEeV3r075O9E3ACi/QxHld6+uqvzRhoK+AeAI5Q9kGbGW3+9y9JMfMCoABlmZlN+9KuUPW/4oY8CQAODIH8gyKL+P5Qw48ke8E2BAAFD+QJZB+X0sR2/5Ae0DgPIHsgzK72M5+ssPaB0AlD+QZVD+3sWhys+rAEOG8rtXjbv80sMsIcgfYQYYFgAc+T2XU/6OYmmvLbt94LV9NUf+BgYFgMcVSvkpv624+8gve7ahp/yAMQHAkd9zOeXvKPYgozRTfsCIAKD8nsspf0dxt3JR/+dn/ekhP6B9AFB+z+WUv6O4l/xWGwKAEC0f9Wy/X/l5FcAnzisukV0DzB5Cq/zWZz/1NH/vMlB+o+W3EG1tiI4fZsgPaB0A3eDI716V8ruSyLTMLyCEqO8D2NsXonNJ+skPaBoA0ksp5af8tuIe5SJt/RCivt/f/NHS/tIHS2X+5a9UZhElWgaAO5TfvSrl7zl/YhSyOtty0N/6D82fQY781WoFUWJQAFB+96qU39P86RWozv0CQiQgRKJliG8/EBAtn/e3Tuyfz86eAYBvIyIMCQDK716V8nuaP7UMUkpUZ18DYMlvBYFouwwgmlcGB5d/bu4tVCplANiJiDAgACi/e1XK72n+xCiQWYVzb/0YAjUIkbT2AAA0DwHEUpMScmnRA8h/9uxxAHh4zea9zyAiUlEtOBgov3tVyt9z/mQeSBZQrVaw+Oa+NvkFlkZ+AQDSmhaQgBCQEhA+TvjValWUy6caI/9X12zeuw0Rom0AvPmL7yO0Sylets8A2/eylL76EOZq6dn2gAv3MLvvJXTMKJIjkNV5X0vxlVlLfBvAzihH/gZ6BoDEtcNb1DAa1ET+sBc+5Evj7vKH1veDazbvfWu437I7Qnr5YwhCiJEYcBKQEOIXBgAhMYYBQEiMYQAQEmMYAITEGAYAITGGAUBIjGEAEBJjGACExBgGACExhgFASIxhABASYxgAhMQYBgAhMeb/AbGdI4n/8eFBAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIzLTAzLTIyVDA4OjI4OjI3KzAwOjAwUxTrFAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMy0wMy0yMlQwODoyODoyNyswMDowMCJJU6gAAAAASUVORK5CYII="; + +// 电源图标 +export let powerIcon = + "data:image/png;base64,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"; diff --git a/electron/commons/logger.ts b/electron/commons/logger.ts new file mode 100644 index 0000000..cf973fb --- /dev/null +++ b/electron/commons/logger.ts @@ -0,0 +1,32 @@ +import { app } from "electron"; +import Logger from "electron-log"; +import { join, dirname } from "node:path"; + +// 名称 +let date = new Date(); +let logName = + date.getFullYear() + + "-" + + (date.getMonth() + 1 < 10 + ? "0" + (date.getMonth() + 1) + : date.getMonth() + 1) + + "-" + + date.getDate(); + +// 日志 +if ( + process.env.NODE_ENV !== "development" && + import.meta.env.VITE_INSTALL === "false" +) { + Logger.transports.file.resolvePathFn = () => + join(dirname(process.execPath), "data", "logs", logName + ".log"); +} else { + Logger.transports.file.resolvePathFn = () => + join(app.getPath("userData"), "logs", logName + ".log"); +} + +export default { + error(content: any) { + Logger.error(content); + }, +}; diff --git a/electron/commons/utilityProcessUtils.ts b/electron/commons/utilityProcessUtils.ts new file mode 100644 index 0000000..93b2e7b --- /dev/null +++ b/electron/commons/utilityProcessUtils.ts @@ -0,0 +1,80 @@ +import { MessageChannelMain, app, utilityProcess } from "electron"; +import { join } from "node:path"; +import { writeFileSync, readFileSync, unlink } from "node:fs"; +import { ChildProcessInfo } from "../types/global"; + +/** + * 子进程 + * @param name + * @param data + */ +function fork(name: string, data: any, callback: Function) { + // 随机数 + let min = 1; + let max = 99999; + let random = Math.floor(Math.random() * (max - min + 1)) + min; + // 子进程 + const { port1, port2 } = new MessageChannelMain(); + const childProcess = utilityProcess.fork(join(__dirname, "worker.js")); + // 存储子进程信息 + if (!global.childProcessMap) { + global.childProcessMap = new Map(); + } + global.childProcessMap.set(childProcess.pid, { + utilityProcess: childProcess, + port1, + port2, + }); + // 获取临时目录 + let temp = app.getPath("temp"); + // 参数文件 + let paramFilePath = + temp + "\\" + random + "." + new Date().getTime() + "." + name + ".txt"; + // 创建文件并写入数据 + writeFileSync(paramFilePath, JSON.stringify(data), { + encoding: "utf-8", + }); + // 发送消息 + let params = { + name, + data: { + filePath: paramFilePath, + }, + }; + // 创建子进程完成后发送消息 + childProcess.once("spawn", () => { + childProcess.postMessage(JSON.stringify(params), [port1]); + }); + // 等待接收消息 + port2.start(); + port2.once("message", (event) => { + let data: string = event.data; + try { + if (data !== "exit") { + // 读取文件 + let res = readFileSync(data, { encoding: "utf-8" }); + // 删除文件 + unlink(data, () => {}); + // 回调 + callback(JSON.parse(res)); + } + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + } finally { + // 关闭子进程 + childProcess.kill(); + } + }); + // 监听关闭子进程 + childProcess.once("exit", () => { + // 关闭通道 + port1.close(); + port2.close(); + // 删除信息 + global.childProcessMap.delete(childProcess.pid); + }); +} + +export { fork }; diff --git a/electron/commons/utils.ts b/electron/commons/utils.ts new file mode 100644 index 0000000..96acc95 --- /dev/null +++ b/electron/commons/utils.ts @@ -0,0 +1,155 @@ +import { resolve, dirname, parse } from "node:path"; +import { isAbsolutePath } from "../../commons/utils/common"; +import mime from "mime"; +import { readFileSync } from "node:fs"; + +// 图标格式 +const iconExts = ["jpg", "jpeg", "png", "gif", "ico", "svg", "webp"]; + +/** + * 随机user-agent + */ +function getRandomUserAgent() { + const userAgents = [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Firefox/89.0", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Firefox/89.0", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 OPR/76.0.4017.123", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 OPR/76.0.4017.123", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Firefox/89.0", + ]; + const randomIndex = Math.floor(Math.random() * userAgents.length); + return userAgents[randomIndex]; +} + +/** + * 组装参数 + * @param paramsMap + * @returns + */ +function getURLParams(paramsMap: Map) { + let res = ""; + if (paramsMap.size > 0) { + res += "?"; + let params: string | null = null; + paramsMap.forEach((value, key) => { + if (params) { + params += "&" + key + "=" + value; + } else { + params = key + "=" + value; + } + }); + res += params; + } + return res; +} + +/** + * 解析环境变量 + * @param path + */ +function parseEnvPath(path: string) { + // 尝试解析路径中的环境变量 + let parsedPath = parse(path); + let isBase = false; + let pathArr: Array = []; + if (!parsedPath.dir || parsedPath.dir.trim() === "") { + pathArr = parsedPath.base.split("\\"); + isBase = true; + } else { + pathArr = parsedPath.dir.split("\\"); + } + // 新路径 + let newPathArr: Array = []; + // 正则提取环境变量 %{path}% 提取中间的path名称 + const pattern = /^%.*%$/; + for (let string of pathArr) { + // 符合环境变量正则 + if (pattern.test(string)) { + // 尝试获取 + let env: string | null = global.addon.getEnvByName( + string.substring(1, string.length - 1) + ); + // 如果提取到环境变量了就使用环境变量路径,如果没有就使用原路径 + if (env && env.trim() !== "") { + newPathArr.push(env); + } else { + newPathArr.push(string); + } + } else { + // 没有匹配到正则,使用原路径 + newPathArr.push(string); + } + } + // 根据上方解析,如果拥有dir的话,需要追加base变量 + if (!isBase) { + newPathArr.push(parsedPath.base); + } + // 拼接并返回 + return newPathArr.join("\\"); +} + +/** + * 获取绝对路径 + * @param path + */ +function getAbsolutePath(path: string) { + if (!isAbsolutePath(path)) { + // 尝试解析环境变量 + let newPath = parseEnvPath(path); + // 判断解析之后的路径是否是绝对路径 + if (isAbsolutePath(newPath)) { + return newPath; + } else { + return resolve( + process.env.NODE_ENV === "development" + ? resolve(".") + : dirname(process.execPath), + path + ); + } + } + return path; +} + +/** + * 获取文件图标 + * @param filePath + */ +function getFileIcon(filePath: string | null) { + // 图标 + let icon: string | null = null; + if (filePath) { + // 获取后缀 + let ext = mime.getExtension(mime.getType(filePath)); + if (iconExts.includes(ext)) { + // 读取文件 + let buffer = readFileSync(filePath); + icon = + "data:" + + mime.getType(filePath) + + ";base64," + + buffer.toString("base64"); + } else { + // 获取图标 + icon = global.addon.getFileIcon(filePath); + } + } + return icon; +} + +export { + getURLParams, + getAbsolutePath, + getFileIcon, + iconExts, + getRandomUserAgent, +}; diff --git a/electron/electron-env.d.ts b/electron/electron-env.d.ts new file mode 100644 index 0000000..b4c4211 --- /dev/null +++ b/electron/electron-env.d.ts @@ -0,0 +1,11 @@ +/// + +declare namespace NodeJS { + interface ProcessEnv { + VSCODE_DEBUG?: 'true' + DIST_ELECTRON: string + DIST: string + /** /dist/ or /public/ */ + VITE_PUBLIC: string + } +} diff --git a/electron/main/about/index.ts b/electron/main/about/index.ts new file mode 100644 index 0000000..3038e2f --- /dev/null +++ b/electron/main/about/index.ts @@ -0,0 +1,58 @@ +import { BrowserWindow, shell } from "electron"; +import { closeWindow, getMainBackgorunColor } from "../commons"; +import { join } from "node:path"; + +// 窗口 +let aboutWindow: BrowserWindow | null = null; + +/** + * 关于窗口 + */ +function createWindow() { + // 如果窗口存在先关闭窗口 + closeWindow(aboutWindow); + // 创建窗口 + aboutWindow = global.aboutWindow = new BrowserWindow({ + title: "Dawn Launcher", + frame: false, + parent: global.mainWindow, + height: 212, + width: 600, + type: "toolbar", + maximizable: false, + minimizable: false, + resizable: false, + fullscreenable: false, + focusable: true, + show: false, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + if (process.env.VITE_DEV_SERVER_URL) { + aboutWindow.loadURL(process.env.VITE_DEV_SERVER_URL + "About"); + } else { + aboutWindow.loadFile(join(process.env.DIST, "index.html"), { + hash: "/About", + }); + } + aboutWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 禁用标题栏右键 + aboutWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + aboutWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + aboutWindow.setEnabled(true); + }, 100); + return true; + }); +} + +export { createWindow }; diff --git a/electron/main/about/ipcEvent.ts b/electron/main/about/ipcEvent.ts new file mode 100644 index 0000000..4872fc5 --- /dev/null +++ b/electron/main/about/ipcEvent.ts @@ -0,0 +1,20 @@ +import { ipcMain } from "electron"; +import { createWindow } from "."; +import { closeWindow } from "../commons"; + +export default function () { + // 创建窗口 + ipcMain.on("createAboutWindow", (event, args) => { + createWindow(); + }); + // 显示窗口 + ipcMain.on("showAboutWindow", (event, args) => { + if (global.aboutWindow) { + global.aboutWindow.show(); + } + }); + // 关闭窗口 + ipcMain.on("closeAboutWindow", (event, args) => { + closeWindow(global.aboutWindow); + }); +} diff --git a/electron/main/classification/data.ts b/electron/main/classification/data.ts new file mode 100644 index 0000000..bd516a2 --- /dev/null +++ b/electron/main/classification/data.ts @@ -0,0 +1,397 @@ +import { deleteAssociateFolderWatcher } from "."; +import { + Classification, + ClassificationData, +} from "../../../types/classification"; +import { + newClassification, + newClassificationData, +} from "../../../commons/utils/common"; +import { deleteByClassificationId, updateClassificationId } from "../item/data"; +import { getDataSqlite3 } from "../../commons/betterSqlite3"; + +// 获取数据库 +let db = getDataSqlite3(); + +// 分类表名 +let classificationTableName = "classification"; + +// 查询字段 +let selectColumn = + "id, parent_id parentId, name, type, data, shortcut_key shortcutKey, global_shortcut_key globalShortcutKey, `order`"; + +/** + * 分类 + */ +function getClassification(row: any): Classification { + return newClassification({ + id: row.id, + parentId: row.parentId, + name: row.name, + type: row.type, + data: newClassificationData(JSON.parse(row.data)), + shortcutKey: row.shortcutKey, + globalShortcutKey: row.globalShortcutKey === 1, + order: row.order, + }); +} + +/** + * 初始化 + */ +function init() { + // sql + let sql = `CREATE TABLE IF NOT EXISTS ${classificationTableName} ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + parent_id INTEGER, + name TEXT NOT NULL, + type INTEGER NOT NULL, + data TEXT NOT NULL, + shortcut_key TEXT, + global_shortcut_key INTEGER NOT NULL, + \`order\` INTEGER NOT NULL)`; + // 运行 + db.exec(sql); + // 查询有多少条数据 + sql = `SELECT COUNT(id) count FROM ${classificationTableName}`; + let row: any = db.prepare(sql).get(); + let count = row.count as number; + if (count === 0) { + // 新增分类 + add(null, global.language.newClassificationName, null, false); + } +} + +/** + * 列表 + * @param parentId + */ +function list(parentId: number | null = null) { + // 参数 + let params = []; + // sql + let sql = `SELECT ${selectColumn} FROM ${classificationTableName}`; + if (parentId) { + sql += " WHERE parent_id = ?"; + params.push(parentId); + } + sql += " ORDER BY `order` ASC"; + // 查询 + let list = db.prepare(sql).all(params); + // 返回 + return list.map((row) => { + return getClassification(row); + }); +} + +/** + * 添加 + * @param parentId + * @param name + * @param shortcutKey + * @param globalShortcutKey + * @returns + */ +function add( + parentId: number | null, + name: string, + shortcutKey: string | null, + globalShortcutKey: boolean, + data: ClassificationData = newClassificationData({}), + type: number = 0 +): Classification | null { + // 获取序号 + let newOrder = getMaxOrder(parentId) + 1; + // SQL + let sql = `INSERT INTO ${classificationTableName} (parent_id, name, type, data, shortcut_key, global_shortcut_key, \`order\`) VALUES (?, ?, ?, ?, ?, ?, ?)`; + // 运行 + let id = db + .prepare(sql) + .run( + parentId, + name, + type, + JSON.stringify(data), + shortcutKey, + globalShortcutKey ? 1 : 0, + newOrder + ).lastInsertRowid as number; + if (id) { + let classification = newClassification({ + id, + name, + parentId, + type, + data, + shortcutKey, + globalShortcutKey, + order: newOrder, + }); + // 如果是添加子分类,将父级分类下的项目移动到新建的子分类中 + if (parentId) { + updateClassificationId(parentId, id); + } + return classification; + } + return null; +} + +/** + * 更新 + * @param id + * @param name + * @param shortcutKey + * @param globalShortcutKey + * @returns + */ +function update(classification: Classification) { + // SQL + let sql = `UPDATE ${classificationTableName} SET name = ?, type = ?, data = ?, shortcut_key = ?, global_shortcut_key = ? WHERE id = ?`; + // 运行 + return ( + db + .prepare(sql) + .run( + classification.name, + classification.type, + JSON.stringify(classification.data), + classification.shortcutKey, + classification.globalShortcutKey ? 1 : 0, + classification.id + ).changes > 0 + ); +} + +/** + * 更新数据 + * @param id + * @param data + */ +function updateData(id: number, data: ClassificationData) { + // SQL + let sql = `UPDATE ${classificationTableName} SET data = ? WHERE id = ?`; + return db.prepare(sql).run(JSON.stringify(data), id).changes > 0; +} + +/** + * 根据ID查询 + * @param id + */ +function selectById(id: number): Classification | null { + // SQL + let sql = `SELECT ${selectColumn} FROM ${classificationTableName} WHERE id = ?`; + // 运行 + let row = db.prepare(sql).get(id); + // 返回 + if (row) { + return getClassification(row); + } else { + return null; + } +} + +/** + * 删除 + * @param id + */ +function del(id: number) { + // 查询数据 + let classifictaion = selectById(id); + if (classifictaion) { + // 查询有无子分类 + let childList = list(classifictaion.id); + // SQL + let sql = `DELETE FROM ${classificationTableName} WHERE id = ? or parent_id = ?`; + // 运行 + let res = db.prepare(sql).run(id, id).changes > 0; + if (res) { + // 更新序号 + reorder(classifictaion.parentId); + // 删除分类下所有项目 + deleteByClassificationId(id); + // 删除子分类下所有项目 + for (const child of childList) { + deleteByClassificationId(child.id); + if (child.type === 1) { + // 删除关联文件夹 + deleteAssociateFolderWatcher(child.id); + } + } + if (classifictaion.type === 1) { + // 删除关联文件夹 + deleteAssociateFolderWatcher(classifictaion.id); + } + return true; + } else { + return false; + } + } else { + return false; + } +} + +/** + * 排序 + * @param fromId + * @param toId + * @param parentId + */ +function updateOrder( + fromId: number, + toId: number | null, + parentId: number | null +) { + // 查询来源分类 + let fromClassification = selectById(fromId); + if (fromClassification) { + // 新序号 + let newOrder = 1; + // 如果目标ID不为空获取项目并获取序号 + if (toId) { + let toClassification = selectById(toId); + if (toClassification) { + newOrder = toClassification.order; + } + } else { + newOrder = getMaxOrder(parentId) + 1; + } + // SQL + let sql = `UPDATE ${classificationTableName} SET \`order\` = ? WHERE id = ?`; + // 更新排序 + db.prepare(sql).run(newOrder, fromClassification.id); + // 判断新序号和老序号之间的数据是+1还是-1 + if (newOrder > fromClassification.order) { + // 新序号和老序号之间数据,序号-1 + let params = [fromClassification.order, newOrder, fromClassification.id]; + sql = `UPDATE ${classificationTableName} SET \`order\` = \`order\` - 1 WHERE \`order\` > ? AND \`order\` <= ? AND id != ?`; + if (parentId) { + sql += " AND parent_id = ?"; + params.push(parentId); + } else { + sql += " AND parent_id is NULL"; + } + db.prepare(sql).run(params); + } else { + // 新序号和老序号之间数据,序号+1 + let params = [newOrder, fromClassification.order, fromClassification.id]; + sql = `UPDATE ${classificationTableName} SET \`order\` = \`order\` + 1 WHERE \`order\` >= ? AND \`order\` < ? AND id != ?`; + if (parentId) { + sql += " AND parent_id = ?"; + params.push(parentId); + } else { + sql += " AND parent_id is NULL"; + } + db.prepare(sql).run(params); + } + return true; + } + return false; +} + +/** + * 重新排序 + * @param parentId + */ +function reorder(parentId: number | null) { + // 查询分类列表 + let classificationList = list(parentId); + // 开启事务 + db.transaction(() => { + // SQL + let sql = `UPDATE ${classificationTableName} SET \`order\` = ? WHERE id = ?`; + // 更新序号 + for (let i = 0; i < classificationList.length; i++) { + db.prepare(sql).run(i + 1, classificationList[i].id); + } + })(); +} + +/** + * 查询最大序号 + * @param parentId + */ +function getMaxOrder(parentId: number | null) { + // SQL + let sql = `SELECT MAX(\`order\`) \`order\` FROM ${classificationTableName}`; + if (parentId) { + sql += " WHERE parent_id = ?"; + } else { + sql += " WHERE parent_id IS NULL"; + } + // 运行 + let row: any = db.prepare(sql).get(parentId ? [parentId] : []); + if (!row || !row.order) { + return 0; + } else { + return row.order; + } +} + +/** + * 更新图标 + * @param id + * @param icon + */ +function updateIcon(id: number, icon: string | null) { + // 查询分类 + let classification = selectById(id); + if (classification) { + // SQL + let sql = `UPDATE ${classificationTableName} SET data = ? WHERE id = ?`; + // 更新图标 + classification.data.icon = icon; + return ( + db.prepare(sql).run(JSON.stringify(classification.data), id).changes > 0 + ); + } + return false; +} + +/** + * 是否有子分类 + * @param id + */ +function hasChildClassification(id: number) { + let classificationList = list(id); + return classificationList.length > 0; +} + +/** + * 更新固定分类 + * @param classification + * @param fixed + */ +function updateFixed(classification: Classification, fixed: boolean) { + classification.data.fixed = fixed; + updateData(classification.id, classification.data); +} + +/** + * 批量更新固定分类 + * @param id + */ +function batchUpdateFixed(id: number | null = null) { + // 事务 + db.transaction(() => { + // 查询所有分类 + let classificationList = list(); + // 更新 + for (const classification of classificationList) { + updateFixed(classification, id === classification.id); + } + })(); +} + +export { + init, + list, + add, + del, + selectById, + update, + updateData, + updateOrder, + updateIcon, + hasChildClassification, + batchUpdateFixed, +}; diff --git a/electron/main/classification/index.ts b/electron/main/classification/index.ts new file mode 100644 index 0000000..c4b039f --- /dev/null +++ b/electron/main/classification/index.ts @@ -0,0 +1,954 @@ +import { BrowserWindow, MenuItem, shell } from "electron"; +import { join, basename } from "node:path"; +import { getURLParams } from "../../commons/utils"; +import { + add, + hasChildClassification, + list, + selectById, + update, + updateData, +} from "./data"; +import { watch, statSync, Stats, readdirSync } from "node:fs"; +import { getDirectoryList } from "../item"; +import { AssociateFolderData } from "../../types/global"; +import { Classification } from "../../../types/classification"; +import { + closeWindow, + getDot, + getMainBackgorunColor, + sendToWebContent, +} from "../commons/index"; +import { deleteByClassificationId } from "../item/data"; + +// 窗口 +let classificationAddEditWindow: BrowserWindow | null = null; +let classificationSetIconWindow: BrowserWindow | null = null; +let classificationAssociateFolderWindow: BrowserWindow | null = null; +let classificationAggregateWindow: BrowserWindow | null = null; + +/** + * 添加/修改窗口 + * @param id + * @param parentId + */ +function createAddEditWindow(id: number | null, parentId: number | null) { + // 如果窗口存在先关闭窗口 + closeWindow(classificationAddEditWindow); + // 创建窗口 + classificationAddEditWindow = global.classificationAddEditWindow = + new BrowserWindow({ + title: "Dawn Launcher", + frame: false, + parent: global.mainWindow, + height: 174, + width: 400, + type: "toolbar", + maximizable: false, + minimizable: false, + resizable: false, + fullscreenable: false, + focusable: true, + show: false, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + // 参数 + let params = new Map(); + if (id) { + params.set("id", id); + } + if (parentId) { + params.set("parentId", parentId); + } + if (process.env.VITE_DEV_SERVER_URL) { + classificationAddEditWindow.loadURL( + process.env.VITE_DEV_SERVER_URL + + "Classification/AddEdit" + + getURLParams(params) + ); + } else { + classificationAddEditWindow.loadFile(join(process.env.DIST, "index.html"), { + hash: "/Classification/AddEdit", + search: getURLParams(params), + }); + } + classificationAddEditWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 禁用标题栏右键 + classificationAddEditWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + classificationAddEditWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + classificationAddEditWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * 设置图标窗口 + * @param id + */ +function createSetIconWindow(id: number) { + // 如果窗口存在先关闭窗口 + closeWindow(classificationSetIconWindow); + // 创建窗口 + classificationSetIconWindow = global.classificationSetIconWindow = + new BrowserWindow({ + title: "Dawn Launcher", + frame: false, + parent: global.mainWindow, + height: 500, + width: 358, + type: "toolbar", + maximizable: false, + minimizable: false, + resizable: false, + fullscreenable: false, + focusable: true, + show: false, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + // 参数 + let params = new Map(); + params.set("id", id); + if (process.env.VITE_DEV_SERVER_URL) { + classificationSetIconWindow.loadURL( + process.env.VITE_DEV_SERVER_URL + + "Classification/SetIcon" + + getURLParams(params) + ); + } else { + classificationSetIconWindow.loadFile(join(process.env.DIST, "index.html"), { + hash: "/Classification/SetIcon", + search: getURLParams(params), + }); + } + classificationSetIconWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 禁用标题栏右键 + classificationSetIconWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + classificationSetIconWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + classificationSetIconWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * 关联文件夹窗口 + * @param id + */ +function createAssociateFolderWindow(id: number) { + // 如果窗口存在先关闭窗口 + closeWindow(classificationAssociateFolderWindow); + // 创建窗口 + classificationAssociateFolderWindow = + global.classificationAssociateFolderWindow = new BrowserWindow({ + title: "Dawn Launcher", + frame: false, + parent: global.mainWindow, + height: 249, + width: 400, + type: "toolbar", + maximizable: false, + minimizable: false, + resizable: false, + fullscreenable: false, + focusable: true, + show: false, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + // 参数 + let params = new Map(); + params.set("id", id); + if (process.env.VITE_DEV_SERVER_URL) { + classificationAssociateFolderWindow.loadURL( + process.env.VITE_DEV_SERVER_URL + + "Classification/AssociateFolder" + + getURLParams(params) + ); + } else { + classificationAssociateFolderWindow.loadFile( + join(process.env.DIST, "index.html"), + { + hash: "/Classification/AssociateFolder", + search: getURLParams(params), + } + ); + } + classificationAssociateFolderWindow.webContents.setWindowOpenHandler( + ({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + } + ); + // 禁用标题栏右键 + classificationAssociateFolderWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + classificationAssociateFolderWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + classificationAssociateFolderWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * 聚合分类窗口 + * @param id + */ +function createAggregateWindow(id: number) { + // 如果窗口存在先关闭窗口 + closeWindow(classificationAggregateWindow); + // 创建窗口 + classificationAggregateWindow = global.classificationAggregateWindow = + new BrowserWindow({ + title: "Dawn Launcher", + frame: false, + parent: global.mainWindow, + height: 144, + width: 400, + type: "toolbar", + maximizable: false, + minimizable: false, + resizable: false, + fullscreenable: false, + focusable: true, + show: false, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + // 参数 + let params = new Map(); + params.set("id", id); + if (process.env.VITE_DEV_SERVER_URL) { + classificationAggregateWindow.loadURL( + process.env.VITE_DEV_SERVER_URL + + "Classification/Aggregate" + + getURLParams(params) + ); + } else { + classificationAggregateWindow.loadFile( + join(process.env.DIST, "index.html"), + { + hash: "/Classification/Aggregate", + search: getURLParams(params), + } + ); + } + classificationAggregateWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 禁用标题栏右键 + classificationAggregateWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + classificationAggregateWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + classificationAggregateWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * 新建文件夹监听 + */ +function addAssociateFolderWatcher( + classificationId: number, + dir: string, + hiddenItems: string | null +) { + // 先删除原有监听 + deleteAssociateFolderWatcher(classificationId); + // 新建监听 + let data: AssociateFolderData = { + classificationId, + dir, + hiddenItems, + watch: null, + }; + // 定时器 + let timer: NodeJS.Timeout | null = null; + let dirWatch = watch(dir, () => { + if (timer) { + clearTimeout(timer); + timer = null; + } + // 启动定时器,在指定的时间间隔后发送合并后的通知 + timer = setTimeout(() => { + getDirectoryList(classificationId, dir, hiddenItems, false, true); + clearTimeout(timer); + timer = null; + }, 2000); + }); + dirWatch.on("error", () => { + dirWatch.close(); + global.associateFolderWatcher.delete(classificationId); + }); + // 保存 + data.watch = dirWatch; + if (!global.associateFolderWatcher) { + global.associateFolderWatcher = new Map(); + } + global.associateFolderWatcher.set(classificationId, data); +} + +/** + * 删除关联文件夹监听 + */ +function deleteAssociateFolderWatcher(classificationId: number) { + if (global.associateFolderWatcher) { + if (global.associateFolderWatcher.has(classificationId)) { + let data = global.associateFolderWatcher.get(classificationId); + if (data.watch) { + data.watch.close(); + data.watch = null; + } + global.associateFolderWatcher.delete(classificationId); + } + } else { + global.associateFolderWatcher = new Map(); + } +} + +/** + * 设置关联文件夹 + * @param id + * @param dir + * @param hiddenItems + */ +function setAssociateFolder( + id: number, + dir: string | null, + hiddenItems: string | null +) { + // 查询分类 + let classification = selectById(id); + if (classification) { + // 类型 + if (!dir) { + classification.type = 0; + classification.data.associateFolderPath = null; + } else { + classification.type = 1; + classification.data.associateFolderPath = dir; + } + classification.data.associateFolderHiddenItems = hiddenItems; + // 更新 + let res = update(classification); + if (res) { + // 如果类型为1,开始读取文件夹的文件 + if (classification.type === 1) { + // 读取文件夹并创建监听 + getDirectoryList(classification.id, dir, hiddenItems, true, true); + } else { + // 删除监听 + deleteAssociateFolderWatcher(classification.id); + } + return classification; + } + } + return null; +} + +/** + * 初始化关联文件夹 + */ +function initAssociateFolder() { + // 初始化Map + global.associateFolderWatcher = new Map(); + // 查询分类 + let classificationList = list(null); + // 初始化 + for (const classification of classificationList) { + if (classification.type === 1) { + // 读取文件夹并创建监听 + getDirectoryList( + classification.id, + classification.data.associateFolderPath, + classification.data.associateFolderHiddenItems, + true, + true + ); + } + } +} + +/** + * 获取项目布局菜单 + * @param classification + * @returns + */ +function getItemLayoutMenu(classification: Classification) { + // 是否拥有子级 + let hasChild = hasChildClassification(classification.id); + // 菜单 + let submenus: any = [ + new MenuItem({ + label: global.language.default, + icon: + classification.data.itemLayout === "default" && !hasChild + ? getDot() + : null, + click: () => { + updateItemLayout(classification, "default"); + }, + }), + new MenuItem({ + label: global.language.tile, + icon: + classification.data.itemLayout === "tile" && !hasChild + ? getDot() + : null, + click: () => { + updateItemLayout(classification, "tile"); + }, + }), + new MenuItem({ + label: global.language.list, + icon: + classification.data.itemLayout === "list" && !hasChild + ? getDot() + : null, + click: () => { + updateItemLayout(classification, "list"); + }, + }), + ]; + return new MenuItem({ + label: global.language.layout, + submenu: submenus, + }); +} + +/** + * 修改项目布局 + * @param classification + * @param layout + */ +function updateItemLayout( + classification: Classification, + layout: "default" | "tile" | "list" +) { + let resultList = []; + // 尝试获取子级分类 + let childList = list(classification.id); + let idList = []; + // 如果有子级分类的话,连同子级分类一起修改 + if (childList && childList.length > 0) { + idList.push(...childList.map((c) => c.id)); + } + idList.push(classification.id); + // 修改 + for (const id of idList) { + // 查询分类 + let classification = selectById(id); + if (classification) { + classification.data.itemLayout = layout; + if (updateData(classification.id, classification.data)) { + resultList.push({ + id, + layout, + }); + } + } + } + // 通知页面 + sendToWebContent("mainWindow", "onUpdateItemLayout", resultList); +} + +/** + * 获取项目排序菜单 + * @param classification + * @returns + */ +function getItemSortMenu(classification: Classification) { + // 是否拥有子级 + let hasChild = hasChildClassification(classification.id); + // 菜单 + let submenus: any = [ + new MenuItem({ + label: global.language.default, + icon: + classification.data.itemSort === "default" && !hasChild + ? getDot() + : null, + click: () => { + updateItemSort(classification, "default"); + }, + }), + new MenuItem({ + label: global.language.byInitialLetter, + icon: + classification.data.itemSort === "initial" && !hasChild + ? getDot() + : null, + click: () => { + updateItemSort(classification, "initial"); + }, + }), + new MenuItem({ + label: global.language.byLastOpen, + icon: + classification.data.itemSort === "lastOpen" && !hasChild + ? getDot() + : null, + click: () => { + updateItemSort(classification, "lastOpen"); + }, + }), + ]; + if (global.setting.item.openNumber) { + submenus.push( + new MenuItem({ + label: global.language.byOpenNumber, + icon: + classification.data.itemSort === "openNumber" && !hasChild + ? getDot() + : null, + click: () => { + updateItemSort(classification, "openNumber"); + }, + }) + ); + } + return new MenuItem({ + label: global.language.sort, + submenu: submenus, + }); +} + +/** + * 修改项目排序 + * @param classification + * @param sort + */ +function updateItemSort( + classification: Classification, + sort: "default" | "initial" | "openNumber" | "lastOpen" +) { + let resultList = []; + // 尝试获取子级分类 + let childList = list(classification.id); + let idList = []; + // 如果有子级分类的话,连同子级分类一起修改 + if (childList && childList.length > 0) { + idList.push(...childList.map((c) => c.id)); + } + idList.push(classification.id); + // 修改 + for (const id of idList) { + // 查询分类 + let classification = selectById(id); + if (classification && classification.type !== 2) { + classification.data.itemSort = sort; + if (updateData(classification.id, classification.data)) { + resultList.push({ + id, + sort, + }); + } + } + } + // 通知页面 + sendToWebContent("mainWindow", "onUpdateItemSort", resultList); +} + +/** + * 获取项目列数菜单 + * @param classification + * @returns + */ +function getItemColumnNumber(classification: Classification) { + // 菜单 + let submenus: any = [ + new MenuItem({ + label: global.language.default, + icon: !classification.data.itemColumnNumber ? getDot() : null, + click: () => { + updateItemColumnNumber(classification, null); + }, + }), + ]; + for (let i = 0; i < 20; i++) { + submenus.push({ + label: (i + 1).toString(), + icon: + classification.data.itemColumnNumber && + classification.data.itemColumnNumber === i + 1 + ? getDot() + : null, + click: () => { + updateItemColumnNumber(classification, i + 1); + }, + }); + } + return new MenuItem({ + label: global.language.columnNumber, + submenu: submenus, + }); +} + +/** + * 修改项目列数 + * @param classification + * @param columnNumber + */ +function updateItemColumnNumber( + classification: Classification, + columnNumber: number | null +) { + // 查询分类 + let curClassification = selectById(classification.id); + if (curClassification) { + curClassification.data.itemColumnNumber = columnNumber; + if (updateData(curClassification.id, curClassification.data)) { + // 通知页面 + sendToWebContent("mainWindow", "onUpdateItemColumnNumber", { + id: curClassification.id, + columnNumber: columnNumber, + }); + } + } +} + +/** + * 获取项目图标大小菜单 + * @param classification + * @returns + */ +function getItemIconSize(classification: Classification) { + // 是否拥有子级 + let hasChild = hasChildClassification(classification.id); + // 菜单 + let submenus: any = [ + new MenuItem({ + label: global.language.default, + icon: !classification.data.itemIconSize && !hasChild ? getDot() : null, + click: () => { + updateItemIconSize(classification, null); + }, + }), + new MenuItem({ + label: global.language.extraLarge, + icon: + classification.data.itemIconSize === 48 && !hasChild ? getDot() : null, + click: () => { + updateItemIconSize(classification, 48); + }, + }), + new MenuItem({ + label: global.language.large, + icon: + classification.data.itemIconSize === 40 && !hasChild ? getDot() : null, + click: () => { + updateItemIconSize(classification, 40); + }, + }), + new MenuItem({ + label: global.language.medium, + icon: + classification.data.itemIconSize === 32 && !hasChild ? getDot() : null, + click: () => { + updateItemIconSize(classification, 32); + }, + }), + new MenuItem({ + label: global.language.small, + icon: + classification.data.itemIconSize === 24 && !hasChild ? getDot() : null, + click: () => { + updateItemIconSize(classification, 24); + }, + }), + ]; + return new MenuItem({ + label: global.language.icon, + submenu: submenus, + }); +} + +/** + * 修改项目图标大小 + * @param classification + * @param iconSize + */ +function updateItemIconSize( + classification: Classification, + iconSize: number | null +) { + let resultList = []; + // 尝试获取子级分类 + let childList = list(classification.id); + let idList = []; + // 如果有子级分类的话,连同子级分类一起修改 + if (childList && childList.length > 0) { + idList.push(...childList.map((c) => c.id)); + } + idList.push(classification.id); + // 修改 + for (const id of idList) { + // 查询分类 + let classification = selectById(id); + if (classification) { + classification.data.itemIconSize = iconSize; + if (updateData(classification.id, classification.data)) { + resultList.push({ + id, + iconSize, + }); + } + } + } + // 通知页面 + sendToWebContent("mainWindow", "onUpdateItemIconSize", resultList); +} + +/** + * 根据文件夹创建分类 + * @param pathList + */ +function addClassificationByDirectory(pathList: Array) { + // 返回信息 + let resultList = []; + // 循环每个路径 + for (let path of pathList) { + try { + // 获取文件类型 + let stats: Stats | null = null; + try { + stats = statSync(path); + } catch (e) { + path = path.replace(" (x86)", ""); + try { + stats = statSync(path); + } catch (e) {} + } + // 只要文件夹 + if (stats && stats.isDirectory()) { + // 文件夹名称 + let name = basename(path); + // 添加分类 + let classification = add(null, name, null, false); + if (classification) { + // 读取文件夹下的内容 + let files = readdirSync(path); + // 组装路径 + let fileList = []; + for (let file of files) { + fileList.push(join(path, file)); + } + // 返回信息 + resultList.push({ + classification, + fileList, + }); + } + } + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + } + } + return resultList; +} + +/** + * 获取项目显示菜单 + * @param classification + * @returns + */ +function getItemShowOnly(classification: Classification) { + // 是否拥有子级 + let hasChild = hasChildClassification(classification.id); + // 菜单 + let submenus: any = [ + new MenuItem({ + label: global.language.all, + icon: + classification.data.itemShowOnly === "default" && !hasChild + ? getDot() + : null, + click: () => { + updateItemShowOnly(classification, "default"); + }, + }), + new MenuItem({ + label: global.language.showOnlyFiles, + icon: + classification.data.itemShowOnly === "file" && !hasChild + ? getDot() + : null, + click: () => { + updateItemShowOnly(classification, "file"); + }, + }), + new MenuItem({ + label: global.language.showOnlyFolders, + icon: + classification.data.itemShowOnly === "folder" && !hasChild + ? getDot() + : null, + click: () => { + updateItemShowOnly(classification, "folder"); + }, + }), + ]; + return new MenuItem({ + label: global.language.show, + submenu: submenus, + }); +} + +/** + * 修改项目显示 + * @param classification + * @param iconSize + */ +function updateItemShowOnly( + classification: Classification, + showOnly: "default" | "file" | "folder" +) { + let resultList = []; + // 尝试获取子级分类 + let childList = list(classification.id); + let idList = []; + // 如果有子级分类的话,连同子级分类一起修改 + if (childList && childList.length > 0) { + idList.push(...childList.map((c) => c.id)); + } + idList.push(classification.id); + // 修改 + for (const id of idList) { + // 查询分类 + let classification = selectById(id); + if (classification) { + classification.data.itemShowOnly = showOnly; + if (updateData(classification.id, classification.data)) { + resultList.push({ + id, + showOnly, + }); + } + } + } + // 通知页面 + sendToWebContent("mainWindow", "onUpdateItemShowOnly", resultList); +} + +/** + * 将排序为打开次数的分类修改为默认排序 + */ +function updateItemOpenNumberSortToDefualt() { + let resultList = []; + // 查询分类 + let classificationList = list(); + // 筛选出来排序是打开次数的分类 + let filterList = classificationList.filter( + (c) => c.data.itemSort === "openNumber" && (c.type === 0 || c.type === 1) + ); + // 修改 + for (const classification of filterList) { + classification.data.itemSort = "default"; + if (updateData(classification.id, classification.data)) { + resultList.push(classification.id); + } + } + // 通知页面 + sendToWebContent( + "mainWindow", + "onUpdateItemOpenNumberSortToDefualt", + resultList + ); +} + +/** + * 更新聚合分类 + * @param id + * @param sort + * @param itemCount + */ +function updateAggregate( + id: number, + sort: "default" | "initial" | "openNumber" | "lastOpen", + itemCount: number +) { + let classification = selectById(id); + if (classification) { + classification.type = 2; + classification.data.itemSort = sort; + classification.data.aggregateItemCount = itemCount; + let res = update(classification); + if (res) { + deleteByClassificationId(id); + } + return res; + } + return false; +} + +/** + * 更新排除搜索 + * @param id + * @param value + */ +function updateExcludeSearch(id: number, value: boolean) { + // 查询分类 + let classification = selectById(id); + if (classification) { + classification.data.excludeSearch = value; + updateData(id, classification.data); + } +} + +export { + createAddEditWindow, + createSetIconWindow, + createAssociateFolderWindow, + createAggregateWindow, + setAssociateFolder, + addAssociateFolderWatcher, + initAssociateFolder, + deleteAssociateFolderWatcher, + getItemSortMenu, + getItemLayoutMenu, + getItemColumnNumber, + getItemIconSize, + addClassificationByDirectory, + getItemShowOnly, + updateItemOpenNumberSortToDefualt, + updateAggregate, + updateExcludeSearch, +}; diff --git a/electron/main/classification/ipcEvent.ts b/electron/main/classification/ipcEvent.ts new file mode 100644 index 0000000..1f6d006 --- /dev/null +++ b/electron/main/classification/ipcEvent.ts @@ -0,0 +1,336 @@ +import { Menu, MenuItem, ipcMain, dialog } from "electron"; +import { Classification } from "../../../types/classification"; +import { + createAddEditWindow, + createAssociateFolderWindow, + createSetIconWindow, + getItemLayoutMenu, + getItemSortMenu, + getItemColumnNumber, + setAssociateFolder, + getItemIconSize, + addClassificationByDirectory, + getItemShowOnly, + createAggregateWindow, + updateAggregate, + updateExcludeSearch, +} from "./index"; +import { + add, + del, + list, + selectById, + update, + updateOrder, + updateIcon, + hasChildClassification, + batchUpdateFixed, +} from "./data"; +import { setShortcutKey } from "../setting"; +import { closeWindow, getDot, sendToWebContent } from "../commons/index"; + +export default function () { + // 获取分类列表 + ipcMain.on("getClassificationList", (event) => { + event.returnValue = list(null); + }); + // 根据ID查询分类 + ipcMain.on("getClassificationById", (event, args) => { + event.returnValue = selectById(args.id); + }); + // 添加分类 + ipcMain.on("addClassification", (event, args) => { + let classification = add( + args.parentId, + args.name, + args.shortcutKey, + args.globalShortcutKey + ); + setShortcutKey(); + event.returnValue = classification; + }); + // 更新分类 + ipcMain.on("updateClassification", (event, args) => { + let res = update(args); + setShortcutKey(); + event.returnValue = res; + }); + // 更新序号 + ipcMain.on("updateClassificationOrder", (event, args) => { + event.returnValue = updateOrder(args.fromId, args.toId, args.parentId); + }); + // 更新图标 + ipcMain.on("updateClassificationIcon", (event, args) => { + event.returnValue = updateIcon(args.id, args.icon); + }); + // 显示新增/修改窗口 + ipcMain.on("showClassificationAddEditWindow", () => { + if (global.classificationAddEditWindow) { + global.classificationAddEditWindow.show(); + } + }); + // 关闭新增/修改窗口 + ipcMain.on("closeClassificationAddEditWindow", () => { + closeWindow(global.classificationAddEditWindow); + }); + // 显示设置图标窗口 + ipcMain.on("showClassificationSetIconWindow", () => { + if (global.classificationSetIconWindow) { + global.classificationSetIconWindow.show(); + } + }); + // 关闭设置图标窗口 + ipcMain.on("closeClassificationSetIconWindow", () => { + closeWindow(global.classificationSetIconWindow); + }); + // 右键菜单 + ipcMain.on("showClassificationRightMenu", (event, args) => { + // 锁定/解锁分类 + let lockClassification: boolean = args.lockClassification; + // 分类 + let classification: Classification | null = args.classification; + // 菜单 + let menuList: Array = []; + // 组装菜单 + if (!classification) { + menuList.push( + new MenuItem({ + label: global.language.newClassification, + click: () => { + // 创建窗口 + createAddEditWindow(null, null); + }, + }), + new MenuItem({ type: "separator" }), + new MenuItem({ + label: !lockClassification + ? global.language.lockClassification + : global.language.unlockClassification, + click: () => { + sendToWebContent("mainWindow", "onLockClassification", []); + }, + }) + ); + } else { + if (!classification.parentId && classification.type === 0) { + menuList.push( + new MenuItem({ + label: global.language.newSubclassification, + click: () => { + // 创建窗口 + createAddEditWindow(null, classification.id); + }, + }), + new MenuItem({ type: "separator" }) + ); + } + menuList.push( + new MenuItem({ + label: global.language.fixedClassification, + icon: classification.data.fixed ? getDot() : null, + click: () => { + batchUpdateFixed( + classification.data.fixed ? null : classification.id + ); + sendToWebContent( + "mainWindow", + "onUpdateClassificationFixed", + classification.data.fixed ? null : classification.id + ); + }, + }) + ); + if (classification.type === 0 || classification.type === 1) { + menuList.push( + new MenuItem({ + label: global.language.excludeSearch, + icon: classification.data.excludeSearch ? getDot() : null, + click: () => { + updateExcludeSearch( + classification.id, + !classification.data.excludeSearch + ); + sendToWebContent( + "mainWindow", + "onUpdateClassificationExcludeSearch", + { + id: classification.id, + value: !classification.data.excludeSearch, + } + ); + }, + }) + ); + } + menuList.push(new MenuItem({ type: "separator" })); + menuList.push( + new MenuItem({ + label: global.language.setIcon, + click: () => { + // 创建窗口 + createSetIconWindow(classification.id); + }, + }), + new MenuItem({ + label: global.language.deleteIcon, + click: () => { + let res = updateIcon(classification.id, null); + if (res) { + sendToWebContent("mainWindow", "onUpdateClassificationIcon", { + id: classification.id, + icon: null, + }); + } + }, + }) + ); + // 子分类、没有子分类的父级分类可以显示 + if ( + classification.parentId || + (!classification.parentId && !hasChildClassification(classification.id)) + ) { + menuList.push(new MenuItem({ type: "separator" })); + if (classification.type === 0 || classification.type === 1) { + menuList.push( + new MenuItem({ + label: global.language.associateFolder, + click: () => { + // 创建窗口 + createAssociateFolderWindow(classification.id); + }, + }) + ); + } + if (classification.type === 0 || classification.type === 2) { + menuList.push( + new MenuItem({ + label: global.language.aggregateClassification, + click: () => { + // 创建窗口 + createAggregateWindow(classification.id); + }, + }) + ); + } + } + // 分割线 + menuList.push(new MenuItem({ type: "separator" })); + if (classification.type !== 2) { + // 排序 + menuList.push(getItemSortMenu(classification)); + } + // 布局 + menuList.push(getItemLayoutMenu(classification)); + // 列数 + if ( + !hasChildClassification(classification.id) && + (classification.data.itemLayout === "list" || + (global.setting.item.layout === "list" && + classification.data.itemLayout === "default")) + ) { + // 只有子级分类或没有子级分类的父级分类并且布局是列表的才显示列数 + menuList.push(getItemColumnNumber(classification)); + } + // 图标 + menuList.push(getItemIconSize(classification)); + // 显示 + menuList.push(getItemShowOnly(classification)); + // 编辑/删除 + menuList.push( + new MenuItem({ type: "separator" }), + new MenuItem({ + label: global.language.edit, + click: () => { + // 创建窗口 + createAddEditWindow(classification.id, null); + }, + }), + new MenuItem({ + label: global.language.delete, + click: () => { + let res = dialog.showMessageBoxSync(global.mainWindow, { + message: global.language.deleteClassificationPrompt, + buttons: [global.language.ok, global.language.cancel], + type: "question", + noLink: true, + cancelId: 1, + }); + if (res === 0) { + // 删除数据 + if (del(classification.id)) { + // 快捷键 + setShortcutKey(); + // 通知前端删除数据 + sendToWebContent( + "mainWindow", + "onDeleteClassification", + classification.id + ); + } + } + }, + }) + ); + } + // 载入菜单 + let menu = Menu.buildFromTemplate(menuList); + // 菜单显示 + menu.on("menu-will-show", () => { + global.classificationRightMenu = true; + }); + // 菜单关闭 + menu.on("menu-will-close", () => { + global.classificationRightMenu = false; + }); + // 显示 + menu.popup(); + }); + // 显示关联文件夹窗口 + ipcMain.on("showClassificationAssociateFolderWindow", () => { + if (global.classificationAssociateFolderWindow) { + global.classificationAssociateFolderWindow.show(); + } + }); + // 关闭关联文件夹窗口 + ipcMain.on("closeClassificationAssociateFolderWindow", () => { + closeWindow(global.classificationAssociateFolderWindow); + }); + // 设置关联文件夹 + ipcMain.on("setClassificationAssociateFolder", (event, args) => { + // 分类ID + let id: number = args.id; + // 文件夹路径 + let dir: string | null = args.dir; + if (!dir || dir.trim() === "") { + dir = null; + } + // 隐藏项 + let hiddenItems: string | null = args.hiddenItems; + // 设置 + event.returnValue = setAssociateFolder(id, dir, hiddenItems); + }); + // 是否拥有子分类 + ipcMain.on("hasChildClassification", (event, args) => { + event.returnValue = hasChildClassification(args); + }); + // 根据文件夹创建分类 + ipcMain.on("addClassificationByDirectory", (event, args) => { + let res = addClassificationByDirectory(args); + // 通知页面 + sendToWebContent("mainWindow", "onAddClassificationByDirectory", res); + }); + // 显示聚合分类窗口 + ipcMain.on("showClassificationAggregateWindow", () => { + if (global.classificationAggregateWindow) { + global.classificationAggregateWindow.show(); + } + }); + // 关闭聚合分类窗口 + ipcMain.on("closeClassificationAggregateWindow", () => { + closeWindow(global.classificationAggregateWindow); + }); + // 更新聚合分类 + ipcMain.on("updateClassificationAggregate", (event, args) => { + event.returnValue = updateAggregate(args.id, args.sort, args.itemCount); + }); +} diff --git a/electron/main/commons/cacheData.ts b/electron/main/commons/cacheData.ts new file mode 100644 index 0000000..a1e768f --- /dev/null +++ b/electron/main/commons/cacheData.ts @@ -0,0 +1,12 @@ +import Store from "electron-store"; +import { getUserDataPath } from "."; + +const cacheStore = new Store({ + name: "Cache", + clearInvalidConfig: true, + cwd: getUserDataPath(), +}); + +export default { + cacheStore, +}; diff --git a/electron/main/commons/index.ts b/electron/main/commons/index.ts new file mode 100644 index 0000000..75f208c --- /dev/null +++ b/electron/main/commons/index.ts @@ -0,0 +1,481 @@ +import { Result } from "../../../types/common"; +import { resolve, dirname, relative, join } from "node:path"; +import { mkdirSync, existsSync } from "node:fs"; +import mime from "mime"; +import retry from "retry"; +import request from "request"; +import * as cheerio from "cheerio"; +import { isAbsolutePath } from "../../../commons/utils/common"; +import { BrowserWindow, app, dialog, nativeImage, nativeTheme } from "electron"; +import { getRandomUserAgent, iconExts } from "../../commons/utils"; +import URI from "urijs"; +import { hideMainWindow } from "../main"; +import { hideQuickSearchWindow } from "../search"; + +/** + * 获取代理 + */ +function getProxy() { + if ( + global.setting.network.useProxy && + global.setting.network.proxy.address && + global.setting.network.proxy.address.trim() !== "" + ) { + let uri = new URI(global.setting.network.proxy.address); + if (uri.protocol() && uri.protocol().trim() !== "") { + let address = uri.protocol().toLowerCase() + "://"; + if ( + global.setting.network.proxy.username && + global.setting.network.proxy.username.trim() !== "" && + global.setting.network.proxy.password && + global.setting.network.proxy.password.trim() !== "" + ) { + address += + global.setting.network.proxy.username + + ":" + + global.setting.network.proxy.password + + "@"; + } + address += uri.hostname() + ":" + uri.port(); + return address; + } + } + return null; +} + +/** + * 下载图片 + * @param windowName + * @param url + */ +function downloadImage(windowName: string, url: string) { + let result: Result = { + status: false, + message: global.language.downloadImagePrompt1, + icon: null, + name: null, + }; + // 重试 + const operation = retry.operation({ + retries: 5, // 最多重试 5 次 + factor: 1, // 每次重试之间的时间间隔加倍 + minTimeout: 1000, // 第一次重试之前等待的时间 + maxTimeout: 5000, // 最长等待时间 + }); + operation.attempt((currentAttempt) => { + // 下载图片 + request( + { + uri: url, + proxy: getProxy(), + encoding: null, + timeout: 5000, + headers: { + "User-Agent": getRandomUserAgent(), + }, + }, + function (error, response, body) { + if (operation.retry(error)) { + return; + } + if ( + !error && + response.statusCode >= 200 && + response.statusCode <= 299 + ) { + if (response.headers && response.headers["content-type"]) { + let ext = mime.getExtension(response.headers["content-type"]); + if (iconExts.includes(ext)) { + let buffer = Buffer.from(body); + result.icon = + "data:" + + mime.getType(response.headers["content-type"]) + + ";base64," + + buffer.toString("base64"); + result.status = true; + result.message = null; + } else { + result.icon = null; + result.status = false; + result.message = global.language.downloadImagePrompt2; + } + } + } + // window + sendToWebContent(windowName, "onDownloadImage", result); + } + ); + }); +} + +/** + * 获取网址信息 + * @param windowName + * @param url + * @param redirect + */ +function getURLInfo(windowName: string, url: string, redirect: boolean) { + let result: Result = { + status: false, + message: null, + name: null, + icon: null, + }; + // 重试 + const operation = retry.operation({ + retries: 5, // 最多重试 5 次 + factor: 1, // 每次重试之间的时间间隔加倍 + minTimeout: 1000, // 第一次重试之前等待的时间 + maxTimeout: 5000, // 最长等待时间 + }); + try { + // 发起请求 + operation.attempt((currentAttempt) => { + request( + { + uri: url, + proxy: getProxy(), + timeout: 5000, + headers: { + "User-Agent": getRandomUserAgent(), + }, + }, + function (error, response, body) { + if (operation.retry(error)) { + return; + } + if ( + !error && + response.statusCode >= 200 && + response.statusCode <= 299 + ) { + const $ = cheerio.load(body); + // 是否有跳转标签 + let refresh = $("meta[http-equiv='refresh']"); + // content + let content = refresh.attr("content"); + if (content && content.trim() !== "" && redirect) { + // 如果有跳转标签的话,就请求新网址并获取网址信息 + let contentSplit = content.split(";"); + let urlProperty = contentSplit[contentSplit.length - 1]; + let urlPropertySplit = urlProperty.split("="); + let newURL = urlPropertySplit[urlPropertySplit.length - 1]; + // 重新获取新网址信息 + getURLInfo(windowName, newURL, false); + } else { + // 解析HTML并返回信息 + analysisHTML(windowName, url, body); + } + } else { + sendUrlInfo(windowName, result); + } + } + ); + }); + } catch (e) { + sendUrlInfo(windowName, result); + } +} + +/** + * 解析HTML并返回信息 + * @param windowName + * @param url + * @param data + */ +function analysisHTML(windowName: string, url: string, data: string) { + let result: Result = { + status: false, + message: null, + name: null, + icon: null, + }; + try { + // 解析HTML + let $ = cheerio.load(data); + // 获取标题 + result.name = $("head").find("title").text(); + // 获取图标URL + let iconURL: string | null = null; + let icon = $("link[rel='icon']"); + let href = icon.attr("href"); + if (href && href.trim() !== "") { + iconURL = href; + } else { + let shortcutIcon = $("link[rel='shortcut icon']"); + let shortcutIconhref = shortcutIcon.attr("href"); + if (shortcutIconhref && shortcutIconhref.trim() !== "") { + iconURL = shortcutIconhref; + } else { + iconURL = "/favicon.ico"; + } + } + if (iconURL) { + // 去掉类似//www.baidu.com/favicon.ico这样域名的”//“字符 + if (iconURL.indexOf("//") === 0) { + iconURL = "http:" + iconURL; + } + // 无协议头,使用当前网址域名 + if (iconURL.indexOf("http://") < 0 && iconURL.indexOf("https://") < 0) { + iconURL = url + (iconURL.indexOf("//") === 0 ? "" : "//") + iconURL; + } + // 重试 + const operation = retry.operation({ + retries: 5, // 最多重试 5 次 + factor: 1, // 每次重试之间的时间间隔加倍 + minTimeout: 1000, // 第一次重试之前等待的时间 + maxTimeout: 5000, // 最长等待时间 + }); + operation.attempt((currentAttempt) => { + // 下载图标 + request( + { + uri: iconURL, + proxy: getProxy(), + encoding: null, + timeout: 5000, + headers: { + "User-Agent": getRandomUserAgent(), + }, + }, + function (error, response, body) { + if (operation.retry(error)) { + return; + } + if ( + !error && + response.statusCode >= 200 && + response.statusCode <= 299 + ) { + let buffer = Buffer.from(body); + result.icon = + "data:" + + mime.getType(iconURL) + + ";base64," + + buffer.toString("base64"); + result.status = true; + sendUrlInfo(windowName, result); + } else { + sendUrlInfo(windowName, result); + } + } + ); + }); + } else { + sendUrlInfo(windowName, result); + } + } catch (e) { + sendUrlInfo(windowName, result); + } +} + +/** + * 发送网址信息 + * @param result + */ +function sendUrlInfo(windowName: string, result: Result) { + sendToWebContent(windowName, "onGetURLInfo", result); +} + +/** + * 路径转换 + * @param path + */ +function convertPath(path: string) { + let appPath = + process.env.NODE_ENV === "development" + ? resolve(".") + : dirname(process.execPath); + if (isAbsolutePath(path)) { + return relative(appPath, path); + } else { + return resolve(appPath, path); + } +} + +/** + * 发送IPC到所有窗口 + * @param channel + * @param data + */ +function sendAllWindows(channel: string, data: any) { + for (const window of BrowserWindow.getAllWindows()) { + if (!window.isDestroyed()) { + window.webContents.send(channel, data); + } + } +} +/** + * 获取窗口实例 + * @param name + */ +function getWindow(name: string): BrowserWindow | null { + let window: BrowserWindow | null = null; + if (name === "mainWindow") { + window = global.mainWindow; + } else if (name === "quickSearchWindow") { + window = global.quickSearchWindow; + } else if (name === "settingWindow") { + window = global.settingWindow; + } else if (name === "classificationAddEditWindow") { + window = global.classificationAddEditWindow; + } else if (name === "classificationSetIconWindow") { + window = global.classificationSetIconWindow; + } else if (name === "classificationAssociateFolderWindow") { + window = global.classificationAssociateFolderWindow; + } else if (name === "classificationAggregateWindow") { + window = global.classificationAggregateWindow; + } else if (name === "itemAddEditWindow") { + window = global.itemAddEditWindow; + } else if (name === "itemNetworkIconWindow") { + window = global.itemNetworkIconWindow; + } else if (name === "itemSVGIconWindow") { + window = global.itemSVGIconWindow; + } else if (name === "aboutWindow") { + window = global.aboutWindow; + } else if (name === "backupRestoreDataWindow") { + window = global.backupRestoreDataWindow; + } + if (window && !window.isDestroyed()) { + return window; + } else { + return null; + } +} + +/** + * 关闭窗口 + * @param window + */ +function closeWindow(window: BrowserWindow | null) { + if (window && !window.isDestroyed() && window.isVisible()) { + window.close(); + } +} + +/** + * 获取图标点 + */ +function getDot() { + return nativeImage.createFromDataURL( + !nativeTheme.shouldUseDarkColors + ? "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERJREFUOE9jZKAQMFKon2HUAAa8YWDDwMBQCQ3kdgYGhiPYAhxfIG5lYGDwgmraxsDA4E13Ayj2AlFpbDQh4U9IRAUiAEXYCBFBtkaAAAAAAElFTkSuQmCC" + : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAEtJREFUOE9jZKAQMFKon2HUAAbcYfD//38bBgaGSmggtzMyMh7BFuA4A/H///9bGRgYvKCatjEyMnrT3QDKvEBsAhtNSHgSErGBCAD0gBQREV/HsgAAAABJRU5ErkJggg==" + ); +} + +/** + * 发送消息到页面 + * @param windowName + * @param listener + * @param params + */ +function sendToWebContent(windowName: string, listener: string, params: any) { + // 获取窗口 + let window = getWindow(windowName); + if (window && !window.isDestroyed()) { + window.webContents.send(listener, params); + } +} + +/** + * 关闭所有子进程 + */ +function closeAllChildProcess() { + if (global.childProcessMap) { + global.childProcessMap.forEach((value, key) => { + try { + value.utilityProcess.kill(); + } catch (e) {} + try { + value.port1.close(); + } catch (e) {} + try { + value.port2.close(); + } catch (e) {} + }); + global.childProcessMap.clear(); + } +} + +/** + * 打开后隐藏窗口 + * @param type + */ +function openAfterHideWindow(type: string) { + if (type === "main" || type === "search") { + if (global.setting.item.openAfterHideMainInterface) { + hideMainWindow(); + } + } else if (type === "quickSearch") { + if (global.setting.quickSearch.openAfterHideQuickSearchWindow) { + hideQuickSearchWindow(); + } + } +} + +/** + * 错误提示框 + * @param windowName + * @param message + */ +function showErrorMessageBox(windowName: string, message: string) { + dialog.showMessageBoxSync(getWindow(windowName), { + message: message, + buttons: [global.language.ok], + type: "error", + noLink: true, + }); +} + +/** + * 重启 + */ +function relaunch() { + app.relaunch(); + app.quit(); +} + +// 数据存储目录 +function getUserDataPath() { + let userDataPath = app.getPath("userData"); + if ( + process.env.NODE_ENV !== "development" && + import.meta.env.VITE_INSTALL === "false" + ) { + userDataPath = join(dirname(process.execPath), "data"); + if (!existsSync(userDataPath)) { + mkdirSync(userDataPath, { recursive: true }); + } + } + return userDataPath; +} + +/** + * 获取主背景颜色 + */ +function getMainBackgorunColor() { + let backgroundColor = global.setting.appearance.theme.mainBackgroundColor; + if (backgroundColor.length === 9) { + return backgroundColor.substring(0, 7); + } else { + return backgroundColor; + } +} + +export { + downloadImage, + getURLInfo, + convertPath, + sendAllWindows, + closeWindow, + getDot, + getWindow, + sendToWebContent, + closeAllChildProcess, + openAfterHideWindow, + showErrorMessageBox, + relaunch, + getUserDataPath, + getMainBackgorunColor, +}; diff --git a/electron/main/commons/ipcEvent.ts b/electron/main/commons/ipcEvent.ts new file mode 100644 index 0000000..ee38d27 --- /dev/null +++ b/electron/main/commons/ipcEvent.ts @@ -0,0 +1,166 @@ +import { app, dialog, ipcMain, OpenDialogSyncOptions, shell } from "electron"; +import { getFileIcon } from "../../commons/utils"; +import mime from "mime"; +import { ShortcutInfo } from "../../../types/common"; +import { + convertPath, + downloadImage, + getURLInfo, + sendToWebContent, + showErrorMessageBox, +} from "."; +import { statSync } from "node:fs"; +import { getWindow } from "../commons/index"; + +export default function () { + // emit + ipcMain.on("emit", (event, args) => { + sendToWebContent(args.windowName, args.listener, args.paylod); + }); + // 错误提示框 + ipcMain.on("showErrorMessageBox", (event, args) => { + showErrorMessageBox(args.windowName, args.message); + }); + // 信息提示框 + ipcMain.on("showInfoMessageBox", (event, args) => { + dialog.showMessageBoxSync(getWindow(args.windowName), { + message: args.message, + buttons: [global.language.ok], + type: "info", + noLink: true, + }); + }); + // 对话框 + ipcMain.on("showConfirmBox", (event, args) => { + // 弹出对话框 + let res = dialog.showMessageBoxSync(getWindow(args.windowName), { + message: args.message, + buttons: [global.language.ok, global.language.cancel], + type: "question", + noLink: true, + cancelId: 1, + }); + event.returnValue = res === 0; + }); + // 选择文件 + ipcMain.on("selectFile", (event, args) => { + // 窗口名称 + let windowName: string = args.windowName; + // 是否寻找目标 + let target: boolean = args.target; + // 默认路径 + let defaultPath: string | null = args.defaultPath; + // 参数 + let options: OpenDialogSyncOptions = {}; + if (defaultPath && defaultPath.trim() !== "") { + options.defaultPath = defaultPath; + } else { + options.defaultPath = app.getPath("desktop"); + } + let filePathList = dialog.showOpenDialogSync( + getWindow(windowName), + options + ); + if (filePathList && filePathList.length > 0) { + let filePath = filePathList[0]; + if (target) { + if (mime.getType(filePath) === "application/x-ms-shortcut") { + // 获取真实文件路径和参数 + let shortcutInfo: ShortcutInfo | null = + global.addon.getShortcutFileInfo(filePath); + if (shortcutInfo && shortcutInfo.target) { + // 路径 + filePath = shortcutInfo.target; + } + } + } + event.returnValue = filePath; + } else { + event.returnValue = null; + } + }); + // 选择文件夹 + ipcMain.on("selectDirectory", (event, args) => { + // 窗口名称 + let windowName: string = args.windowName; + // 默认路径 + let defaultPath: string | null = args.defaultPath; + // 参数 + let options: OpenDialogSyncOptions = { + properties: ["openDirectory"], + }; + if (defaultPath && defaultPath.trim() !== "") { + options.defaultPath = defaultPath; + } else { + options.defaultPath = app.getPath("desktop"); + } + let dirPathList = dialog.showOpenDialogSync(getWindow(windowName), options); + if (dirPathList && dirPathList.length > 0) { + let dirPath = dirPathList[0]; + event.returnValue = dirPath; + } else { + event.returnValue = null; + } + }); + // 获取图标 + ipcMain.on("getFileIcon", (event, args) => { + // 窗口名称 + let windowName: string = args.windowName; + // 路径 + let filePath: string | null = args.path; + if (filePath) { + // 图标 + let icon: string | null = getFileIcon(filePath); + // 发送到页面 + sendToWebContent(windowName, "onGetFileIcon", icon); + } + }); + // 下载图片 + ipcMain.on("downloadImage", (event, args) => { + downloadImage(args.windowName, args.url); + }); + // 获取网址信息 + ipcMain.on("getURLInfo", (event, args) => { + getURLInfo(args.windowName, args.url, true); + }); + // 转换路径 + ipcMain.on("convertPath", (event, args) => { + event.returnValue = convertPath(args.path); + }); + // 路径是否存在 + ipcMain.on("pathExist", (event, args) => { + try { + statSync(args.path); + event.returnValue = true; + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + event.returnValue = false; + } + }); + // 是否是文件 + ipcMain.on("isFile", (event, args) => { + try { + const stats = statSync(args.path); + event.returnValue = stats.isFile(); + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + event.returnValue = true; + } + }); + // 打开URL + ipcMain.on("openURL", (event, args) => { + shell.openExternal(args); + }); + // 获取版本 + ipcMain.on("getVersion", (event, args) => { + event.returnValue = app.getVersion(); + }); + // 退出 + ipcMain.on("exit", () => { + app.quit(); + }); +} diff --git a/electron/main/data/data.ts b/electron/main/data/data.ts new file mode 100644 index 0000000..f5ced59 --- /dev/null +++ b/electron/main/data/data.ts @@ -0,0 +1,486 @@ +import Database from "better-sqlite3-multiple-ciphers"; +import { + getCustomDataSqlite3, + getDataSqlite3, +} from "../../commons/betterSqlite3"; +import Store from "electron-store"; +import { extname, parse } from "node:path"; +import { + newClassification, + newClassificationData, + newItem, + newItemData, +} from "../../../commons/utils/common"; +import { add as addClassification } from "../classification/data"; +import { add as addItem } from "../item/data"; +import { getSetting } from "../../../commons/utils/setting"; +import { add as addSetting } from "../setting/data"; + +/** + * 恢复数据 + * @param filePath + */ +function restore(filePath: string) { + // 获取文件后缀 + let ext = extname(filePath); + if (ext.toLowerCase() === ".db") { + // 数据库文件 + return databaseRestore(filePath); + } else if (ext.toLowerCase() === ".json") { + // 旧版JSON + return jsonRestore(filePath); + } + return false; +} + +/** + * 数据库恢复数据 + * @param filePath + * @returns + */ +function databaseRestore(filePath: string) { + try { + // 获取导入DB + let importDB = getCustomDataSqlite3(filePath); + // 查询分类数据 + let classificationList = importDB + .prepare("SELECT * FROM classification") + .all(); + // 查询项目数据 + let itemList = importDB.prepare("SELECT * FROM item").all(); + // 查询设置数据 + let setting = importDB.prepare("SELECT * FROM setting").all(); + // 查询ID索引表数据 + let sequence = importDB.prepare("SELECT * FROM sqlite_sequence").all(); + // 获取当前DB + let db = getDataSqlite3(); + // 开启事务 + db.transaction(() => { + // 清空并导入数据 + clearAndInsert(db, "classification", classificationList); + clearAndInsert(db, "item", itemList); + clearAndInsert(db, "setting", setting); + clearAndInsert(db, "sqlite_sequence", sequence); + })(); + return true; + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + } + return false; +} + +/** + * 清空并插入数据 + * @param tableName + * @param list + */ +function clearAndInsert( + db: Database.Database, + tableName: string, + list: Array +) { + // 清空数据 + db.prepare(`DELETE FROM ${tableName}`).run(); + // 插入数据 + list.forEach((row) => { + const keys = Object.keys(row); + const columns = keys.map((key) => `\`${key}\``); + const placeholders = keys.map(() => "?").join(","); + const values = keys.map((key) => row[key]); + db.prepare( + `INSERT INTO ${tableName} (${columns.join(",")}) VALUES (${placeholders})` + ).run(values); + }); +} + +/** + * JSON恢复数据 + * @param filePath + * @returns + */ +function jsonRestore(filePath: string) { + try { + // 获取当前DB + let db = getDataSqlite3(); + // 解析路径 + let pathParse = parse(filePath); + // 读取JSON + const store = new Store({ + name: pathParse.name, + cwd: pathParse.dir, + fileExtension: pathParse.ext.replace(".", ""), + encryptionKey: "0b52eb58-4c0f-5ff1-b062-031546a8d269", + }); + // 开启事务 + db.transaction(() => { + // 图标数据 + let iconData = store.get("iconData") as Array; + // 清空数据 + db.prepare(`DELETE FROM classification`).run(); + db.prepare(`DELETE FROM item`).run(); + db.prepare(`DELETE FROM setting`).run(); + db.prepare(`DELETE FROM sqlite_sequence`).run(); + // 导入数据 + let list = store.get("list") as Array; + if (list && list.length > 0) { + for (let i = 0; i < list.length; i++) { + let parent = list[i]; + // 添加分类 + let classification = jsonAddClassification(parent, null); + if (classification) { + if (parent.childList && parent.childList.length > 0) { + // 子分类 + for (let j = 0; j < parent.childList.length; j++) { + const child = parent.childList[j]; + let childClassification = jsonAddClassification( + child, + classification.id + ); + if ( + childClassification && + child.itemList && + child.itemList.length > 0 + ) { + // 项目 + for (let k = 0; k < child.itemList.length; k++) { + jsonAddItem( + child.itemList[k], + child, + childClassification.id, + iconData + ); + } + } + } + } else { + if (parent.itemList && parent.itemList.length > 0) { + // 项目 + for (let k = 0; k < parent.itemList.length; k++) { + jsonAddItem( + parent.itemList[k], + parent, + classification.id, + iconData + ); + } + } + } + } + } + } + // 设置 + if (store.get("setting")) { + jsonAddSetting(store.get("setting")); + } + })(); + return true; + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + } + return false; +} + +/** + * 添加分类 + * @param oldClassification + * @param parentId + * @returns + */ +function jsonAddClassification( + oldClassification: any, + parentId: number | null +) { + // 排序 + let itemSort: "default" | "initial" | "openNumber" | "lastOpen" = "default"; + // 如果是聚合分类的话,获取聚合分类排序,否则就获取普通排序 + if ( + oldClassification.aggregateSort && + oldClassification.aggregateSort.trim() != "" && + (oldClassification.aggregateSort == "initial" || + oldClassification.aggregateSort == "openNumber" || + oldClassification.aggregateSort == "lastOpen") + ) { + // 聚合分类 + itemSort = oldClassification.aggregateSort; + } else if ( + oldClassification.sort == "initial" || + oldClassification.sort == "openNumber" || + oldClassification.sort == "lastOpen" + ) { + // 普通 + itemSort = oldClassification.sort; + } + let data = newClassificationData({ + icon: oldClassification.icon, + excludeSearch: oldClassification.excludeSearch, + itemLayout: + oldClassification.layout == "tile" || oldClassification.layout == "list" + ? oldClassification.layout + : "default", + itemSort: itemSort, + itemColumnNumber: oldClassification.columnNumber, + itemIconSize: oldClassification.iconSize, + itemShowOnly: + oldClassification.showOnly == "file" || + oldClassification.showOnly == "folder" + ? oldClassification.showOnly + : "default", + associateFolderHiddenItems: oldClassification.hiddenItem, + associateFolderPath: oldClassification.mapDirectory, + aggregateItemCount: oldClassification.aggregateItemNumber, + }); + // 类型 0:普通分类 1:关联文件夹 2:聚合分类 + let type = 0; + if ( + oldClassification.mapDirectory && + oldClassification.mapDirectory.trim() != "" + ) { + // 关联文件夹 + type = 1; + } else if ( + oldClassification.aggregateSort && + oldClassification.aggregateSort.trim() != "" + ) { + // 聚合分类 + type = 2; + } + let classification = newClassification({ + parentId, + name: oldClassification.name, + type, + data, + shortcutKey: oldClassification.shortcutKey, + globalShortcutKey: oldClassification.globalShortcutKey, + }); + return addClassification( + classification.parentId, + classification.name, + classification.shortcutKey, + classification.globalShortcutKey, + classification.data, + classification.type + ); +} + +/** + * 添加项目 + * @param oldItem + * @param oldClassification + * @param classificationId + * @param iconData + */ +function jsonAddItem( + oldItem: any, + oldClassification: any, + classificationId: number, + iconData: Array +) { + // 类型 + let type = oldItem.type; + if (type == 4) { + type = 5; + } else if (type == 5) { + type = 4; + } + // 多项目不导入 + if (type == 5) { + return null; + } + // 合并目标 + let target = oldItem.path; + if (oldItem.url && oldItem.url.trim() != "") { + // 网址 + target = oldItem.url; + } else if (oldItem.shell && oldItem.shell.trim() != "") { + // 系统 + target = oldItem.shell; + } + // 图标 + let icon = oldItem.icon; + if (iconData) { + for (let i = 0; i < iconData.length; i++) { + const data = iconData[i]; + if (oldClassification.parentId) { + if ( + data.classificationParentId == oldClassification.parentId && + data.classificationChildId == oldClassification.id && + data.itemId == oldItem.id && + data.icon && + data.icon.trim() != "" + ) { + icon = data.icon; + } + } else { + if ( + data.classificationParentId == oldClassification.id && + data.itemId == oldItem.id && + data.icon && + data.icon.trim() != "" + ) { + icon = data.icon; + } + } + } + } + let data = newItemData({ + startLocation: oldItem.startLocation, + target, + params: oldItem.params, + runAsAdmin: oldItem.admin, + icon, + htmlIcon: + !oldItem.htmlIcon || oldItem.htmlIcon.trim() == "" + ? null + : oldItem.htmlIcon, + remark: oldItem.remark, + iconBackgroundColor: oldItem.useAppxBackgroundColor, + fixedIcon: oldItem.notRefreshIcon, + openNumber: oldItem.openNumber, + lastOpen: oldItem.lastOpen, + quickSearchOpenNumber: oldItem.quickSearchOpenNumber, + quickSearchLastOpen: oldItem.quickSearchLastOpen, + }); + let item = newItem({ + classificationId, + name: oldItem.name, + type, + data, + shortcutKey: oldItem.shortcutKey, + globalShortcutKey: oldItem.globalShortcutKey, + }); + return addItem(item, false); +} + +/** + * 添加设置 + * @param oldSetting + */ +function jsonAddSetting(oldSetting: any) { + let setting = getSetting(null); + // 常规 + if (oldSetting.general) { + setting.general.startup = oldSetting.general.startup; + setting.general.startupTray = oldSetting.general.startupTray; + setting.general.showHideShortcutKey = + oldSetting.general.showHideShortcutKey; + setting.general.alwaysTop = oldSetting.general.alwaysTop; + setting.general.edgeAutoHide = oldSetting.general.edgeAutoHide; + setting.general.lockSize = oldSetting.general.lockSize; + setting.general.hideLoseFocus = oldSetting.general.hideLosingFocus; + setting.general.hideTray = oldSetting.general.hideTray; + setting.general.showHideMouseWheelClick = + oldSetting.general.showHideMouseWheelClick; + setting.general.fixedPosition = oldSetting.general.fixedPosition; + setting.general.alwaysCenter = oldSetting.general.alwaysCenter; + setting.general.showFollowMousePosition = + oldSetting.general.showFollowMousePosition; + setting.general.notDisturb = oldSetting.general.notDisturb; + setting.general.showHideDoubleClickTaskbar = + oldSetting.general.doubleClickTaskbar; + setting.general.delayDisplayMs = oldSetting.general.delayDisplayMS; + setting.general.delayHideMs = oldSetting.general.delayHidingMS; + setting.general.switchEnglish = oldSetting.general.switchEnglish; + if (oldSetting.item) { + setting.general.searchShowHideShortcutKey = + oldSetting.item.searchShortcutKey; + } + } + // 分类 + if (oldSetting.classification) { + setting.classification.width = oldSetting.classification.width; + setting.classification.layout = oldSetting.classification.layout; + setting.classification.mouseHover = oldSetting.classification.mouseHover; + setting.classification.mouseHoverMs = + oldSetting.classification.mouseHoverMS; + setting.classification.mouseWheel = oldSetting.classification.mouseWheel; + setting.classification.rememberSelectionState = + oldSetting.classification.rememberSelectionState; + setting.classification.nameAlign = oldSetting.classification.nameAlign; + setting.classification.mode = oldSetting.classification.mode; + setting.classification.autoSwitchClassification = + oldSetting.classification.autoSwitchClassification; + setting.classification.hideWindowCollapseSubClassification = + oldSetting.classification.hideWindowFoldChildClassification; + setting.classification.switchClassificationCollapseOtherSubClassification = + oldSetting.classification.switchClassificationCollapseOtherSubClassification; + } + // 项目 + if (oldSetting.item) { + setting.item.layout = oldSetting.item.layout; + setting.item.iconSize = oldSetting.item.iconSize; + setting.item.doubleClickOpen = oldSetting.item.doubleClickRunItem; + setting.item.openAfterHideMainInterface = + oldSetting.item.openAfterHideMainInterface; + setting.item.useItemOpen = oldSetting.item.useItemOpen; + setting.item.openNumber = oldSetting.item.openNumber; + setting.item.hideItemName = oldSetting.item.hideItemName; + setting.item.hideEllipsis = oldSetting.item.hideEllipsis; + setting.item.itemNameRowCount = oldSetting.item.itemNameRowCount; + setting.item.width = oldSetting.item.width; + setting.item.columnNumber = oldSetting.item.columnNumber; + setting.item.checkInvalidItem = oldSetting.item.checkInvalidItem; + setting.item.fontSize = oldSetting.item.fontSize; + setting.item.fontWeight = oldSetting.item.fontWeight; + setting.item.fontLineHeight = oldSetting.item.fontLineHeight; + } + // 子分类 + if (oldSetting.subClassification) { + setting.subClassification.itemAreaNameFontSize = + oldSetting.subClassification.itemAreaNameFontSize; + setting.subClassification.itemAreaNameFontWeight = + oldSetting.subClassification.itemAreaNameFontWeight; + setting.subClassification.itemAreaNameFontLineHeight = + oldSetting.subClassification.itemAreaNameFontLineHeight; + } + // 快速搜索 + if (oldSetting.quickSearch) { + setting.quickSearch.enable = oldSetting.quickSearch.enable; + setting.quickSearch.showHideShortcutKey = + oldSetting.quickSearch.showHideShortcutKey; + setting.quickSearch.openShortcutKey = + oldSetting.quickSearch.openShortcutKey; + setting.quickSearch.hideLoseFocus = oldSetting.quickSearch.hideLosingFocus; + setting.quickSearch.openNow = oldSetting.quickSearch.openNow; + setting.quickSearch.showHistory = oldSetting.quickSearch.showHistory; + setting.quickSearch.showHistorySort = + oldSetting.quickSearch.showHistorySort; + setting.quickSearch.useItemOpen = oldSetting.quickSearch.useItemOpen; + setting.quickSearch.openAfterHideQuickSearchWindow = + oldSetting.quickSearch.openAfterHideQuickSearchWindow; + setting.quickSearch.matchConditionsRemark = + oldSetting.quickSearch.matchingConditionsRemark; + } + // 网络搜索 + if (oldSetting.webSearch) { + setting.webSearch.mode = oldSetting.webSearch.mode; + if (oldSetting.webSearch.searchSourceList) { + setting.webSearch.searchSourceList = []; + for (let i = 0; i < oldSetting.webSearch.searchSourceList.length; i++) { + const oldSearchSource = oldSetting.webSearch.searchSourceList[i]; + setting.webSearch.searchSourceList.push({ + id: oldSearchSource.id, + keyword: oldSearchSource.keyword, + name: oldSearchSource.name, + url: oldSearchSource.URL, + description: oldSearchSource.description, + }); + } + } + } + // 网络 + if (oldSetting.network) { + setting.network.useProxy = oldSetting.network.useProxy; + if (oldSetting.network.proxy) { + setting.network.proxy.address = oldSetting.network.proxy.address; + setting.network.proxy.username = oldSetting.network.proxy.username; + setting.network.proxy.password = oldSetting.network.proxy.password; + } + } + return addSetting(getSetting(setting)); +} + +export { restore }; diff --git a/electron/main/data/index.ts b/electron/main/data/index.ts new file mode 100644 index 0000000..08085ec --- /dev/null +++ b/electron/main/data/index.ts @@ -0,0 +1,71 @@ +import { BrowserWindow, shell } from "electron"; +import { closeWindow, getMainBackgorunColor } from "../commons"; +import { join } from "node:path"; +import { getDataSqlite3 } from "../../commons/betterSqlite3"; + +// 窗口 +let backupRestoreDataWindow: BrowserWindow | null = null; + +/** + * 备份/恢复数据窗口 + */ +function createBackupRestoreDataWindow() { + // 如果窗口存在先关闭窗口 + closeWindow(backupRestoreDataWindow); + // 创建窗口 + backupRestoreDataWindow = global.backupRestoreDataWindow = new BrowserWindow({ + title: "Dawn Launcher", + frame: false, + parent: global.mainWindow, + height: 108, + width: 400, + type: "toolbar", + maximizable: false, + minimizable: false, + resizable: false, + fullscreenable: false, + focusable: true, + show: false, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + if (process.env.VITE_DEV_SERVER_URL) { + backupRestoreDataWindow.loadURL( + process.env.VITE_DEV_SERVER_URL + "Data/BackupRestore" + ); + } else { + backupRestoreDataWindow.loadFile(join(process.env.DIST, "index.html"), { + hash: "/Data/BackupRestore", + }); + } + backupRestoreDataWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 禁用标题栏右键 + backupRestoreDataWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + backupRestoreDataWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + backupRestoreDataWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * 备份数据 + */ +function backupData(filePath: string) { + // 获取数据库 + let db = getDataSqlite3(); + // 备份数据 + return db.backup(filePath); +} + +export { createBackupRestoreDataWindow, backupData }; diff --git a/electron/main/data/ipcEvent.ts b/electron/main/data/ipcEvent.ts new file mode 100644 index 0000000..01450ec --- /dev/null +++ b/electron/main/data/ipcEvent.ts @@ -0,0 +1,75 @@ +import { dialog, ipcMain } from "electron"; +import { backupData, createBackupRestoreDataWindow } from "."; +import { closeWindow, relaunch, showErrorMessageBox } from "../commons"; +import { restore } from "./data"; + +export default function () { + // 创建备份/恢复数据窗口 + ipcMain.on("createBackupRestoreDataWindow", (event, args) => { + createBackupRestoreDataWindow(); + }); + // 显示备份/恢复数据窗口 + ipcMain.on("showBackupRestoreDataWindow", (event, args) => { + if (global.backupRestoreDataWindow) { + global.backupRestoreDataWindow.show(); + } + }); + // 关闭备份/恢复数据窗口 + ipcMain.on("closeBackupRestoreDataWindow", (event, args) => { + closeWindow(global.backupRestoreDataWindow); + }); + // 备份数据 + ipcMain.on("backupData", () => { + try { + let filePath = dialog.showSaveDialogSync(global.backupRestoreDataWindow, { + defaultPath: "Data", + filters: [{ name: "DB", extensions: ["db"] }], + }); + if (filePath && filePath.trim() !== "") { + backupData(filePath).finally(() => { + // 关闭备份/恢复窗口 + closeWindow(global.backupRestoreDataWindow); + }); + } + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + } + }); + // 恢复数据 + ipcMain.on("restoreData", () => { + try { + let filePathList = dialog.showOpenDialogSync( + global.backupRestoreDataWindow, + { + filters: [{ name: "Data", extensions: ["db", "json"] }], + } + ); + if (filePathList && filePathList.length > 0) { + let filePath = filePathList[0]; + if (restore(filePath)) { + // 清空localStorage + global.mainWindow.webContents.session.clearStorageData({ + storages: ["localstorage"], + }); + // 重新启动程序 + relaunch(); + } else { + showErrorMessageBox( + "backupRestoreDataWindow", + global.language.restoreDataPrompt + ); + } + } + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + showErrorMessageBox( + "backupRestoreDataWindow", + global.language.restoreDataPrompt + ); + } + }); +} diff --git a/electron/main/index.ts b/electron/main/index.ts new file mode 100644 index 0000000..d55b408 --- /dev/null +++ b/electron/main/index.ts @@ -0,0 +1,159 @@ +import { app, BrowserWindow, dialog } from "electron"; +import { release } from "node:os"; +import { join, dirname } from "node:path"; +import indexIpcEvent from "./main/ipcEvent"; +import classificationIpcEvent from "./classification/ipcEvent"; +import { init as classificationDataInit } from "./classification/data"; +import { init as itemDataInit } from "./item/data"; +import { initSystemItem } from "./item/commons/data"; +import commonIpcEvent from "./commons/ipcEvent"; +import itemIpcEvent from "./item/ipcEvent"; +import settingIpcEvent from "./setting/ipcEvent"; +import { init as settingDataInit } from "./setting/data"; +import { setShortcutKey } from "./setting"; +import searchIpcEvent from "./search/ipcEvent"; +import { createMainWindow } from "./main"; +import { closeAllChildProcess } from "./commons"; +import { createQuickSearchWindow } from "./search"; +import { getLanguage } from "../../commons/data/languages"; +import aboutIpcEvent from "./about/ipcEvent"; +import dataIpcEvent from "./data/ipcEvent"; + +// 数据存储目录 +if ( + process.env.NODE_ENV !== "development" && + import.meta.env.VITE_INSTALL === "false" +) { + app.setPath("appData", join(dirname(process.execPath), "data")); + app.setPath("userData", join(dirname(process.execPath), "data")); +} + +process.env.DIST_ELECTRON = join(__dirname, ".."); +process.env.DIST = join(process.env.DIST_ELECTRON, "../dist"); +process.env.VITE_PUBLIC = process.env.VITE_DEV_SERVER_URL + ? join(process.env.DIST_ELECTRON, "../public") + : process.env.DIST; + +// Disable GPU Acceleration for Windows 7 +if (release().startsWith("6.1")) app.disableHardwareAcceleration(); + +// Set application name for Windows 10+ notifications +if (process.platform === "win32") app.setAppUserModelId(app.getName()); + +if (!app.requestSingleInstanceLock()) { + app.quit(); + process.exit(0); +} + +// Remove electron security warnings +// This warning only shows in development mode +// Read more on https://www.electronjs.org/docs/latest/tutorial/security +// process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true' +app.whenReady().then(() => { + try { + // addon + global.addon = require("../../native/addon.node"); + // 初始化数据 + settingDataInit(); + // 获取语言 + global.language = getLanguage(global.setting.general.language); + // 禁用debugtron + for (let i = 0; i < process.argv.length; i++) { + const arg = process.argv[i]; + if ( + arg.indexOf("--inspect") !== -1 || + arg.indexOf("--remote-debugging-port") !== -1 + ) { + dialog.showMessageBoxSync(null, { + message: "达咩呦达咩达咩~", + buttons: [global.language.ok], + type: "error", + noLink: true, + }); + app.quit(); + return; + } + } + // 禁止多开 + const instanceLock = app.requestSingleInstanceLock(); + if (!instanceLock) { + app.quit(); + return; + } + // 初始化数据 + classificationDataInit(); + itemDataInit(); + initSystemItem(); + // 初始化监听 + indexIpcEvent(); + commonIpcEvent(); + classificationIpcEvent(); + itemIpcEvent(); + settingIpcEvent(); + searchIpcEvent(); + aboutIpcEvent(); + dataIpcEvent(); + // 创建主窗口 + createMainWindow(); + if (global.setting.quickSearch.enable) { + // 创建快速搜索窗口 + createQuickSearchWindow(); + } + // 设置快捷键 + setShortcutKey(); + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } else { + dialog.showMessageBoxSync({ + type: "error", + title: "Dawn Launcher", + message: e.stack, + }); + app.quit(); + } + } +}); + +// 全局异常 +process.on("uncaughtException", (err) => { + dialog.showMessageBoxSync({ + type: "error", + title: "Dawn Launcher", + message: err.stack, + }); + // 关闭所有子进程 + closeAllChildProcess(); + // 退出 + app.quit(); +}); + +app.on("before-quit", () => { + // 关闭所有子进程 + closeAllChildProcess(); +}); + +app.on("window-all-closed", () => { + if (process.platform !== "darwin") app.quit(); +}); + +app.on("second-instance", () => { + if (mainWindow) { + if (!mainWindow.isVisible()) { + mainWindow.show(); + mainWindow.focus(); + global.blurHide = true; + } else { + mainWindow.focus(); + } + } +}); + +app.on("activate", () => { + const allWindows = BrowserWindow.getAllWindows(); + if (allWindows.length) { + allWindows[0].focus(); + } else { + createMainWindow(); + } +}); diff --git a/electron/main/item/commons/data.ts b/electron/main/item/commons/data.ts new file mode 100644 index 0000000..dc0ac54 --- /dev/null +++ b/electron/main/item/commons/data.ts @@ -0,0 +1,561 @@ +import { CommonItem } from "../../../../types/item"; +import { + newCommonItem, + newCommonItemData, +} from "../../../../commons/utils/common"; +import { + calcIcon, + fileExplorerIcon, + networkSharingCenterIcon, + powerIcon, +} from "../../../commons/constants"; +import { getCacheDataSqlite3 } from "../../../commons/betterSqlite3"; + +// 获取数据库 +let db = getCacheDataSqlite3(); + +// 系统项目表名 +let systenItemTableName = "system_item"; + +// 开始菜单项目表名 +let startMenuItemTableName = "start_menu_item"; + +/** + * 通用项目 + */ +function getCommonItem(row: any): CommonItem { + let data = JSON.parse(row.data); + return newCommonItem({ + id: row.id, + name: row.name, + data: newCommonItemData({ + target: data.target, + params: data.params, + icon: data.icon, + htmlIcon: data.htmlIcon, + }), + }); +} + +/** + * 初始化系统项目表 + */ +function initSystemItemTable() { + // sql + let sql = `CREATE TABLE IF NOT EXISTS ${systenItemTableName} ( + id INTEGER PRIMARY KEY, + name TEXT NOT NULL, + data TEXT NOT NULL, + \`order\` INTEGER NOT NULL)`; + // 运行 + db.exec(sql); +} + +/** + * 初始化系统项目 + */ +function initSystemItem() { + // 初始化表 + initSystemItemTable(); + // 初始化数据 + // 计算机 + let computer = selectById(systenItemTableName, 1); + if (!computer) { + let icon: string | null = global.addon.getFileIcon( + "shell:MyComputerFolder" + ); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 1, + name: global.language.computer, + data: newCommonItemData({ + target: "shell:MyComputerFolder", + icon: icon, + }), + order: 1, + }) + ); + } + } + // 文档 + let document = selectById(systenItemTableName, 2); + if (!document) { + let icon: string | null = global.addon.getFileIcon("shell:Local Documents"); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 2, + name: global.language.documents, + data: newCommonItemData({ + target: "shell:Local Documents", + icon: icon, + }), + order: 2, + }) + ); + } + } + // 控制面板 + let controlPanel = selectById(systenItemTableName, 3); + if (!controlPanel) { + let icon: string | null = global.addon.getFileIcon( + "shell:ControlPanelFolder" + ); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 3, + name: global.language.controlPanel, + data: newCommonItemData({ + target: "shell:ControlPanelFolder", + icon: icon, + }), + order: 3, + }) + ); + } + } + // 网络和共享中心 + let networkSharingCenter = selectById(systenItemTableName, 4); + if (!networkSharingCenter) { + add( + systenItemTableName, + newCommonItem({ + id: 4, + name: global.language.networkShareCenter, + data: newCommonItemData({ + target: "control.exe", + params: "/name Microsoft.NetworkAndSharingCenter", + icon: networkSharingCenterIcon, + }), + order: 4, + }) + ); + } + // 回收站 + let recyleBin = selectById(systenItemTableName, 5); + if (!recyleBin) { + let icon: string | null = global.addon.getFileIcon( + "shell:RecycleBinFolder" + ); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 5, + name: global.language.recycleBin, + data: newCommonItemData({ + target: "shell:RecycleBinFolder", + icon: icon, + }), + order: 5, + }) + ); + } + } + // 文件资源管理器 + let fileExplorer = selectById(systenItemTableName, 6); + if (!fileExplorer) { + add( + systenItemTableName, + newCommonItem({ + id: 6, + name: global.language.fileExplorer, + data: newCommonItemData({ + target: "control.exe", + params: "folders", + icon: fileExplorerIcon, + }), + order: 6, + }) + ); + } + // 程序和功能 + let programFeatures = selectById(systenItemTableName, 7); + if (!programFeatures) { + let icon: string | null = global.addon.getFileIcon( + "shell:ChangeRemoveProgramsFolder" + ); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 7, + name: global.language.programsFeatures, + data: newCommonItemData({ + target: "shell:ChangeRemoveProgramsFolder", + icon: icon, + }), + order: 7, + }) + ); + } + } + // 文件资源管理器 + let calc = selectById(systenItemTableName, 8); + if (!calc) { + add( + systenItemTableName, + newCommonItem({ + id: 8, + name: global.language.calculator, + data: newCommonItemData({ + target: "calc.exe", + icon: calcIcon, + }), + order: 8, + }) + ); + } + // 服务 + let services = selectById(systenItemTableName, 9); + if (!services) { + let path: string | null = global.addon.searchPath("services.msc"); + if (path) { + let icon: string | null = global.addon.getFileIcon(path); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 9, + name: global.language.services, + data: newCommonItemData({ + target: "services.msc", + icon: icon, + }), + order: 9, + }) + ); + } + } + } + // 命令提示符 + let cmd = selectById(systenItemTableName, 10); + if (!cmd) { + let path: string | null = global.addon.searchPath("cmd.exe"); + if (path) { + let icon: string | null = global.addon.getFileIcon(path); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 10, + name: global.language.commandPrompt, + data: newCommonItemData({ + target: "cmd.exe", + icon: icon, + }), + order: 10, + }) + ); + } + } + } + // 任务管理器 + let taskmgr = selectById(systenItemTableName, 11); + if (!taskmgr) { + let path: string | null = global.addon.searchPath("taskmgr.exe"); + if (path) { + let icon: string | null = global.addon.getFileIcon(path); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 11, + name: global.language.taskManager, + data: newCommonItemData({ + target: "taskmgr.exe", + icon: icon, + }), + order: 11, + }) + ); + } + } + } + // 注册表编辑 + let regedit = selectById(systenItemTableName, 12); + if (!regedit) { + let path: string | null = global.addon.searchPath("regedit.exe"); + if (path) { + let icon: string | null = global.addon.getFileIcon(path); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 12, + name: global.language.registryEditor, + data: newCommonItemData({ + target: "regedit.exe", + icon: icon, + }), + order: 12, + }) + ); + } + } + } + // 电源选项 + let powercfg = selectById(systenItemTableName, 13); + if (!powercfg) { + add( + systenItemTableName, + newCommonItem({ + id: 13, + name: global.language.powerOptions, + data: newCommonItemData({ + target: "control.exe", + params: "powercfg.cpl", + icon: powerIcon, + }), + order: 13, + }) + ); + } + // 资源监视器 + let perfmon = selectById(systenItemTableName, 14); + if (!perfmon) { + let path: string | null = global.addon.searchPath("perfmon.exe"); + if (path) { + let icon: string | null = global.addon.getFileIcon(path); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 14, + name: global.language.resourceMonitor, + data: newCommonItemData({ + target: "perfmon.exe", + params: "/res", + icon: icon, + }), + order: 14, + }) + ); + } + } + } + // 计算机管理 + let compmgmt = selectById(systenItemTableName, 15); + if (!compmgmt) { + let path: string | null = global.addon.searchPath("compmgmt.msc"); + if (path) { + let icon: string | null = global.addon.getFileIcon(path); + if (icon) { + add( + systenItemTableName, + newCommonItem({ + id: 15, + name: global.language.computerManagement, + data: newCommonItemData({ + target: "compmgmt.msc", + params: "/s", + icon: icon, + }), + order: 15, + }) + ); + } + } + } + // 关机 + let shutdown = selectById(systenItemTableName, 16); + if (!shutdown) { + add( + systenItemTableName, + newCommonItem({ + id: 16, + name: global.language.shutdown, + data: newCommonItemData({ + target: "shutdown", + params: "-s -t 0", + htmlIcon: + '', + }), + order: 16, + }) + ); + } + // 重启 + let restart = selectById(systenItemTableName, 17); + if (!restart) { + add( + systenItemTableName, + newCommonItem({ + id: 17, + name: global.language.restart, + data: newCommonItemData({ + target: "shutdown", + params: "-r -t 0", + htmlIcon: + '', + }), + order: 17, + }) + ); + } + // 睡眠 + let sleep = selectById(systenItemTableName, 18); + if (!sleep) { + add( + systenItemTableName, + newCommonItem({ + id: 18, + name: global.language.sleep, + data: newCommonItemData({ + target: "rundll32.exe", + params: "powrprof.dll, SetSuspendState Sleep", + htmlIcon: + '', + }), + order: 18, + }) + ); + } + // 锁定 + let lock = selectById(systenItemTableName, 19); + if (!lock) { + add( + systenItemTableName, + newCommonItem({ + id: 19, + name: global.language.lock, + data: newCommonItemData({ + target: "rundll32.exe", + params: "user32.dll LockWorkStation", + htmlIcon: + '', + }), + order: 19, + }) + ); + } + // 关闭显示器 + let turnOffMonitor = selectById(systenItemTableName, 20); + if (!turnOffMonitor) { + add( + systenItemTableName, + newCommonItem({ + id: 20, + name: global.language.turnOffMonitor, + data: newCommonItemData({ + target: "static:TurnOffMonitor", + htmlIcon: + '', + }), + order: 20, + }) + ); + } +} + +/** + * 初始化开始菜单项目表 + */ +function initStartMenuItemTable() { + // sql + let sql = `CREATE TABLE IF NOT EXISTS ${startMenuItemTableName} ( + id INTEGER PRIMARY KEY, + name TEXT NOT NULL, + data TEXT NOT NULL, + \`order\` INTEGER NOT NULL)`; + // 运行 + db.exec(sql); +} + +/** + * 列表 + * @param table + */ +function list(table: string) { + // sql + let sql = `SELECT id, name, data, \`order\` FROM ${table}`; + // 查询 + let list = db.prepare(sql).all(); + // 返回 + return list.map((row) => { + return getCommonItem(row); + }); +} + +/** + * 根据ID查询 + * @param table + * @param id + */ +function selectById(table: string, id: number): CommonItem | null { + // SQL + let sql = `SELECT id, name, data, \`order\` FROM ${table} WHERE id = ?`; + // 运行 + let row = db.prepare(sql).get(id); + // 返回 + if (row) { + return getCommonItem(row); + } else { + return null; + } +} + +/** + * 添加 + * @param table + * @param commonItem + * @returns + */ +function add(table: string, commonItem: CommonItem) { + // SQL + let sql = `INSERT INTO ${table} (id, name, data, \`order\`) VALUES (?, ?, ?, ?)`; + // 运行 + db.prepare(sql).run( + commonItem.id, + commonItem.name, + JSON.stringify(commonItem.data), + commonItem.order + ); +} + +/** + * 删除所有数据 + * @param table + */ +function deleteAll(table: string) { + // SQL + let sql = `DELETE FROM ${table}`; + // 运行 + db.prepare(sql).run(); +} + +/** + * 批量添加 + * @param list + */ +function batchAdd(list: Array) { + // 开启事务 + db.transaction(() => { + // SQL + let sql = `INSERT INTO ${startMenuItemTableName} VALUES(?, ?, ?, ?)`; + // 添加到缓存表中 + for (let i = 0; i < list.length; i++) { + db.prepare(sql).run( + i + 1, + list[i].name, + JSON.stringify(list[i].data), + i + 1 + ); + } + })(); +} + +export { + systenItemTableName, + startMenuItemTableName, + initSystemItem, + initStartMenuItemTable, + list, + deleteAll, + batchAdd, +}; diff --git a/electron/main/item/commons/index.ts b/electron/main/item/commons/index.ts new file mode 100644 index 0000000..cb0adb0 --- /dev/null +++ b/electron/main/item/commons/index.ts @@ -0,0 +1,60 @@ +import { release } from "node:os"; +import { + batchAdd, + deleteAll, + initStartMenuItemTable, + initSystemItem, + list, + startMenuItemTableName, + systenItemTableName, +} from "./data"; +import { CommonItem } from "../../../../types/item"; +import { fork } from "../../../commons/utilityProcessUtils"; +import { sendToWebContent } from "../../commons"; + +/** + * 获取系统项目 + */ +function getSystemItemList() { + initSystemItem(); + return list(systenItemTableName); +} + +/** + * 获取开始菜单项目列表 + */ +function getStartMenuItemList() { + // 初始化表 + initStartMenuItemTable(); + // 查询缓存 + let cacheList = list(startMenuItemTableName); + // 清空表 + deleteAll(startMenuItemTableName); + // 子进程 + fork("getStartMenuItemList", cacheList, (resultList: Array) => { + // 添加缓存 + batchAdd(resultList); + // 发送消息到页面 + sendToWebContent("itemAddEditWindow", "onGetStartMenuItemList", resultList); + }); +} + +/** + * APPX项目 + */ +function getAppxItemList() { + // 大于win10才有APPX + let releaseArr = release().split("."); + if (Number(releaseArr[0]) >= 10) { + // 子进程 + fork("getAppxItemList", {}, (resultList: Array) => { + // 发送消息到页面 + sendToWebContent("itemAddEditWindow", "onGetAppxItemList", resultList); + }); + } else { + // 发送消息到页面 + sendToWebContent("itemAddEditWindow", "onGetAppxItemList", []); + } +} + +export { getSystemItemList, getStartMenuItemList, getAppxItemList }; diff --git a/electron/main/item/data.ts b/electron/main/item/data.ts new file mode 100644 index 0000000..af7a09f --- /dev/null +++ b/electron/main/item/data.ts @@ -0,0 +1,427 @@ +import { Item, ItemData } from "../../../types/item"; +import { newItem, newItemData } from "../../../commons/utils/common"; +import { list as selectClassificationList } from "../classification/data"; +import { getDataSqlite3 } from "../../commons/betterSqlite3"; + +// 获取数据库 +let db = getDataSqlite3(); + +// 项目表名 +let itemTableName = "item"; + +// 查询字段 +let selectColumn = + "id, classification_id classificationId, name, type, data, shortcut_key shortcutKey, global_shortcut_key globalShortcutKey, `order`"; +let simpleSelectColumn = + "id, classification_id classificationId, name, type, shortcut_key shortcutKey, global_shortcut_key globalShortcutKey, `order`"; + +/** + * 项目 + */ +function getItem(row: any): Item { + return newItem({ + id: row.id, + classificationId: row.classificationId, + name: row.name, + type: row.type, + data: newItemData(row.data ? JSON.parse(row.data) : {}), + shortcutKey: row.shortcutKey, + globalShortcutKey: row.globalShortcutKey === 1, + order: row.order, + }); +} + +/** + * 初始化项目表 + */ +function init() { + // sql + let sql = `CREATE TABLE IF NOT EXISTS ${itemTableName} ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + classification_id INTEGER NOT NULL, + name TEXT NOT NULL, + type INTEGER NOT NULL, + data TEXT NOT NULL, + shortcut_key TEXT, + global_shortcut_key INTEGER NOT NULL, + \`order\` INTEGER NOT NULL)`; + // 运行 + db.exec(sql); +} + +/** + * 添加 + * @param item + * @param reuseId + */ +function add(item: Item, reuseId: boolean = false) { + // 获取序号 + let newOrder = getMaxOrder(item.classificationId) + 1; + // SQL + let sql = `INSERT INTO ${itemTableName} + (classification_id, name, type, data, shortcut_key, global_shortcut_key, \`order\`) + VALUES (?, ?, ?, ?, ?, ?, ?)`; + // 参数 + let params = [ + item.classificationId, + item.name, + item.type, + JSON.stringify(item.data), + item.shortcutKey, + item.globalShortcutKey ? 1 : 0, + newOrder, + ]; + // 重复使用ID + if (reuseId && item.id) { + sql = `INSERT INTO ${itemTableName} + (id, classification_id, name, type, data, shortcut_key, global_shortcut_key, \`order\`) + VALUES (?, ?, ?, ?, ?, ?, ?, ?)`; + params.unshift(item.id); + } + // 运行 + let id = db.prepare(sql).run(params).lastInsertRowid as number; + if (id) { + item.id = id; + item.order = newOrder; + return item; + } + return null; +} + +/** + * 批量添加 + * @param classificationId + * @param itemList + * @param reuseId + */ +function batchAdd( + classificationId: number, + itemList: Array, + reuseId: boolean = false +) { + // 返回信息 + let resultList: Array = []; + // 事务 + db.transaction(() => { + // 获取序号 + let newOrder = getMaxOrder(classificationId) + 1; + // 循环添加 + for (let item of itemList) { + // SQL + let sql = `INSERT INTO ${itemTableName} + (classification_id, name, type, data, shortcut_key, global_shortcut_key, \`order\`) + VALUES (?, ?, ?, ?, ?, ?, ?)`; + // 参数 + let params = [ + classificationId, + item.name, + item.type, + JSON.stringify(item.data), + item.shortcutKey, + item.globalShortcutKey ? 1 : 0, + newOrder, + ]; + // 重复使用ID + if (reuseId && item.id) { + sql = `INSERT INTO ${itemTableName} + (id, classification_id, name, type, data, shortcut_key, global_shortcut_key, \`order\`) + VALUES (?, ?, ?, ?, ?, ?, ?, ?)`; + params.unshift(item.id); + } + // 运行 + let id = db.prepare(sql).run(params).lastInsertRowid as number; + if (id) { + item.id = id; + item.order = newOrder; + resultList.push(item); + } + newOrder++; + } + })(); + return resultList; +} + +/** + * 更新 + * @param item + */ +function update(item: Item) { + // SQL + let sql = `UPDATE ${itemTableName} + SET name = ?, + data = ?, + shortcut_key = ?, + global_shortcut_key = ? + WHERE id = ?`; + // 运行 + return ( + db + .prepare(sql) + .run( + item.name, + JSON.stringify(item.data), + item.shortcutKey, + item.globalShortcutKey ? 1 : 0, + item.id + ).changes > 0 + ); +} + +/** + * 更新分类ID + * @param oldClassificationId + * @param newlassificationId + */ +function updateClassificationId( + oldClassificationId: number, + newClassificationId: number +) { + // SQL + let sql = `UPDATE ${itemTableName} + SET classification_id = ? + WHERE classification_id = ?`; + // 运行 + return ( + db.prepare(sql).run(newClassificationId, oldClassificationId).changes > 0 + ); +} + +/** + * 更新数据 + * @param id + * @param itemData + */ +function updateData(id: number, itemData: ItemData) { + // SQL + let sql = `UPDATE ${itemTableName} + SET data = ? + WHERE id = ?`; + // 运行 + return db.prepare(sql).run(JSON.stringify(itemData), id).changes > 0; +} + +/** + * 查询最大序号 + * @param classificationId + */ +function getMaxOrder(classificationId: number) { + // SQL + let sql = `SELECT MAX(\`order\`) \`order\` FROM ${itemTableName} WHERE classification_id = ?`; + // 运行 + let row: any = db.prepare(sql).get(classificationId); + if (row && row.order) { + return row.order; + } else { + return 0; + } +} + +/** + * 根据ID查询 + * @param id + */ +function selectById(id: number): Item | null { + // SQL + let sql = `SELECT ${selectColumn} FROM ${itemTableName} WHERE id = ?`; + // 运行 + let row = db.prepare(sql).get(id); + // 返回 + if (row) { + return getItem(row); + } else { + return null; + } +} + +/** + * 列表 + * @param simple + * @param classificationId + */ +function list(simple: boolean = false, classificationId: number | null = null) { + // 参数 + let params = []; + // sql + let sql = `SELECT ${ + simple ? simpleSelectColumn : selectColumn + } FROM ${itemTableName}`; + if (classificationId) { + sql += " WHERE classification_id = ?"; + params.push(classificationId); + } + sql += " ORDER BY `order` ASC"; + // 查询 + let list = db.prepare(sql).all(params); + // 返回 + return list.map((row) => { + return getItem(row); + }); +} + +/** + * 根据ID列表查询 + * @param simple + * @param idList + */ +function selectByIdList(simple: boolean, idList: Array) { + // 参数 + let params = []; + // sql + let sql = `SELECT ${ + simple ? simpleSelectColumn : selectColumn + } FROM ${itemTableName} WHERE id IN (`; + for (let i = 0; i < idList.length; i++) { + sql += "?"; + if (i !== idList.length - 1) { + sql += ","; + } + params.push(idList[i]); + } + sql += ")"; + // 查询 + let list = db.prepare(sql).all(params); + // 转为Item + let itemList = list.map((row) => { + return getItem(row); + }); + // 返回列表 + let resultList: Array = []; + // 根据传入的参数排序 + for (const id of idList) { + for (const item of itemList) { + if (id === item.id) { + resultList.push(item); + break; + } + } + } + return resultList; +} + +/** + * 删除 + * @param id + */ +function del(id: number) { + // 查询数据 + let item = selectById(id); + if (item) { + // SQL + let sql = `DELETE FROM ${itemTableName} WHERE id = ?`; + // 运行 + let res = db.prepare(sql).run(id).changes > 0; + if (res) { + // 更新序号 + reorder(item.classificationId); + return true; + } else { + return false; + } + } else { + return false; + } +} + +/** + * 删除 + * @param classificationId + */ +function deleteByClassificationId(classificationId: number) { + // SQL + let sql = `DELETE FROM ${itemTableName} WHERE classification_id = ?`; + // 运行 + return db.prepare(sql).run(classificationId).changes > 0; +} + +/** + * 重新排序 + * @param classification_id + */ +function reorder(classification_id: number) { + // 查询项目列表 + let itemList = list(true, classification_id); + // 开启事务 + db.transaction(() => { + // SQL + let sql = `UPDATE ${itemTableName} SET \`order\` = ? WHERE id = ?`; + // 更新序号 + for (let i = 0; i < itemList.length; i++) { + db.prepare(sql).run(i + 1, itemList[i].id); + } + })(); +} + +/** + * 项目排序 + * @param fromIdList + * @param toClassificationId + * @param toId + */ +function updateOrder( + fromIdList: Array, + toClassificationId: number, + newIndex: number | null +) { + // 查询来源项目 + let fromItemList = selectByIdList(true, fromIdList); + if (fromItemList.length > 0) { + // 查询目标分类是否是父级分类,如果是父级分类的话,获取他下面的第一个子分类 + let classificationList = selectClassificationList(toClassificationId); + if (classificationList.length > 0) { + toClassificationId = classificationList[0].id; + } + // 记录来源项目都是来源于哪些分类,需要重新排序 + let fromClassificationIdList = []; + for (const item of fromItemList) { + if ( + item.classificationId !== toClassificationId && + !fromClassificationIdList.includes(item.classificationId) + ) { + fromClassificationIdList.push(item.classificationId); + } + } + // 查询目标项目列表 + let toItemList = list(true, toClassificationId); + // 来源项目分类可能和目标项目分类是一样的,首先先从目标项目列表去掉来源项目 + for (const id of fromIdList) { + toItemList = toItemList.filter((item) => item.id !== id); + } + // 将来源项目插入到目标项目列表 + if (newIndex !== null) { + toItemList.splice(newIndex, 0, ...fromItemList); + } else { + // 尾部追加 + toItemList.push(...fromItemList); + } + // 开启事务 + db.transaction(() => { + // SQL + let sql = `UPDATE ${itemTableName} SET \`order\` = ?, classification_id = ? WHERE id = ?`; + // 更新序号 + for (let i = 0; i < toItemList.length; i++) { + db.prepare(sql).run(i + 1, toClassificationId, toItemList[i].id); + } + })(); + // 重排序其来源分类项目列表 + for (const id of fromClassificationIdList) { + reorder(id); + } + return true; + } + return false; +} + +export { + init, + list, + add, + batchAdd, + update, + del, + selectById, + selectByIdList, + deleteByClassificationId, + updateOrder, + updateData, + updateClassificationId, +}; diff --git a/electron/main/item/index.ts b/electron/main/item/index.ts new file mode 100644 index 0000000..54fda4b --- /dev/null +++ b/electron/main/item/index.ts @@ -0,0 +1,687 @@ +import { BrowserWindow, shell, dialog, app } from "electron"; +import { join } from "node:path"; +import { getAbsolutePath, getURLParams } from "../../commons/utils"; +import { Item } from "../../../types/item"; +import { + batchAdd, + deleteByClassificationId, + list, + selectById, + selectByIdList, + updateData, + updateOrder, +} from "./data"; +import { accessSync, writeFile, statSync, readFileSync } from "node:fs"; +import mime from "mime"; +import { + deleteExtname, + getItemName, + isAbsolutePath, +} from "../../../commons/utils/common"; +import { iconExts } from "../../commons/utils"; +import { addAssociateFolderWatcher } from "../classification"; +import { + closeWindow, + convertPath, + getMainBackgorunColor, + sendToWebContent, +} from "../commons/index"; +import { fork } from "../../commons/utilityProcessUtils"; + +// 窗口 +let itemAddEditWindow: BrowserWindow | null = null; +let itemNetworkIconWindow: BrowserWindow | null = null; +let itemSVGIconWindow: BrowserWindow | null = null; + +/** + * 添加/修改窗口 + * @param id + * @param classificationId + */ +async function createAddEditWindow( + id: number | null, + classificationId: number | null +) { + // 如果窗口存在先关闭窗口 + closeWindow(itemAddEditWindow); + // 创建窗口 + itemAddEditWindow = global.itemAddEditWindow = new BrowserWindow({ + title: "Dawn Launcher", + frame: false, + parent: global.mainWindow, + height: 500, + width: 600, + type: "toolbar", + maximizable: false, + minimizable: false, + resizable: false, + fullscreenable: false, + focusable: true, + show: false, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + // 参数 + let params = new Map(); + if (id) { + params.set("id", id); + } + if (classificationId) { + params.set("classificationId", classificationId); + } + if (process.env.VITE_DEV_SERVER_URL) { + itemAddEditWindow.loadURL( + process.env.VITE_DEV_SERVER_URL + "item/AddEdit" + getURLParams(params) + ); + } else { + itemAddEditWindow.loadFile(join(process.env.DIST, "index.html"), { + hash: "/item/AddEdit", + search: getURLParams(params), + }); + } + itemAddEditWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 禁用标题栏右键 + itemAddEditWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + itemAddEditWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + itemAddEditWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * 网络图标窗口 + */ +async function createNetworkIconWindow() { + // 如果窗口存在先关闭窗口 + closeWindow(itemNetworkIconWindow); + // 创建窗口 + itemNetworkIconWindow = global.itemNetworkIconWindow = new BrowserWindow({ + title: "Dawn Launcher", + frame: false, + parent: global.itemAddEditWindow, + height: 230, + width: 400, + type: "toolbar", + maximizable: false, + minimizable: false, + resizable: false, + fullscreenable: false, + focusable: true, + show: false, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + if (process.env.VITE_DEV_SERVER_URL) { + itemNetworkIconWindow.loadURL( + process.env.VITE_DEV_SERVER_URL + "item/NetworkIcon" + ); + } else { + itemNetworkIconWindow.loadFile(join(process.env.DIST, "index.html"), { + hash: "/item/NetworkIcon", + }); + } + itemNetworkIconWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 禁用标题栏右键 + itemNetworkIconWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + itemNetworkIconWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + itemNetworkIconWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * SVG图标窗口 + */ +async function createSVGIconWindow() { + // 如果窗口存在先关闭窗口 + closeWindow(itemSVGIconWindow); + // 创建窗口 + itemSVGIconWindow = global.itemSVGIconWindow = new BrowserWindow({ + title: "Dawn Launcher", + frame: false, + parent: global.itemAddEditWindow, + height: 230, + width: 400, + type: "toolbar", + maximizable: false, + minimizable: false, + resizable: false, + fullscreenable: false, + focusable: true, + show: false, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + if (process.env.VITE_DEV_SERVER_URL) { + itemSVGIconWindow.loadURL(process.env.VITE_DEV_SERVER_URL + "item/SVGIcon"); + } else { + itemSVGIconWindow.loadFile(join(process.env.DIST, "index.html"), { + hash: "/item/SVGIcon", + }); + } + itemSVGIconWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 禁用标题栏右键 + itemSVGIconWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + itemSVGIconWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + itemSVGIconWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * 复制项目 + * @param idList + * @param toClassificationId + */ +function copy(idList: Array, toClassificationId: number) { + // 返回列表 + let resultList: Array = []; + // 查询项目 + let itemList = selectByIdList(false, idList); + if (itemList.length > 0) { + // 清空打开信息 + resultList.forEach((item) => clearOpenInfo(item)); + // 批量添加 + resultList = batchAdd(toClassificationId, itemList); + } + if (resultList.length > 0) { + // 通知前端 + sendToWebContent("mainWindow", "onAddItem", { + itemList: resultList, + clear: false, + classificationId: null, + }); + } +} + +/** + * 复制/移动项目 + * @param idList + * @param toClassificationId + */ +function move(idList: Array, toClassificationId: number) { + // 移动项目 + let res = updateOrder(idList, toClassificationId, null); + if (res) { + // 通知前端 + sendToWebContent("mainWindow", "onMoveItem", { + idList, + toClassificationId, + }); + } +} + +/** + * 拖入项目 + * @param classificationId + * @param pathList + */ +function drop(classificationId: number, pathList: Array) { + fork( + "getDropItemInfo", + { + classificationId, + pathList, + }, + (resultList: Array) => { + // 添加项目 + let itemList = batchAdd(classificationId, resultList); + // 发送消息到页面 + sendToWebContent("mainWindow", "onAddItem", { + itemList, + clear: false, + classificationId: null, + }); + } + ); +} + +/** + * 更新项目打开信息 + * @param type + * @param id + */ +function updateOpenInfo(type: string, id: number) { + // 查询项目 + let curItem = selectById(id); + if (curItem) { + if (type === "main" || type === "search") { + // 记录打开信息 + curItem.data.lastOpen = new Date().getTime(); + // 记录打开次数 + if (global.setting.item.openNumber) { + curItem.data.openNumber += 1; + } + } else if (type === "quickSearch") { + // 记录打开信息 + curItem.data.quickSearchLastOpen = new Date().getTime(); + // 记录打开次数 + curItem.data.quickSearchOpenNumber += 1; + } + if (updateData(curItem.id, curItem.data)) { + sendToWebContent("mainWindow", "onUpdateOpenInfo", { + id: curItem.id, + openNumber: curItem.data.openNumber, + lastOpen: curItem.data.lastOpen, + quickSearchOpenNumber: curItem.data.quickSearchOpenNumber, + quickSearchLastOpen: curItem.data.quickSearchLastOpen, + type, + }); + } + } +} + +/** + * 运行项目 + * @param type + * @param operation + * @param item + */ +function run( + type: string, + operation: "open" | "runas" | "openFileLocation", + item: Item +) { + if (item.data) { + // 更新打开信息 + updateOpenInfo(type, item.id); + // 判断类型 + if (item.type === 2) { + // 网址 + shell.openExternal(item.data.target); + } else if (item.type === 3 || item.type === 4) { + // 系统 或 appx + global.addon.systemItemExecute(item.data.target, item.data.params); + } else { + // 获取绝对路径 + if (item.type === 0 || item.type === 1) { + // 获取路径 + item.data.target = getAbsolutePath(item.data.target); + } + try { + // 判断文件或文件夹是否存在 + accessSync(item.data.target); + // 存在 + if (operation === "openFileLocation") { + // 打开文件所在位置 + global.addon.openFileLocation(item.data.target); + } else { + // 运行 + global.addon.shellExecute( + operation, + item.data.target, + item.data.params ?? "", + item.data.startLocation + ); + } + } catch (e) { + let message: string | null = null; + if (item.type === 0 && operation !== "openFileLocation") { + message = global.language.notFoundFile; + } else { + message = global.language.notFoundFolder; + } + message += '"' + item.data.target + '"'; + dialog.showMessageBox(global.mainWindow, { + title: "Dawn Launcher", + message: message, + buttons: [global.language.ok], + type: "error", + noLink: true, + }); + } + } + } +} + +/** + * 转换目标路径 + * @param idList + * @param type + */ +function convertTarget(idList: Array, type: "Absolute" | "Relative") { + // 返回数据 + let resultList = []; + // 查询数据 + let itemList = selectByIdList(false, idList); + for (let item of itemList) { + // 是否是绝对路径 + let isAbsolute = isAbsolutePath(item.data.target); + // 如果是绝对路径并且type是Relative,就转为相对路径 + // 如果不是绝对路径并且type是Absolute,就转为绝对路径 + if ( + (isAbsolute && type === "Relative") || + (!isAbsolute && type === "Absolute") + ) { + // 转换路径 + item.data.target = convertPath(item.data.target); + // 更新 + updateData(item.id, item.data); + // push + resultList.push({ + id: item.id, + target: item.data.target, + }); + } + } + // 通知页面 + sendToWebContent("mainWindow", "onConvertPath", resultList); +} + +/** + * 导出图标 + * @param item + */ +function exportIcon(item: Item) { + if (item.data.icon || item.data.htmlIcon) { + // SVG代码图标 + let svgCode = false; + // 拓展名 + let extensionName: string | null = null; + // 内容 + let content: string | null = null; + if (item.data.htmlIcon && item.data.htmlIcon.trim() !== "") { + // 保存为SVG图片 + svgCode = true; + extensionName = "svg"; + content = item.data.htmlIcon.trim(); + } else if (item.data.icon && item.data.icon.trim() !== "") { + // 提取base64类型 + let re = new RegExp("data:(?.*?);base64,.*"); + let res = re.exec(item.data.icon); + if (res && res.groups) { + // 获取拓展名 + extensionName = mime.getExtension(res.groups.ext); + if (item.data.icon.trim().split(",").length === 2) { + content = item.data.icon.trim().split(",")[1]; + } + } + } + // 弹出文件对话框保存 + if (extensionName && content) { + let path = dialog.showSaveDialogSync(global.mainWindow, { + defaultPath: "icon", + filters: [ + { + name: extensionName, + extensions: [extensionName], + }, + ], + }); + // 保存 + if (path) { + if (svgCode) { + writeFile(path, content, function (err) {}); + } else { + let dataBuffer = Buffer.from(content, "base64"); + writeFile(path, dataBuffer, function (err) {}); + } + } + } + } +} + +/** + * 刷新图标 + * @param idList + */ +function refreshIcon(idList: Array) { + // 查询项目 + let itemList = selectByIdList(false, idList); + // 过滤掉固定图标项目 + itemList = itemList.filter((item) => !item.data.fixedIcon); + // 子进程 + fork( + "refreshItemIcon", + itemList, + (resultList: Array<{ id: number; icon: string }>) => { + // 项目列表 + let itemList: Array<{ id: number; icon: string }> = []; + // 更新项目图标 + for (const data of resultList) { + let item = selectById(data.id); + if (item) { + item.data.icon = data.icon; + item.data.htmlIcon = null; + let res = updateData(item.id, item.data); + if (res) { + itemList.push({ + id: item.id, + icon: item.data.icon, + }); + } + } + } + // 发送消息到页面 + sendToWebContent("mainWindow", "onRefreshItemIcon", itemList); + } + ); +} + +/** + * 创建快捷方式 + * @param item + */ +async function createShortcut(item: Item) { + let target = item.data.target; + if (item.type === 0 || item.type === 1) { + // 获取绝对路径 + target = getAbsolutePath(target); + } + // 保存路径 + let savePath = + app.getPath("desktop") + + "\\" + + deleteExtname(getItemName(item.name)) + + ".lnk"; + shell.writeShortcutLink(savePath, "create", { + target: target, + }); +} + +/** + * 读取文件夹下的项目 + * @param classificationId + * @param dir + * @param hiddenItems + * @param listen 是否创建监听 + * @param clear 是否清空原有项目 + */ +function getDirectoryList( + classificationId: number, + dir: string | null, + hiddenItems: string | null, + listen: boolean, + clear: boolean +) { + // 校验目录 + if (!dir || dir.trim() === "") { + return; + } + // 校验是否存在,校验是否是文件夹 + try { + let stats = statSync(dir); + if (!stats.isDirectory()) { + return; + } + } catch (e) { + return; + } + // 查询旧数据 + let oldList = list(false, classificationId); + // 子进程 + fork( + "getDirectoryItemList", + { + classificationId, + dir, + hiddenItems, + oldList, + }, + (resultList: Array) => { + if (clear) { + // 删除旧数据 + deleteByClassificationId(classificationId); + } + // 添加项目 + let itemList = batchAdd(classificationId, resultList, true); + if (listen) { + // 创建关联文件夹监听 + addAssociateFolderWatcher(classificationId, dir, hiddenItems); + } + if (global.mainWindow && !global.mainWindow.isDestroyed()) { + // 发送消息到页面 + sendToWebContent("mainWindow", "onAddItem", { + itemList, + clear, + classificationId, + }); + } + } + ); +} + +/** + * 获取剪切板图片文件 + */ +function getClipboardImageFile() { + // 获取文件列表 + let fileList: Array = global.addon.getClipboardFileList(); + // 多个文件返回空,单个文件返回文件路径 + if (fileList.length === 1) { + let filePath = fileList[0]; + // 获取后缀 + let ext = mime.getExtension(mime.getType(filePath)); + if (iconExts.includes(ext)) { + return filePath; + } + } + return null; +} + +/** + * 粘贴图标 + * @param id + */ +function pasteIcon(id: number | null) { + if (id) { + // 查询项目 + let item = selectById(id); + if (item) { + // 图标 + let icon = null; + // 获取剪切板图片文件 + let imageFile = getClipboardImageFile(); + if (imageFile) { + try { + // 读取文件 + let buffer = readFileSync(imageFile); + // 图标 + icon = + "data:" + + mime.getType(imageFile) + + ";base64," + + buffer.toString("base64"); + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + } + } else { + let bitmap = global.addon.getClipboardBitmapBase64(); + if (bitmap) { + icon = bitmap; + } + } + if (icon) { + item.data.icon = icon; + // 更新 + updateData(item.id, item.data); + // 通知页面刷新图标 + sendToWebContent("mainWindow", "onRefreshItemIcon", [ + { id, icon: item.data.icon }, + ]); + } + } + } +} + +/** + * 检查无效项目 + */ +function checkInvalid() { + // 查询项目列表 + let itemList = list(); + // 去掉图标 + for (const item of itemList) { + item.data.icon = null; + } + // 子进程 + fork("checkInvalidItem", itemList, (resultList: Array) => { + // 发送消息到页面 + sendToWebContent("mainWindow", "onCheckInvalidItem", resultList); + }); +} + +/** + * 清空打开信息 + * @param item + */ +function clearOpenInfo(item: Item) { + item.data.openNumber = 0; + item.data.lastOpen = 0; + item.data.quickSearchOpenNumber = 0; + item.data.quickSearchLastOpen = 0; +} + +export { + createAddEditWindow, + createNetworkIconWindow, + createSVGIconWindow, + copy, + move, + drop, + updateOpenInfo, + run, + convertTarget, + exportIcon, + refreshIcon, + createShortcut, + getDirectoryList, + getClipboardImageFile, + pasteIcon, + checkInvalid, +}; diff --git a/electron/main/item/ipcEvent.ts b/electron/main/item/ipcEvent.ts new file mode 100644 index 0000000..f7119b4 --- /dev/null +++ b/electron/main/item/ipcEvent.ts @@ -0,0 +1,680 @@ +import { + Menu, + MenuItem, + dialog, + ipcMain, + clipboard, + MenuItemConstructorOptions, +} from "electron"; +import { getAbsolutePath } from "../../commons/utils"; +import { + convertTarget, + createAddEditWindow, + createNetworkIconWindow, + createSVGIconWindow, + createShortcut, + drop, + exportIcon, + refreshIcon, + run, + copy, + move, + getClipboardImageFile, + pasteIcon, + updateOpenInfo, +} from "."; +import { + getAppxItemList, + getStartMenuItemList, + getSystemItemList, +} from "./commons"; +import { add, del, list, selectById, update, updateOrder } from "./data"; +import { Item } from "../../../types/item"; +import { getFileExtname, isAbsolutePath } from "../../../commons/utils/common"; +import { + list as selectClassificationList, + selectById as selectClassificationById, + hasChildClassification, +} from "../classification/data"; +import { getWindowInScreen } from "../main/index"; +import { + getItemLayoutMenu, + getItemSortMenu, + getItemColumnNumber, + getItemIconSize, + getItemShowOnly, +} from "../classification"; +import { join } from "node:path"; +import { setShortcutKey } from "../setting"; +import { + closeWindow, + openAfterHideWindow, + sendToWebContent, +} from "../commons/index"; + +/** + * 获取复制/移动菜单 + * @param idList + * @param type + * @returns + */ +function getCopyMoveMenuItems( + idList: Array, + type: "MoveItem" | "CopyItem" +) { + // 菜单 + let menuItems: Array = []; + // 查询分类 + let classificationList = selectClassificationList(null); + for (const parent of classificationList) { + if (parent.parentId || parent.type !== 0) { + continue; + } + let submenus: Array = []; + // 子分类 + for (const child of classificationList) { + if (parent.id === child.parentId && child.type === 0) { + submenus.push({ + label: child.name, + click: () => { + if (type === "CopyItem") { + copy(idList, child.id); + } else { + move(idList, child.id); + } + }, + }); + } + } + if (submenus.length > 0) { + menuItems.push({ + label: parent.name, + submenu: submenus, + }); + } else { + menuItems.push({ + label: parent.name, + click: () => { + if (type === "CopyItem") { + copy(idList, parent.id); + } else { + move(idList, parent.id); + } + }, + }); + } + } + return menuItems; +} + +export default function () { + // 显示新增/修改窗口 + ipcMain.on("showItemAddEditWindow", () => { + if (global.itemAddEditWindow) { + global.itemAddEditWindow.show(); + } + }); + // 关闭新增/修改窗口 + ipcMain.on("closeItemAddEditWindow", () => { + closeWindow(global.itemAddEditWindow); + }); + // 获取项目列表 + ipcMain.on("getItemList", (event) => { + event.returnValue = list(); + }); + // 获取简单项目列表 + ipcMain.on("getSimpleItemList", (event) => { + event.returnValue = list(true); + }); + // 根据ID查询项目 + ipcMain.on("getItemById", (event, args) => { + event.returnValue = selectById(args.id); + }); + // 添加项目 + ipcMain.on("addItem", (event, args) => { + let item = add(args); + setShortcutKey(); + event.returnValue = item; + }); + // 更新项目 + ipcMain.on("updateItem", (event, args) => { + let res = update(args); + setShortcutKey(); + event.returnValue = res; + }); + // 项目排序 + ipcMain.on("updateItemOrder", (event, args) => { + event.returnValue = updateOrder( + args.fromIdList, + args.toClassificationId, + args.newIndex + ); + }); + // 右键菜单 + ipcMain.on("showItemRightMenu", (event, args) => { + // 类型 main:主界面 search:搜索模块 + let type: string = args.type; + // 项目 + let item: Item | null = args.item; + // 锁定/解锁项目 + let lockItem: boolean = type === "main" ? args.lockItem : false; + // 批量操作 + let batchOperation: boolean = type === "main" ? args.batchOperation : false; + // 批量操作ID列表 + let batchSelectedIdList: Array = + type === "main" ? args.batchSelectedIdList : []; + // 分类ID + let classificationId: number = + type === "main" ? args.classificationId : item.classificationId; + // 查询分类信息 + let classification = selectClassificationById(classificationId); + if (!classification) { + return; + } + // 菜单 + let menuList: Array = []; + // 组装菜单 + if (!batchOperation) { + if (item) { + // 后缀 + let ext: string | null = null; + // 排除 + if (item.type === 0) { + ext = getFileExtname(item.data.target); + } + // "打开"菜单 + let openMenu = false; + if (item.type === 0 && ext && (ext === "exe" || ext === "bat")) { + menuList.push( + new MenuItem({ + label: global.language.runAsAdministrator, + click: () => { + // 运行 + run(type, "runas", item); + openAfterHideWindow(type); + }, + }) + ); + openMenu = true; + } + if (item.type === 0 || item.type === 1) { + menuList.push( + new MenuItem({ + label: global.language.openFileLocation, + click: () => { + // 运行 + run(type, "openFileLocation", item); + openAfterHideWindow(type); + }, + }) + ); + openMenu = true; + } + if (item.type === 3 && item.data.target === "shell:RecycleBinFolder") { + menuList.push( + new MenuItem({ + label: global.language.emptyRecycleBin, + click: () => { + global.addon.emptyRecycleBin( + global.mainWindow.getNativeWindowHandle().readInt32LE(0) + ); + }, + }) + ); + openMenu = true; + } + if ( + item.type === 0 || + item.type === 1 || + (item.type === 3 && item.data.target.indexOf("shell:") >= 0) + ) { + menuList.push( + new MenuItem({ + label: global.language.explorerMenu, + click: () => { + // 获取当前窗口所在屏幕 + let screen = getWindowInScreen(); + let scaleFactor = 1; + if (screen && screen.length > 0) { + scaleFactor = screen[0].scaleFactor; + } + // 弹出资源管理器菜单 + sendToWebContent( + type === "quickSearch" ? "quickSearchWindow" : "mainWindow", + "onItemExplorerMenu", + { + type: type, + id: item.id, + } + ); + // 禁用鼠标HOOK + global.addon.disableMouseHook(); + // 弹出资源管理器菜单 + global.addon.explorerContextMenu( + global.mainWindow.getNativeWindowHandle().readInt32LE(0), + item.type === 0 || item.type === 1 + ? getAbsolutePath(item.data.target) + : item.data.target, + args.x * scaleFactor, + args.y * scaleFactor + ); + // 开启鼠标HOOK + global.addon.enableMouseHook(); + sendToWebContent( + type === "quickSearch" ? "quickSearchWindow" : "mainWindow", + "onItemRightMenuClose", + {} + ); + }, + }) + ); + openMenu = true; + } + if (openMenu) { + menuList.push(new MenuItem({ type: "separator" })); + } + // "路径"菜单 + let pathMenu = false; + if (item.type === 0 || item.type === 1 || item.type === 2) { + menuList.push( + new MenuItem({ + label: global.language.copyFullPath, + click: () => { + clipboard.writeText( + item.type === 0 || item.type === 1 + ? getAbsolutePath(item.data.target) + : item.data.target + ); + }, + }) + ); + pathMenu = true; + } + if ( + type === "main" && + (item.type === 0 || item.type === 1) && + classification.type === 0 + ) { + menuList.push( + new MenuItem({ + label: isAbsolutePath(item.data.target) + ? global.language.convertRelativePath + : global.language.convertAbsolutePath, + click: () => { + convertTarget( + [item.id], + isAbsolutePath(item.data.target) ? "Relative" : "Absolute" + ); + }, + }) + ); + pathMenu = true; + } + if (item.type === 0 || item.type === 1 || item.type === 2) { + menuList.push( + new MenuItem({ + label: global.language.createShortcut, + click: () => { + createShortcut(item); + }, + }) + ); + pathMenu = true; + } + if (pathMenu) { + menuList.push(new MenuItem({ type: "separator" })); + } + if (type === "main") { + // "图标"菜单 + let existPasteIcon = false; + // 获取剪切板图片文件 + let imageFile = getClipboardImageFile(); + if (imageFile) { + existPasteIcon = true; + } else { + // 判断剪切板中的BITMAP是否存在 + let hasBitmap = global.addon.clipboardHasBitmap(); + if (hasBitmap) { + existPasteIcon = true; + } + } + if (existPasteIcon) { + menuList.push( + new MenuItem({ + label: global.language.pasteIcon, + click: () => { + pasteIcon(item.id); + }, + }) + ); + } + } + menuList.push( + new MenuItem({ + label: global.language.exportIcon, + click: () => { + exportIcon(item); + }, + }) + ); + if ( + type === "main" && + (item.type === 0 || item.type === 1) && + !item.data.fixedIcon + ) { + menuList.push( + new MenuItem({ + label: global.language.refreshIcon, + click: () => { + refreshIcon([item.id]); + }, + }) + ); + } + if (type === "main" && classification.type === 0) { + menuList.push(new MenuItem({ type: "separator" })); + menuList.push( + new MenuItem({ + label: global.language.moveTo, + submenu: getCopyMoveMenuItems([item.id], "MoveItem"), + }) + ); + menuList.push( + new MenuItem({ + label: global.language.copyTo, + submenu: getCopyMoveMenuItems([item.id], "CopyItem"), + }) + ); + menuList.push(new MenuItem({ type: "separator" })); + // 项目通用 + menuList.push( + new MenuItem({ + label: global.language.edit, + click: () => { + // 创建窗口 + createAddEditWindow(item.id, null); + }, + }), + new MenuItem({ + label: global.language.delete, + click: () => { + let res = dialog.showMessageBoxSync(global.mainWindow, { + message: global.language.deleteItemPrompt, + buttons: [global.language.ok, global.language.cancel], + type: "question", + noLink: true, + cancelId: 1, + }); + if (res === 0) { + // 删除数据 + del(item.id); + // 快捷键 + setShortcutKey(); + // 通知前端删除数据 + sendToWebContent("mainWindow", "onDeleteItem", [item.id]); + } + }, + }) + ); + } + } else { + // 尝试查询分类下有没有子分类 + let classificationList = selectClassificationList(classificationId); + // 添加项目选项 + if (classificationList && classificationList.length > 0) { + let submenus = []; + for (const classification of classificationList) { + if (classification.type === 0) { + submenus.push( + new MenuItem({ + label: classification.name, + click: () => { + // 创建窗口 + createAddEditWindow(null, classification.id); + }, + }) + ); + } + } + if (submenus.length > 0) { + menuList.push( + new MenuItem({ + label: global.language.newItem, + submenu: submenus, + }) + ); + } + } else { + if (classification.type === 0) { + menuList.push( + new MenuItem({ + label: global.language.newItem, + click: () => { + // 创建窗口 + createAddEditWindow(null, classificationId); + }, + }) + ); + } + } + // 分割线 + menuList.push(new MenuItem({ type: "separator" })); + if (classification.type !== 2) { + // 排序 + menuList.push(getItemSortMenu(classification)); + } + // 布局 + menuList.push(getItemLayoutMenu(classification)); + // 列数 + if ( + !hasChildClassification(classificationId) && + (classification.data.itemLayout === "list" || + (global.setting.item.layout === "list" && + classification.data.itemLayout === "default")) + ) { + // 只有子级分类或没有子级分类的父级分类并且布局是列表的才显示列数 + menuList.push(getItemColumnNumber(classification)); + } + // 图标 + menuList.push(getItemIconSize(classification)); + // 显示 + menuList.push(getItemShowOnly(classification)); + // 只有普通分类可以锁定/解锁分类 + if (classification.type === 0) { + menuList.push( + new MenuItem({ type: "separator" }), + new MenuItem({ + label: !lockItem + ? global.language.lockItem + : global.language.unlockItem, + click: () => { + sendToWebContent("mainWindow", "onLockItem", {}); + }, + }) + ); + } + } + } else { + if (classification.type === 0) { + menuList.push( + new MenuItem({ + label: global.language.selectAll, + click: () => { + sendToWebContent( + "mainWindow", + "onItembatchOperationSelectAll", + {} + ); + }, + }), + new MenuItem({ type: "separator" }), + new MenuItem({ + label: global.language.batchMoveTo, + submenu: getCopyMoveMenuItems(batchSelectedIdList, "MoveItem"), + }), + new MenuItem({ + label: global.language.batchCopyTo, + submenu: getCopyMoveMenuItems(batchSelectedIdList, "CopyItem"), + }), + new MenuItem({ type: "separator" }), + new MenuItem({ + label: global.language.batchConvertRelativePath, + click: () => { + convertTarget(batchSelectedIdList, "Relative"); + }, + }), + new MenuItem({ + label: global.language.batchConvertAbsolutePath, + click: () => { + convertTarget(batchSelectedIdList, "Absolute"); + }, + }), + new MenuItem({ type: "separator" }), + new MenuItem({ + label: global.language.batchRefreshIcon, + click: () => { + refreshIcon(batchSelectedIdList); + }, + }), + new MenuItem({ type: "separator" }), + new MenuItem({ + label: global.language.batchDelete, + click: () => { + let res = dialog.showMessageBoxSync(global.mainWindow, { + message: global.language.batchDeletePrompt, + buttons: [global.language.ok, global.language.cancel], + type: "question", + noLink: true, + cancelId: 1, + }); + if (res === 0) { + for (const id of batchSelectedIdList) { + // 删除数据 + del(id); + // 快捷键 + setShortcutKey(); + } + // 通知前端删除数据 + sendToWebContent( + "mainWindow", + "onDeleteItem", + batchSelectedIdList + ); + } + }, + }) + ); + } + } + // 非锁定项目下可以批量操作 + if (type === "main" && !lockItem && classification.type === 0) { + menuList.push( + new MenuItem({ type: "separator" }), + new MenuItem({ + label: !batchOperation + ? global.language.batchOperation + : global.language.cancelBatchOperation, + click: () => { + sendToWebContent( + "mainWindow", + "onItemBatchOperation", + !batchOperation + ); + }, + }) + ); + } + if (menuList.length > 0) { + // 载入菜单 + let menu = Menu.buildFromTemplate(menuList); + // 菜单显示 + menu.on("menu-will-show", () => { + global.itemRightMenu = true; + }); + // 菜单关闭 + menu.on("menu-will-close", () => { + global.itemRightMenu = false; + sendToWebContent( + type === "quickSearch" ? "quickSearchWindow" : "mainWindow", + "onItemRightMenuClose", + [] + ); + }); + // 显示 + menu.popup(); + } + }); + // 创建网络图标窗口 + ipcMain.on("createItemNetworkIconWindow", () => { + createNetworkIconWindow(); + }); + // 显示网络图标窗口 + ipcMain.on("showItemNetworkIconWindow", () => { + if (global.itemNetworkIconWindow) { + global.itemNetworkIconWindow.show(); + } + }); + // 关闭网络图标窗口 + ipcMain.on("closeItemNetworkIconWindow", () => { + closeWindow(global.itemNetworkIconWindow); + }); + // 创建SVG图标窗口 + ipcMain.on("createItemSVGIconWindow", () => { + createSVGIconWindow(); + }); + // 显示SVG图标窗口 + ipcMain.on("showItemSVGIconWindow", () => { + if (global.itemSVGIconWindow) { + global.itemSVGIconWindow.show(); + } + }); + // 关闭SVG图标窗口 + ipcMain.on("closeItemSVGIconWindow", () => { + closeWindow(global.itemSVGIconWindow); + }); + // 获取系统项目 + ipcMain.on("getSystemItemList", (event, args) => { + let res = getSystemItemList(); + sendToWebContent("itemAddEditWindow", "onGetSystemItemList", res); + }); + // 获取开始菜单项目 + ipcMain.on("getStartMenuItemList", (event, args) => { + getStartMenuItemList(); + }); + // 获取APPX项目 + ipcMain.on("getAppxItemList", (event, args) => { + getAppxItemList(); + }); + // 拖入项目 + ipcMain.on("dropItem", (event, args) => { + drop(args.classificationId, args.pathList); + }); + // 运行项目 + ipcMain.on("runItem", (event, args) => { + run(args.type, args.operation, args.item); + }); + // 项目拖出 + ipcMain.on("itemDragOut", (event, args) => { + let item: Item = args; + try { + // 网站和系统不能拖出 + if (item.type === 2 || item.type === 3) { + // 取消拖出状态 + sendToWebContent("mainWindow", "onItemCancelDragOut", {}); + return; + } + let icon = join(process.env.VITE_PUBLIC, "drag-and-drop.png"); + event.sender.startDrag({ + file: getAbsolutePath(item.data.target), + icon: icon, + }); + } finally { + // 取消拖出状态 + sendToWebContent("mainWindow", "onItemCancelDragOut", {}); + } + }); + // 更新打开信息 + ipcMain.on("updateItemOpenInfo", (event, args) => { + updateOpenInfo(args.type, args.id); + }); +} diff --git a/electron/main/main/index.ts b/electron/main/main/index.ts new file mode 100644 index 0000000..3a518d5 --- /dev/null +++ b/electron/main/main/index.ts @@ -0,0 +1,701 @@ +import { + BrowserWindow, + Display, + Menu, + Tray, + app, + screen, + shell, +} from "electron"; +import { createSettingWindow } from "../setting"; +import { join } from "node:path"; +import cacheData from "../commons/cacheData"; +import { getMainBackgorunColor, sendToWebContent } from "../commons"; + +// 窗口 +let mainWindow: BrowserWindow | null = null; + +/** + * 主窗口 + */ +function createMainWindow() { + // 如果窗口存在先关闭窗口 + if (mainWindow && !mainWindow.isDestroyed() && mainWindow.isVisible()) { + mainWindow.close(); + mainWindow = null; + global.mainWindow = null; + } + // 创建窗口 + mainWindow = global.mainWindow = new BrowserWindow({ + title: "Dawn Launcher", + width: 800, + height: 600, + type: "toolbar", + frame: false, + show: false, + maximizable: false, + minimizable: false, + fullscreenable: false, + transparent: global.setting.appearance.transparency < 1, + skipTaskbar: true, + backgroundColor: + global.setting.appearance.transparency === 1 + ? getMainBackgorunColor() + : null, + webPreferences: { + spellcheck: false, + backgroundThrottling: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + if (process.env.VITE_DEV_SERVER_URL) { + mainWindow.loadURL(process.env.VITE_DEV_SERVER_URL); + } else { + mainWindow.loadFile(join(process.env.DIST, "index.html")); + } + // 加载完毕 + mainWindow.webContents.on("did-finish-load", () => { + // 恢复上一次的位置 + let bounds = cacheData.cacheStore.get("mainWindowBounds"); + if (bounds) { + mainWindow.setBounds(bounds); + } + // 永远居中不可移动 + if (global.setting.general.alwaysCenter) { + mainWindow.setMovable(false); + } else { + mainWindow.setMovable(!global.setting.general.fixedPosition); + } + // 永远置顶 + if (global.setting.general.alwaysTop) { + mainWindow.setAlwaysOnTop(true, "screen-saver"); + } + // 锁定尺寸 + if (!global.setting.general.lockSize) { + mainWindow.setResizable(!global.setting.general.lockSize); + } + // 托盘 + createTray(!global.setting.general.hideTray); + // 永远居中 + alwaysCenter(); + // 判断窗口位置 + let displays = getWindowInScreen(); + if (displays.length === 0) { + // 代表窗口的位置不再任一屏幕内,将窗口位置移动到主窗口 + mainWindow.center(); + } + // 边缘吸附 + edgeAdsorb(null); + }); + mainWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 显示窗口 + mainWindow.on("show", () => { + // 显示窗口时将输入法切换为英文模式 + if (global.setting.general.switchEnglish) { + global.addon.switchEnglish( + mainWindow.getNativeWindowHandle().readInt32LE(0) + ); + } + // 边缘吸附 + edgeAdsorb(null); + }); + // 失去焦点 + mainWindow.on("blur", () => { + if (global.setting.general.edgeAutoHide && global.blurHide) { + let scaleFactor = screen.getPrimaryDisplay().scaleFactor; + autoHide( + screen.getCursorScreenPoint().x * scaleFactor, + screen.getCursorScreenPoint().y * scaleFactor, + 0, + false + ); + } + if ( + mainWindow.isVisible() && + global.setting.general.hideLoseFocus && + !global.setting.general.alwaysTop + ) { + // 如果当前还有打开的子窗口就不执行失去焦点隐藏 + if (mainWindow.getChildWindows().length === 0) { + hideMainWindow(); + } + } + }); + // 窗口移动完毕 + mainWindow.on("moved", () => { + // 边缘吸附 + edgeAdsorb(null); + // 永远居中 + alwaysCenter(); + // 记录位置 + cacheData.cacheStore.set("mainWindowBounds", mainWindow.getBounds()); + }); + // 改变窗口大小完毕 + mainWindow.on("resized", () => { + // 边缘吸附 + edgeAdsorb(null); + // 永远居中 + alwaysCenter(); + // 记录位置 + cacheData.cacheStore.set("mainWindowBounds", mainWindow.getBounds()); + }); + // 窗口隐藏事件 + mainWindow.on("hide", () => { + // 收起子分类 + if (global.setting.classification.hideWindowCollapseSubClassification) { + sendToWebContent("mainWindow", "onCollapseSubClassification", {}); + } + }); + // 创建鼠标hook + addon.createMouseHook((...args: any[]) => { + let res = JSON.parse(args[1]); + let event: string = res.event; + let x: number = res.x; + let y: number = res.y; + // 1左键 2右键 3滚轮 + let button: number = res.button; + if (event === "mousemove") { + // 鼠标移动 + if (!global.blurHide) { + // 停靠在桌面边缘时自动隐藏 + autoHide(x, y, 40, true); + } + } else if (event === "mousedown") { + // 鼠标按下 + } else if (event === "mouseup") { + // 鼠标抬起 + if (button === 3) { + // 中间单击 + // 显示隐藏窗口 + showHideMouseWheelClick(); + } + // 双击任务栏 + doubleClickTaskbar(button); + } + }); + // 禁用标题栏右键 + mainWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + mainWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + mainWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * 显示窗口之前 + * @param blurHide + * @param selectedClassificationId + */ +function showMainWindowBefore( + blurHide: boolean, + selectedClassificationId: number | null = null +) { + // 向主窗口发送通知 + sendToWebContent("mainWindow", "onShowMainWindowBefore", { + blurHide, + selectedClassificationId, + }); +} + +/** + * 显示窗口 + * @param blurHide + */ +function showMainWindow(blurHide: boolean) { + // flag + let flag = true; + // 是否开启勿扰模式 + if (global.setting.general.notDisturb) { + if (global.addon.isFullscreen()) { + flag = false; + } + } + // 显示时跟随鼠标位置 + showFollowMousePosition(); + if (flag) { + global.mainWindow.show(); + // 如果没有设置置顶时,显示窗口先置顶一下,再取消 + if (!global.mainWindow.isAlwaysOnTop) { + mainWindow.setAlwaysOnTop(true, "screen-saver"); + mainWindow.setAlwaysOnTop(false); + } + global.mainWindow.focus(); + global.blurHide = blurHide; + if (blurHide) { + global.blurHide = true; + } else { + global.blurHide = false; + } + } +} + +/** + * 隐藏窗口 + */ +function hideMainWindow() { + if (global.mainWindow.isVisible()) { + global.mainWindow.hide(); + global.blurHide = false; + } +} + +/** + * 托盘 + */ +function createTray(show: boolean) { + if (show) { + // 销毁托盘 + if (global.tray && !global.tray.isDestroyed()) { + global.tray.destroy(); + global.tray = null; + } + // 创建托盘 + global.tray = new Tray(join(process.env.VITE_PUBLIC, "tray.ico")); + // 菜单 + let contextMenu = Menu.buildFromTemplate([ + { + label: global.language.displayMainWindow, + click: function () { + showMainWindowBefore(true); + }, + }, + { + label: global.language.settings, + click: function () { + createSettingWindow(); + }, + }, + { + label: global.language.exit, + click: function () { + app.quit(); + }, + }, + ]); + global.tray.setToolTip("Dawn Launcher"); + global.tray.setContextMenu(contextMenu); + // 点击托盘 + global.tray.on("click", () => { + showMainWindowBefore(true); + }); + } else { + // 销毁托盘 + if (global.tray && !global.tray.isDestroyed()) { + global.tray.destroy(); + global.tray = null; + } + } +} + +/** + * 获取窗口所在的屏幕 + */ +function getWindowInScreen() { + let inDisplays: Array = []; + let displays = screen.getAllDisplays(); + let bounds = global.mainWindow.getBounds(); + for (let display of displays) { + let workArea = display.workArea; + if ( + ((workArea.x <= bounds.x && workArea.x + workArea.width >= bounds.x) || + (workArea.x <= bounds.x + bounds.width && + workArea.x + workArea.width >= bounds.x + bounds.width)) && + ((workArea.y <= bounds.y && workArea.y + workArea.height >= bounds.y) || + (workArea.y <= bounds.y + bounds.height && + workArea.y + workArea.height >= bounds.y + bounds.height)) + ) { + inDisplays.push(display); + } + } + return inDisplays; +} + +/** + * 边缘吸附 + * @param display + * @returns + */ +function edgeAdsorb(display: Display | null) { + // 如果勾选停靠在桌面边缘时自动隐藏,放行 + if ( + global.mainWindow.isDestroyed() || + (!global.setting.general.edgeAdsorb && !global.setting.general.edgeAutoHide) + ) { + return; + } + try { + // 清空方向 + global.mainWindowDirection = null; + // 屏幕 + let displays = display ? [display] : getWindowInScreen(); + if (displays.length > 1 || displays.length === 0) { + return; + } + // 获取屏幕工作区域 + let workArea = displays[0].workArea; + // 窗口位置信息 + let bounds = global.mainWindow.getBounds(); + if (bounds.x + bounds.width >= workArea.x + workArea.width) { + // 右侧 + global.mainWindow.setBounds({ + x: workArea.x + workArea.width - bounds.width, + }); + global.mainWindowDirection = "right"; + global.blurHide = false; + } else if (bounds.x <= workArea.x) { + // 左侧 + global.mainWindow.setBounds({ x: workArea.x }); + global.mainWindowDirection = "left"; + global.blurHide = false; + } + if (bounds.y + bounds.height >= workArea.y + workArea.height) { + // 底部 + global.mainWindow.setBounds({ + y: workArea.y + workArea.height - bounds.height, + }); + global.mainWindowDirection = "bottom"; + global.blurHide = false; + } else if (bounds.y <= workArea.y) { + // 顶部 + global.mainWindow.setBounds({ y: workArea.y }); + global.mainWindowDirection = "top"; + global.blurHide = false; + } + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + global.mainWindow.setBounds({ x: 1, y: 1 }); + } +} + +/** + * 显示时跟随鼠标位置 + */ +function showFollowMousePosition() { + // 当永远居中、固定位置勾选后不能使用显示时跟随鼠标位置 + if ( + !global.setting.general.alwaysCenter && + !global.setting.general.fixedPosition && + global.setting.general.showFollowMousePosition + ) { + // 获取鼠标位置 + let point = screen.getCursorScreenPoint(); + // 窗口位置信息 + let bounds = global.mainWindow.getBounds(); + let x = Math.round(bounds.width / 2); + let y = Math.round(bounds.height / 2); + // 设置窗口位置 + global.mainWindow.setPosition(point.x - x, point.y - y); + for (let i = 0; i < 10; i++) { + global.mainWindow.setSize(bounds.width, bounds.height); + } + // 获取当前鼠标所在屏幕 + let display = screen.getDisplayNearestPoint(point); + // 边缘吸附 + edgeAdsorb(display); + } +} + +/** + * 中间单击显示/隐藏窗口 + */ +function showHideMouseWheelClick() { + if (global.setting.general.showHideMouseWheelClick) { + if (global.mainWindow.isVisible()) { + hideMainWindow(); + } else { + showMainWindowBefore(true); + } + } +} + +/** + * 永远居中 + */ +function alwaysCenter() { + if (global.setting.general.alwaysCenter) { + mainWindow.center(); + } +} + +/** + * 边缘自动隐藏 + * @param x + * @param y + * @param size + * @param timer 是否启用延迟显示/隐藏 + * @returns + */ +function autoHide(x: number, y: number, size: number, timer: boolean) { + if (global.mainWindow.isDestroyed() || !global.setting.general.edgeAutoHide) { + return; + } + // 当有子窗口时不自动隐藏 + if (mainWindow.getChildWindows().length > 0) { + return; + } + try { + // 屏幕 + let displays = getWindowInScreen(); + if (displays.length > 1 || displays.length === 0) { + return; + } + // 工作区域 + let workArea = displays[0].workArea; + // 缩放比例 + let scaleFactor = displays[0].scaleFactor; + // 窗口位置信息 + let bounds = mainWindow.getBounds(); + if (mainWindow.isVisible()) { + let flag = false; + if (bounds.x + bounds.width >= workArea.x + workArea.width) { + // 右侧 + flag = + x <= bounds.x * scaleFactor - size || + y <= bounds.y * scaleFactor - size || + y >= (bounds.y + bounds.height) * scaleFactor + size; + } else if (bounds.x === workArea.x) { + // 左侧 + flag = + x > (bounds.x + bounds.width) * scaleFactor + size || + y <= bounds.y * scaleFactor - size || + y >= (bounds.y + bounds.height) * scaleFactor + size; + } else if (bounds.y + bounds.height >= workArea.y + workArea.height) { + // 底部 + flag = + y < bounds.y * scaleFactor - size || + x <= bounds.x * scaleFactor - size || + x >= (bounds.x + bounds.width) * scaleFactor + size; + } else if (bounds.y === workArea.y) { + // 顶部 + flag = + y > (bounds.y + bounds.height) * scaleFactor + size || + x <= bounds.x * scaleFactor - size || + x >= (bounds.x + bounds.width) * scaleFactor + size; + } + if (flag && !global.classificationRightMenu && !global.itemRightMenu) { + if ( + timer && + global.setting.general.delayHideMs > 0 && + !global.autoHideTimer + ) { + // 延迟隐藏 + global.autoHideTimer = setTimeout(function () { + hideMainWindow(); + }, global.setting.general.delayHideMs); + } else if (!timer || global.setting.general.delayHideMs === 0) { + // 隐藏 + hideMainWindow(); + } + } else { + // 清空timer + clearTimeout(global.autoHideTimer); + global.autoHideTimer = null; + } + } else { + if (global.mainWindowDirection) { + let flag = false; + let scaleFactorX = bounds.x * scaleFactor; + let scaleFactorY = bounds.y * scaleFactor; + let windowWidthPosition = (bounds.x + bounds.width) * scaleFactor; + let windowHeightPosition = (bounds.y + bounds.height) * scaleFactor; + if ( + global.mainWindowDirection === "right" && + x >= windowWidthPosition - 1 && + y >= scaleFactorY && + y <= windowHeightPosition + ) { + // 右侧 + flag = true; + } else if ( + global.mainWindowDirection === "left" && + x <= workArea.x && + y >= scaleFactorY && + y <= windowHeightPosition + ) { + // 左侧 + flag = true; + } else if ( + global.mainWindowDirection === "bottom" && + y >= windowHeightPosition - 1 && + x >= scaleFactorX && + x <= windowWidthPosition + ) { + // 底部 + flag = true; + } else if ( + global.mainWindowDirection === "top" && + y <= workArea.y && + x >= scaleFactorX && + x <= windowWidthPosition + ) { + // 顶部 + flag = true; + } + if (flag) { + if ( + timer && + global.setting.general.delayDisplayMs > 0 && + !global.autoHideTimer + ) { + // 延迟显示 + global.autoHideTimer = setTimeout(function () { + showMainWindowBefore(false); + }, global.setting.general.delayDisplayMs); + } else if (!timer || global.setting.general.delayDisplayMs === 0) { + // 显示 + showMainWindowBefore(false); + } + } else { + // 清空timer + clearTimeout(global.autoHideTimer); + global.autoHideTimer = null; + } + } + } + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + global.mainWindow.setBounds({ x: 1, y: 1 }); + } +} + +/** + * 双击任务栏显示/隐藏 + */ +function doubleClickTaskbar(button: number) { + // 必须开启设置 + if (!global.setting.general.showHideDoubleClickTaskbar) { + return; + } + // 不是左键的话 + if (button !== 1) { + // 清除timeout + clearTimeout(global.doubleClickTaskbarTimer); + // 清空计数 + global.doubleClickTaskbarCounter = 0; + return; + } + // 获取屏幕 + let displays = getWindowInScreen(); + if (displays.length > 1 || displays.length === 0) { + // 清除timeout + clearTimeout(global.doubleClickTaskbarTimer); + // 清空计数 + global.doubleClickTaskbarCounter = 0; + return; + } + // 获取鼠标位置 + let point = screen.getCursorScreenPoint(); + // 判断鼠标是否在当前屏幕内 + if ( + point.x >= displays[0].bounds.x && + point.x <= displays[0].bounds.x + displays[0].bounds.width && + point.y >= displays[0].bounds.y && + point.y <= displays[0].bounds.y + displays[0].bounds.height + ) { + // 判断是否双击在任务栏上 + let flag = false; + // 判断任务栏在哪一侧 + if (displays[0].bounds.height > displays[0].workArea.height) { + if (displays[0].bounds.y === displays[0].workArea.y) { + // 底部 + let top = displays[0].workArea.y + displays[0].workArea.height; + let bottom = displays[0].bounds.y + displays[0].bounds.height; + if (point.y >= top && point.y <= bottom) { + flag = true; + } + } else { + // 顶部 + if ( + point.y >= displays[0].bounds.y && + point.y <= displays[0].workArea.y + ) { + flag = true; + } + } + } else if (displays[0].bounds.width > displays[0].workArea.width) { + if (displays[0].bounds.x === displays[0].workArea.x) { + // 右侧 + let left = displays[0].workArea.x + displays[0].workArea.width; + let right = displays[0].bounds.x + displays[0].bounds.width; + if (point.x >= left && point.x <= right) { + flag = true; + } + } else { + // 左侧 + if ( + point.x >= displays[0].bounds.x && + point.x <= displays[0].workArea.x + ) { + flag = true; + } + } + } + if (flag) { + // 监听双击 + if (!global.doubleClickTaskbarCounter) { + global.doubleClickTaskbarCounter = 0; + } + // +1 + global.doubleClickTaskbarCounter++; + // 等于2就是双击 + if ( + global.doubleClickTaskbarCounter && + global.doubleClickTaskbarCounter === 2 + ) { + // 清除timeout + clearTimeout(global.doubleClickTaskbarTimer); + // 清空计数 + global.doubleClickTaskbarCounter = 0; + // 判断点击的窗口ClassName + let className = global.addon.getCursorPosWindowClassName(); + if (className.indexOf("MSTask") >= 0 || className === "Shell_TrayWnd") { + if (mainWindow.isVisible()) { + hideMainWindow(); + } else { + showMainWindowBefore(false); + } + } + } else { + // 间隔为500毫秒,如果超过500毫秒就代表不是双击 + global.doubleClickTaskbarTimer = setTimeout(function () { + global.doubleClickTaskbarCounter = 0; + }, 500); + } + } else { + // 清除timeout + clearTimeout(global.doubleClickTaskbarTimer); + // 清空计数 + global.doubleClickTaskbarCounter = 0; + } + } else { + // 清除timeout + clearTimeout(global.doubleClickTaskbarTimer); + // 清空计数 + global.doubleClickTaskbarCounter = 0; + } +} + +export { + createMainWindow, + showMainWindowBefore, + showMainWindow, + hideMainWindow, + createTray, + edgeAdsorb, + getWindowInScreen, + showHideMouseWheelClick, + alwaysCenter, + autoHide, +}; diff --git a/electron/main/main/ipcEvent.ts b/electron/main/main/ipcEvent.ts new file mode 100644 index 0000000..ccea079 --- /dev/null +++ b/electron/main/main/ipcEvent.ts @@ -0,0 +1,33 @@ +import { ipcMain } from "electron"; +import { createTray, hideMainWindow, showMainWindow } from "./index"; +import { initAssociateFolder } from "../classification"; +import { checkInvalid } from "../item"; + +export default function () { + // 显示窗口 + ipcMain.on("showMainWindow", (event, args) => { + showMainWindow(args.blurHide); + }); + // 隐藏窗口 + ipcMain.on("hideMainWindow", () => { + hideMainWindow(); + }); + // 托盘 + ipcMain.on("setTray", (event, args) => { + createTray(args); + }); + // 初始化数据 + ipcMain.on("mainWindowInitData", () => { + // 初始化关联文件夹 + initAssociateFolder(); + // 检测无效项目 + if (global.setting.item.checkInvalidItem) { + // 五分钟检测一次 + global.checkInvalidItemInterval = setInterval(() => { + checkInvalid(); + }, 300000); + // 初始化执行一次 + checkInvalid(); + } + }); +} diff --git a/electron/main/search/index.ts b/electron/main/search/index.ts new file mode 100644 index 0000000..79cb52b --- /dev/null +++ b/electron/main/search/index.ts @@ -0,0 +1,131 @@ +import { BrowserWindow, shell } from "electron"; +import { join } from "node:path"; +import { getMainBackgorunColor, sendToWebContent } from "../commons"; +import cacheData from "../commons/cacheData"; + +// 窗口 +let quickSearchWindow: BrowserWindow | null = null; + +/** + * 快速搜索窗口 + */ +function createQuickSearchWindow() { + // 创建窗口 + global.quickSearchWindowInit = false; + quickSearchWindow = global.quickSearchWindow = new BrowserWindow({ + title: "Dawn Launcher", + width: 600, + height: 44, + type: "toolbar", + frame: false, + show: false, + maximizable: false, + minimizable: false, + fullscreenable: false, + resizable: false, + alwaysOnTop: true, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + backgroundThrottling: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + if (process.env.VITE_DEV_SERVER_URL) { + quickSearchWindow.loadURL( + process.env.VITE_DEV_SERVER_URL + "Search/QuickSearch" + ); + } else { + quickSearchWindow.loadFile(join(process.env.DIST, "index.html"), { + hash: "/Search/QuickSearch", + }); + } + quickSearchWindow.webContents.on("did-finish-load", function () { + // 恢复上一次的位置 + let bounds = cacheData.cacheStore.get("quickSearchWindowBounds"); + if (bounds) { + quickSearchWindow.setBounds(bounds); + } + // 设置可以显示 + global.searchWindowShow = true; + }); + quickSearchWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 失去焦点 + quickSearchWindow.on("blur", () => { + // 失去焦点后隐藏 + if (global.setting.quickSearch.hideLoseFocus) { + hideQuickSearchWindow(); + } + }); + // 显示窗口 + quickSearchWindow.on("show", () => { + // 背景色 + quickSearchWindow.setBackgroundColor( + global.setting.appearance.theme.mainBackgroundColor + ); + // 显示窗口时将输入法切换为英文模式 + if (global.setting.general.switchEnglish) { + global.addon.switchEnglish( + quickSearchWindow.getNativeWindowHandle().readInt32LE(0) + ); + } + }); + // 窗口移动完毕 + quickSearchWindow.on("moved", () => { + // 记录位置 + cacheData.cacheStore.set( + "quickSearchWindowBounds", + quickSearchWindow.getBounds() + ); + }); + // 隐藏窗口 + quickSearchWindow.on("hide", () => { + // 设置默认高度 + quickSearchWindow.setBounds({ height: 44 }); + // 发送消息清空数据 + quickSearchWindow.webContents.send("onQuickSearchClearData"); + }); + // 禁用标题栏右键 + quickSearchWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + quickSearchWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + quickSearchWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * 显示快速搜索窗口之前 + */ +function showQuickSearchWindowBefore() { + // 向主窗口发送通知 + sendToWebContent("quickSearchWindow", "onShowQuickSearchWindowBefore", null); +} + +/** + * 显示快速搜索窗口 + */ +function showQuickSearchWindow() { + quickSearchWindow.show(); +} + +/** + * 隐藏快速搜索窗口 + */ +function hideQuickSearchWindow() { + quickSearchWindow.hide(); +} + +export { + createQuickSearchWindow, + showQuickSearchWindow, + hideQuickSearchWindow, + showQuickSearchWindowBefore, +}; diff --git a/electron/main/search/ipcEvent.ts b/electron/main/search/ipcEvent.ts new file mode 100644 index 0000000..fdfc40c --- /dev/null +++ b/electron/main/search/ipcEvent.ts @@ -0,0 +1,21 @@ +import { ipcMain } from "electron"; +import { hideQuickSearchWindow, showQuickSearchWindow } from "."; + +export default function () { + // 快速搜索初始化完成 + ipcMain.on("quickSearchInitFinished", () => { + global.quickSearchWindowInit = true; + }); + // 显示快速搜索窗口 + ipcMain.on("showQuickSearchWindow", () => { + showQuickSearchWindow(); + }); + // 隐藏快速搜索窗口 + ipcMain.on("hideQuickSearchWindow", () => { + hideQuickSearchWindow(); + }); + // 设置快速搜索窗口高度 + ipcMain.on("setQuickSearchWindowHeight", (event, args) => { + global.quickSearchWindow.setBounds({ height: args }); + }); +} diff --git a/electron/main/setting/data.ts b/electron/main/setting/data.ts new file mode 100644 index 0000000..4634e54 --- /dev/null +++ b/electron/main/setting/data.ts @@ -0,0 +1,82 @@ +import { Setting } from "../../../types/setting"; +import { getSetting } from "../../../commons/utils/setting"; +import { getDataSqlite3 } from "../../commons/betterSqlite3"; + +// 获取数据库 +let db = getDataSqlite3(); + +// 设置表名 +let settingTableName = "setting"; + +/** + * 初始化 + */ +function init() { + // sql + let sql = `CREATE TABLE IF NOT EXISTS ${settingTableName} ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + setting TEXT NOT NULL)`; + // 运行 + db.exec(sql); + // 如果无数据的话,初始化 + let setting = select(); + if (setting) { + global.setting = setting; + } else { + setting = getSetting(null); + if (add(setting)) { + global.setting = setting; + } + } +} + +/** + * 查询 + */ +function select() { + // sql + let sql = `SELECT setting FROM ${settingTableName} WHERE id = 1`; + // 运行 + let row: any = db.prepare(sql).get(); + // 返回 + if (row && row.setting) { + return getSetting(JSON.parse(row.setting)); + } else { + return null; + } +} + +/** + * 添加 + */ +function add(setting: Setting) { + // SQL + let sql = `INSERT INTO ${settingTableName} + (id, setting) + VALUES (?, ?)`; + // 运行 + let id = db.prepare(sql).run(1, JSON.stringify(setting)).lastInsertRowid; + if (id) { + global.setting = setting; + return true; + } + return false; +} + +/** + * 更新 + */ +function update(setting: Setting) { + // SQL + let sql = `UPDATE ${settingTableName} + SET setting = ? + WHERE id = ?`; + // 运行 + let res = db.prepare(sql).run(JSON.stringify(setting), 1).changes > 0; + if (res) { + global.setting = setting; + } + return res; +} + +export { init, select, add, update }; diff --git a/electron/main/setting/index.ts b/electron/main/setting/index.ts new file mode 100644 index 0000000..1ef1a86 --- /dev/null +++ b/electron/main/setting/index.ts @@ -0,0 +1,146 @@ +import { BrowserWindow, globalShortcut, shell } from "electron"; +import { join } from "node:path"; +import { Setting } from "../../../types/setting"; +import { hideMainWindow, showMainWindowBefore } from "../main/index"; +import { list as selectClassificationList } from "../classification/data"; +import { list as selectItemList } from "../item/data"; +import { run } from "../item"; +import { closeWindow, getMainBackgorunColor } from "../commons/index"; +import { + createQuickSearchWindow, + hideQuickSearchWindow, + showQuickSearchWindowBefore, +} from "../search"; + +// 窗口 +let settingWindow: BrowserWindow | null = null; + +/** + * 设置窗口 + */ +function createSettingWindow() { + // 如果窗口存在先关闭窗口 + closeWindow(settingWindow); + // 创建窗口 + settingWindow = global.settingWindow = new BrowserWindow({ + title: "Dawn Launcher", + frame: false, + parent: global.mainWindow, + height: 500, + width: 600, + type: "toolbar", + maximizable: false, + minimizable: false, + resizable: false, + fullscreenable: false, + skipTaskbar: true, + show: false, + backgroundColor: getMainBackgorunColor(), + webPreferences: { + spellcheck: false, + preload: join(__dirname, "../preload/index.js"), + devTools: process.env.NODE_ENV === "development", + }, + }); + if (process.env.VITE_DEV_SERVER_URL) { + settingWindow.loadURL(process.env.VITE_DEV_SERVER_URL + "Setting/Index"); + } else { + settingWindow.loadFile(join(process.env.DIST, "index.html"), { + hash: "/Setting/Index", + }); + } + settingWindow.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + // 禁用标题栏右键 + settingWindow.hookWindowMessage(278, function (e) { + // 窗口禁用 + settingWindow.setEnabled(false); + // 延时太快会立刻启动,太慢会妨碍窗口其他操作,可自行测试最佳时间 + setTimeout(() => { + settingWindow.setEnabled(true); + }, 100); + return true; + }); +} + +/** + * 设置快捷键 + */ +function setShortcutKey(setting: Setting = global.setting) { + // 取消所有快捷键 + globalShortcut.unregisterAll(); + // 设置主窗口显示/隐藏快捷键 + if ( + setting.general.showHideShortcutKey && + setting.general.showHideShortcutKey.trim() !== "" + ) { + globalShortcut.register(setting.general.showHideShortcutKey, () => { + if (global.mainWindow.isVisible()) { + hideMainWindow(); + } else { + showMainWindowBefore(true); + } + }); + } + // 分类快捷键 + let classificationList = selectClassificationList(); + for (const classification of classificationList) { + if (classification.globalShortcutKey && classification.shortcutKey) { + globalShortcut.register(classification.shortcutKey, () => { + // 分类 + showMainWindowBefore(true, classification.id); + }); + } + } + // 项目快捷键 + let itemList = selectItemList(); + for (const item of itemList) { + if (item.globalShortcutKey && item.shortcutKey) { + globalShortcut.register(item.shortcutKey, () => { + // 项目 + run("main", "open", item); + }); + } + } + // 快速搜索 + if ( + setting.quickSearch.showHideShortcutKey && + setting.quickSearch.showHideShortcutKey.trim() !== "" + ) { + globalShortcut.register(setting.quickSearch.showHideShortcutKey, () => { + // 如果窗口不存在或者被销毁的话,就创建窗口 + if (!global.quickSearchWindow || global.quickSearchWindow.isDestroyed()) { + createQuickSearchWindow(); + } + // 如果初始化完毕并且窗口状态是正常的话,可以进行显示/隐藏 + if ( + global.quickSearchWindowInit && + global.quickSearchWindow && + !global.quickSearchWindow.isDestroyed() + ) { + if (global.quickSearchWindow.isVisible()) { + hideQuickSearchWindow(); + } else { + showQuickSearchWindowBefore(); + } + } + }); + } +} + +/** + * 固定位置 + * @param fixedPosition + * @param alwaysCenter + */ +function setFixedPosition(fixedPosition: boolean, alwaysCenter: boolean) { + global.mainWindow.setMovable(!fixedPosition); + // 固定位置和永远居中不能同时存在 + if (alwaysCenter && fixedPosition) { + global.mainWindow.setMovable(false); + } +} + +export { createSettingWindow, setShortcutKey, setFixedPosition }; diff --git a/electron/main/setting/ipcEvent.ts b/electron/main/setting/ipcEvent.ts new file mode 100644 index 0000000..e903915 --- /dev/null +++ b/electron/main/setting/ipcEvent.ts @@ -0,0 +1,207 @@ +import { app, dialog, ipcMain } from "electron"; +import { + closeWindow, + getUserDataPath, + relaunch, + sendToWebContent, +} from "../commons/index"; +import { createSettingWindow, setFixedPosition, setShortcutKey } from "."; +import { add, select, update } from "./data"; +import { basename } from "node:path"; +import { edgeAdsorb } from "../main"; +import { sendAllWindows } from "../commons"; +import { parse } from "node:path"; +import { statSync, mkdirSync, copyFileSync, readFileSync } from "node:fs"; +import mime from "mime"; +import { checkInvalid } from "../item"; +import { updateItemOpenNumberSortToDefualt } from "../classification"; + +export default function () { + // 创建设置窗口 + ipcMain.on("createSettingWindow", () => { + createSettingWindow(); + }); + // 显示设置窗口 + ipcMain.on("showSettingWindow", () => { + if (global.settingWindow) { + global.settingWindow.show(); + } + }); + // 关闭设置窗口 + ipcMain.on("closeSettingWindow", () => { + closeWindow(global.settingWindow); + }); + // 查询设置 + ipcMain.on("selectSetting", (event, args) => { + event.returnValue = select(); + }); + // 添加设置 + ipcMain.on("addSetting", (event, args) => { + event.returnValue = add(args); + }); + // 更新设置 + ipcMain.on("updateSetting", (event, args) => { + // 记录旧透明度 + let oldTransparency = global.setting.appearance.transparency; + // 记录旧语言 + let oldLanguage = global.setting.general.language; + // 更新 + event.returnValue = update(args); + // 判断是否需要重启主界面 + if ( + (oldTransparency === 1 && global.setting.appearance.transparency < 1) || + (oldTransparency < 1 && global.setting.appearance.transparency === 1) + ) { + // 重新启动程序 + relaunch(); + return; + } else if (global.setting.general.language !== oldLanguage) { + // 重新启动程序 + relaunch(); + return; + } + // 通知所有窗口 + sendAllWindows("onUpdateSetting", args); + }); + // 开机启动 + ipcMain.on("startup", (event, args) => { + if (process.env.NODE_ENV !== "development") { + const exeName = basename(process.execPath); + app.setLoginItemSettings({ + openAtLogin: args, + openAsHidden: false, + path: process.execPath, + args: ["--processStart", `"${exeName}"`], + }); + } + }); + // 设置快捷键 + ipcMain.on("setShortcutKey", (event, args) => { + setShortcutKey(args); + }); + // 永远置顶 + ipcMain.on("setAlwaysTop", (event, args) => { + if (args) { + global.mainWindow.setAlwaysOnTop(true, "screen-saver"); + } else { + global.mainWindow.setAlwaysOnTop(false); + } + }); + // 锁定尺寸 + ipcMain.on("setLockSize", (event, args) => { + global.mainWindow.setResizable(!args); + }); + // 固定位置 + ipcMain.on("setFixedPosition", (event, args) => { + setFixedPosition(args.fixedPosition, args.alwaysCenter); + }); + // 永远居中 + ipcMain.on("setAlwaysCenter", (event, args) => { + if (args.alwaysCenter) { + global.mainWindow.center(); + global.mainWindow.setMovable(false); + } else { + setFixedPosition(args.fixedPosition, args.alwaysCenter); + } + }); + // 边缘吸附 + ipcMain.on("setEdgeAdsorb", (event, args) => { + if (args) { + global.setting.general.edgeAdsorb = true; + edgeAdsorb(null); + } + }); + // 上传背景图 + ipcMain.on("uploadBackgrounImage", (event, args) => { + // 打开文件对话框 + let filePathList = dialog.showOpenDialogSync(global.settingWindow, { + filters: [ + { + name: "Images", + extensions: ["jpg", "jpeg", "png", "gif", "ico", "svg", "webp"], + }, + ], + }); + if (filePathList && filePathList.length > 0) { + // 获取文件路径 + let filePath = filePathList[0]; + // 解析路径 + let parsedPath = parse(filePath); + // 拷贝的路径 + let destPath = getUserDataPath() + "\\images"; + // 不存在目录,创建目录 + try { + statSync(destPath); + } catch (e) { + mkdirSync(destPath); + } + // 图片名 + let name = "backgroundImage" + parsedPath.ext; + // 全路径 + let copyFullPath = destPath + "\\" + name; + try { + // 拷贝 + copyFileSync(filePath, copyFullPath); + // 图片转base64 + let buffer = readFileSync(copyFullPath); + let image = + "data:" + + mime.getType(copyFullPath) + + ";base64," + + buffer.toString("base64"); + // 返回base64 + event.returnValue = { + name, + image, + }; + } catch (e) { + if (process.env.NODE_ENV === "development") { + console.log(e); + } + event.returnValue = null; + } + } else { + event.returnValue = null; + } + }); + // 获取背景图 + ipcMain.on("getBackgroundImage", (event, args) => { + // 图片名 + let name: string = args.name; + // 窗口 + let windowName: string = args.windowName; + try { + // 读取图片转为BASE64 + let data = readFileSync(getUserDataPath() + "\\images\\" + name); + let buffer = Buffer.from(data); + let image = + "data:" + mime.getType(name) + ";base64," + buffer.toString("base64"); + // 通知窗口 + sendToWebContent(windowName, "onSetBacngroundImage", image); + } catch (e) {} + }); + // 检测无效项目 + ipcMain.on("setCheckInvalidItem", (event, args) => { + if (args) { + if (!global.checkInvalidItemInterval) { + // 五分钟检测一次 + global.checkInvalidItemInterval = setInterval(() => { + checkInvalid(); + }, 300000); + // 执行一次 + checkInvalid(); + } + } else { + // 清空定时 + clearInterval(global.checkInvalidItemInterval); + global.checkInvalidItemInterval = null; + } + }); + // 项目打开次数 + ipcMain.on("setItemOpenNumber", (event, args) => { + if (!args) { + // 将排序为打开次数的分类修改为默认排序 + updateItemOpenNumberSortToDefualt(); + } + }); +} diff --git a/electron/main/worker.ts b/electron/main/worker.ts new file mode 100644 index 0000000..b32122d --- /dev/null +++ b/electron/main/worker.ts @@ -0,0 +1,793 @@ +import mime from "mime"; +import { + deleteExtname, + getFileName, + newItem, +} from "../../commons/utils/common"; +import { CommonItem, Item } from "../../types/item"; +import { parse, join } from "node:path"; +import { readdirSync, readFileSync, statSync, writeFileSync } from "node:fs"; +import { execSync } from "node:child_process"; +import xml2js from "xml2js"; +import { newCommonItem, newCommonItemData } from "../../commons/utils/common"; +import { ShortcutInfo } from "../../types/common"; +import { getAbsolutePath, getFileIcon } from "../commons/utils"; + +// AppxInfo +export interface AppxInfo { + packageFamilyName: string; + installLocation: string; + appId: string | null; + icon: string | null; + name: string | null; +} + +// addon +global.addon = require("../../native/addon.node"); + +// 接收消息 +process.parentPort.once("message", async (event) => { + // 参数 + let data = event.data; + // 通道 + let port = event.ports[0]; + try { + // 转为实体 + let params = JSON.parse(data); + // 获取数据参数 + let dataParamStr = readFileSync(params.data.filePath, { + encoding: "utf-8", + }); + // 转为JSON + let dataParam = JSON.parse(dataParamStr); + // 返回信息 + let res = null; + if (params.name === "getStartMenuItemList") { + res = await getStartMenuItemList(dataParam); + } else if (params.name === "getAppxItemList") { + res = await getAppxItemList(); + } else if (params.name === "getDropItemInfo") { + res = await getDropItemInfo( + dataParam.classificationId, + dataParam.pathList + ); + } else if (params.name === "refreshItemIcon") { + res = await refreshItemIcon(dataParam); + } else if (params.name === "getDirectoryItemList") { + res = await getDirectoryItemList( + dataParam.classificationId, + dataParam.dir, + dataParam.hiddenItems, + dataParam.oldList + ); + } else if (params.name === "checkInvalidItem") { + res = checkInvalidItem(dataParam); + } + // 写入结果 + writeFileSync(params.data.filePath, JSON.stringify(res)); + port.postMessage(params.data.filePath); + } catch (e) { + process.exit(); + } +}); + +/** + * 读取路径下的文件 + * @param dir + */ +function getFiles(dir: string) { + let resultList: Array = []; + try { + // 读取开始菜单下所有内容 + let pathList = readdirSync(dir); + // 循环判断文件类型 + for (let path of pathList) { + // 完整路径 + let fullPath = dir + "\\" + path; + // 判断文件类型 + let stats; + try { + // 文件类型 + stats = statSync(fullPath); + // 如果是文件夹继续向下读取,如果是文件则添加到返回列表 + if (stats.isDirectory()) { + // 文件夹 + resultList.push(...getFiles(fullPath)); + } else { + // 文件 + resultList.push(fullPath); + } + } catch (e) {} + } + } catch (e) {} + return resultList; +} +/** + * 获取开始菜单项目 + * @param cacheList + */ +async function getStartMenuItemList(cacheList: Array) { + // 返回列表 + let resultList: Array = []; + // appData + let appDataPathList = getFiles( + process.env["AppData"] + "\\Microsoft\\Windows\\Start Menu\\Programs" + ); + // programData + let programDataPathList = getFiles( + process.env["ProgramData"] + "\\Microsoft\\Windows\\Start Menu\\Programs" + ); + // 文件列表 + let filePathList: Array = []; + filePathList.push(...appDataPathList); + filePathList.push(...programDataPathList); + // 循环组装数据 + for (let filePath of filePathList) { + // 获取后缀,必须是快捷方式 + if (mime.getType(filePath) === "application/x-ms-shortcut") { + // 获取名称去掉后缀 + let name = deleteExtname(getFileName(filePath)); + // 参数 + let params = null; + // 获取真实文件路径和参数 + let shortcutInfo: ShortcutInfo | null = + global.addon.getShortcutFileInfo(filePath); + if (shortcutInfo) { + // 路径 + if (shortcutInfo.target) { + filePath = shortcutInfo.target; + } + // 参数 + if (shortcutInfo.arguments) { + params = shortcutInfo.arguments; + } + } + // 查重 + let flag = false; + for (let item of resultList) { + if (item.data.target.toLowerCase() === filePath.toLowerCase()) { + flag = true; + break; + } + } + if (!flag) { + let exist = false; + // 是否存在如果存在的话不需要重新获取图标 + if (cacheList && cacheList.length > 0) { + for (let cacheItem of cacheList) { + if (filePath === cacheItem.data.target) { + resultList.push(newCommonItem(cacheItem)); + exist = true; + break; + } + } + } + if (!exist) { + // item + let item = newCommonItem({ + name, + data: newCommonItemData({ + target: filePath, + icon: getFileIcon(filePath), + params, + }), + }); + // push + resultList.push(item); + } + } + } + } + return resultList; +} + +/** + * APPX项目 + */ +async function getAppxItemList() { + // 返回列表 + let resultList: Array = []; + try { + // ID + let id = 1; + // 获取APPX信息 + let stdout = execSync( + 'powershell -Command "Get-AppxPackage | Select-Object PackageFamilyName, InstallLocation | Format-list"' + ); + let strAppxInfo = stdout.toString("utf-8"); + // 按换行符分割 + let lines = strAppxInfo + .trim() + .split("\r\n") + .filter((str) => str.trim() !== ""); + // 临时列表 + let tempList: Array = []; + // APPX包名 + let packageFamilyName: string | null = null; + // APPX路径 + let installLocation: string | null = null; + // 循环的前一个信息 + let prev = null; + // 解析每一行 + for (let i = 0; i < lines.length; i++) { + let line = lines[i].trim(); + let arr = line.split(" : "); + if (arr.length > 1) { + if (arr[0].trim() === "PackageFamilyName") { + if (packageFamilyName && installLocation) { + tempList.push({ + packageFamilyName: packageFamilyName, + installLocation: installLocation, + appId: null, + icon: null, + name: null, + }); + packageFamilyName = arr[1].trim(); + installLocation = null; + prev = "PackageFamilyName"; + } else { + packageFamilyName = arr[1].trim(); + prev = "PackageFamilyName"; + } + } else if (arr[0].trim() === "InstallLocation") { + installLocation = arr[1].trim(); + prev = "InstallLocation"; + } + } else { + if (prev === "PackageFamilyName") { + packageFamilyName += line; + } else if (prev === "InstallLocation") { + installLocation += line; + } + } + } + if (packageFamilyName && installLocation) { + tempList.push({ + packageFamilyName: packageFamilyName, + installLocation: installLocation, + appId: null, + icon: null, + name: null, + }); + } + // 读取XML获取图标路径和名称 + for (let temp of tempList) { + let appxInfo = await getAppxInfo(temp.installLocation); + temp.appId = appxInfo.appId; + temp.icon = appxInfo.icon; + temp.name = appxInfo.name; + } + // 过滤 + let filterList = tempList.filter((e) => e.icon && e.appId && e.name); + // 图标转BASE64 + for (let appxInfo of filterList) { + try { + let buffer = readFileSync(appxInfo.icon); + let icon = + "data:" + + mime.getType(appxInfo.icon) + + ";base64," + + buffer.toString("base64"); + appxInfo.icon = icon; + } catch (ex) { + appxInfo.icon = null; + } + } + // 筛选出有图标的数据 + filterList = filterList.filter((e) => e.icon); + // 返回列表 + for (const appxInfo of filterList) { + resultList.push( + newCommonItem({ + id: id++, + name: appxInfo.name, + data: newCommonItemData({ + icon: appxInfo.icon, + target: + "Shell:AppsFolder\\" + + appxInfo.packageFamilyName + + "!" + + appxInfo.appId, + }), + }) + ); + } + // 排序 + resultList.sort((a, b) => a.name.localeCompare(b.name)); + } catch (e) {} + return resultList; +} + +/** + * 获取Appx信息 + */ +async function getAppxInfo(installLocation: string) { + // appx信息 + let appxInfo: AppxInfo = { + packageFamilyName: null, + installLocation: null, + appId: null, + icon: null, + name: null, + }; + // buffer, 解析结果 + let buffer: Buffer, result: any; + try { + // 解析 + buffer = readFileSync(installLocation + "\\AppxManifest.xml"); + result = await xml2jsSync(buffer); + // 备用名称 + let executable = null; + // targetsize图标 + let targetSizeIcon: string | null = null; + let targetSizeIconMax: number | null = null; + // scale图标 + let scaleIcon = null; + let scaleIconMax = null; + // 图标 APPID + if (result.Package.Applications && result.Package.Applications[0]) { + if (result.Package.Applications[0].Application[0]) { + // APPID + appxInfo.appId = result.Package.Applications[0].Application[0].$.Id; + // Executable + executable = result.Package.Applications[0].Application[0].$.Executable; + // 获取图标 + if ( + result.Package.Applications[0].Application[0]["uap:VisualElements"] != + null + ) { + // logo地址 + let logo = + result.Package.Applications[0].Application[0][ + "uap:VisualElements" + ][0].$.Square44x44Logo; + // 解析路径 + let parsedPath = parse(logo); + // 获取文件夹下所有文件 + let fileNameList = readdirSync( + installLocation + "\\" + parsedPath.dir + ); + // 筛选出和包含logo名称的文件名 + let filterList = fileNameList.filter( + (f) => f.indexOf(parsedPath.name) >= 0 + ); + if (filterList.length > 1) { + // 获取targetsize图片 + let targetSizeList = filterList.filter( + (f) => f.indexOf(parsedPath.name + ".targetsize") >= 0 + ); + if (targetSizeList.length > 0) { + // 获取最大图标尺寸 + let max = getMaxIconSize( + targetSizeList, + parsedPath.name, + "targetsize" + ); + if (max) { + // 记录max + targetSizeIconMax = max; + // 先获取最终图标 + let defaultList = targetSizeList.filter( + (f) => + f === + parsedPath.name + + ".targetsize-" + + max + + "_altform-unplated_devicefamily-colorfulunplated.png" + ); + targetSizeIcon = + defaultList.length > 0 + ? installLocation + + "\\" + + parsedPath.dir + + "\\" + + parsedPath.name + + ".targetsize-" + + max + + "_altform-unplated_devicefamily-colorfulunplated.png" + : null; + if (!targetSizeIcon) { + // 获取 名称.targetsize-{max}_altform-unplated.png + let defaultUnplatedList = targetSizeList.filter( + (f) => + f === + parsedPath.name + + ".targetsize-" + + max + + "_altform-unplated.png" + ); + if (defaultUnplatedList.length > 0) { + targetSizeIcon = + installLocation + + "\\" + + parsedPath.dir + + "\\" + + parsedPath.name + + ".targetsize-" + + max + + "_altform-unplated.png"; + } else { + // 获取 名称.targetsize-{max}_altform.png + let defaultAltFormList = targetSizeList.filter( + (f) => + f === + parsedPath.name + ".targetsize-" + max + "_altform.png" + ); + if (defaultAltFormList.length > 0) { + targetSizeIcon = + installLocation + + "\\" + + parsedPath.dir + + "\\" + + parsedPath.name + + ".targetsize-" + + max + + "_altform.png"; + } else { + // 获取 名称.targetsize-{max}.png + let defaultTargetSizeList = targetSizeList.filter( + (f) => + f === parsedPath.name + ".targetsize-" + max + ".png" + ); + if (defaultTargetSizeList.length > 0) { + targetSizeIcon = + installLocation + + "\\" + + parsedPath.dir + + "\\" + + defaultTargetSizeList[0]; + } + } + } + } + } + } + // 获取scale图片 + let scaleList = filterList.filter( + (f) => f.indexOf(parsedPath.name + ".scale") >= 0 + ); + if (scaleList.length > 0) { + // 获取最大图标尺寸 + let max = getMaxIconSize(scaleList, parsedPath.name, "scale"); + if (max) { + // 记录max + scaleIconMax = max; + // 获取 名称.scale-{max}.png + let defaultList = scaleList.filter( + (f) => f === parsedPath.name + ".scale-" + max + ".png" + ); + if (defaultList.length > 0) { + scaleIcon = + installLocation + + "\\" + + parsedPath.dir + + "\\" + + defaultList[0]; + } + } + } else { + scaleList = filterList.filter( + (f) => f.indexOf(parsedPath.name + ".Theme-Dark_Scale") >= 0 + ); + if (scaleList.length > 0) { + let max = getMaxIconSize( + scaleList, + parsedPath.name, + "Theme-Dark_Scale" + ); + if (max) { + // 记录max + scaleIconMax = max; + // 获取 名称.Theme-Dark_Scale{max}.png + let defaultList = scaleList.filter( + (f) => + f === + parsedPath.name + ".Theme-Dark_Scale-" + max + ".png" + ); + if (defaultList.length > 0) { + scaleIcon = + installLocation + + "\\" + + parsedPath.dir + + "\\" + + defaultList[0]; + } + } + } + } + } else { + if (filterList.length === 1) { + // 只有一张图片 + appxInfo.icon = + installLocation + "\\" + parsedPath.dir + "\\" + filterList[0]; + } + } + } + } + } + if (!appxInfo.icon) { + // 判断图标大小 + if (targetSizeIcon && !scaleIcon) { + appxInfo.icon = targetSizeIcon; + } else if (!targetSizeIcon && scaleIcon) { + appxInfo.icon = scaleIcon; + } else if (targetSizeIcon && scaleIcon) { + if (targetSizeIconMax === 256 || targetSizeIconMax > scaleIconMax) { + appxInfo.icon = targetSizeIcon; + } else if (targetSizeIconMax < scaleIconMax) { + appxInfo.icon = scaleIcon; + } else { + appxInfo.icon = targetSizeIcon; + } + } else if (!targetSizeIcon && !scaleIcon) { + let propertiesIcon = getPropertiesIcon(installLocation, result); + if (propertiesIcon) { + appxInfo.icon = propertiesIcon; + } + } + } + // 名称 + if (result.Package.Properties) { + if (result.Package.Properties[0].DisplayName) { + appxInfo.name = result.Package.Properties[0].DisplayName[0]; + } + } + if ( + !appxInfo.name || + (appxInfo.name && appxInfo.name.indexOf("ms-resource:") >= 0) + ) { + if (executable && executable.indexOf("ms-resource:") < 0) { + appxInfo.name = parse(executable).name; + } else { + appxInfo.name = null; + } + } + if (!appxInfo.name) { + if (result.Package.Identity && result.Package.Identity[0]) { + let name = result.Package.Identity[0].$.Name; + if (name && name.indexOf("ms-resource:") < 0) { + appxInfo.name = name; + } + } + } + } catch (ex) { + if (result) { + let propertiesIcon = getPropertiesIcon(installLocation, result); + if (propertiesIcon) { + appxInfo.icon = propertiesIcon; + } + } + } + return appxInfo; +} + +/** + * 解析XML同步 + * @param xml + */ +async function xml2jsSync(xml: Buffer) { + let parser = new xml2js.Parser(); + return new Promise((resolve, reject) => { + parser.parseString(xml, function (err, json) { + if (err) reject(err); + else resolve(json); + }); + }); +} + +/** + * 获取最大图标尺寸 + * @param list + * @param name + * @param type + * @returns + */ +function getMaxIconSize(list: Array, name: string, type: string) { + // 获取最大图标尺寸 + let max: number | null = null; + for (let targetSize of list) { + let size = Number( + targetSize + .replace(name + "." + type + "-", "") + .split("_")[0] + .replace(".png", "") + ); + if (!max) { + max = size; + } else { + if (size > max) { + max = size; + } + } + } + return max; +} + +/** + * 获取AppxPropertiesLogo + * @param installLocation + * @param result + */ +function getPropertiesIcon(installLocation: string, result: any) { + if (result.Package.Properties) { + if (result.Package.Properties[0].Logo) { + let logo = result.Package.Properties[0].Logo[0]; + return installLocation + "\\" + logo; + } + } + return null; +} + +/** + * 通过路径获取项目信息 + * @param classificationId + * @param pathList + */ +async function getDropItemInfo( + classificationId: number, + pathList: Array +) { + // 项目列表 + let itemList: Array = []; + // 解析文件信息并添加项目 + for (const path of pathList) { + try { + // item + let item = newItem({ classificationId }); + // 目标 + item.data.target = path; + // 名称 + item.name = getFileName(item.data.target); + // 判断是否是快捷方式,如果是的话,需要获取真实路径 + if (mime.getType(path) === "application/x-ms-shortcut") { + // 快捷方式 + // 获取真实文件路径和参数 + let shortcutInfo: ShortcutInfo | null = + global.addon.getShortcutFileInfo(path); + if (shortcutInfo) { + // 路径 + if (shortcutInfo.target) { + item.data.target = shortcutInfo.target; + } + // 参数 + if (shortcutInfo.arguments) { + item.data.params = shortcutInfo.arguments; + } + } + } + // 文件类型 + let stats = statSync(item.data.target); + // 路径 + item.type = stats.isFile() ? 0 : 1; + // 获取图标 + item.data.icon = getFileIcon(item.data.target); + // 去掉后缀 + if (item.type === 0) { + item.name = deleteExtname(item.name); + } + // push + itemList.push(item); + } catch (e) {} + } + return itemList; +} + +/** + * 刷新项目图标 + * @param itemList + */ +async function refreshItemIcon(itemList: Array) { + // 返回数据 + let resultList: Array<{ + id: number; + icon: string; + }> = []; + // 刷新图标 + for (const item of itemList) { + if (item.type === 0 || item.type === 1) { + let icon: string | null = getFileIcon(item.data.target); + if (icon) { + resultList.push({ + id: item.id, + icon, + }); + } + } + } + return resultList; +} + +/** + * 读取文件夹下的项目 + * @param classificationId + * @param dir + * @param hiddenItems + * @param oldList + * @returns + */ +async function getDirectoryItemList( + classificationId: number, + dir: string, + hiddenItems: string | null, + oldList: Array +) { + // 返回列表 + let resultList: Array = []; + // 转map + let oldMap = new Map( + oldList.map((item) => [item.data.target.toLowerCase(), item]) + ); + try { + // 文件类型 + let stats = statSync(dir); + // 必须是文件夹 + if (stats.isDirectory()) { + // 转为数组 + let hiddenItemList = []; + if (hiddenItems && hiddenItems.trim() !== "") { + hiddenItemList = hiddenItems.split(","); + } + // 读取文件夹下面的所有文件 + let nameList = readdirSync(dir); + for (const name of nameList) { + try { + // 判断是否隐藏 + let hidden = false; + for (let hiddenItem of hiddenItemList) { + if (hiddenItem.trim().toLowerCase() === name.trim().toLowerCase()) { + hidden = true; + break; + } + } + if (hidden) { + continue; + } + // item + let item: Item | null = null; + // 组合路径 + let path = join(dir, name); + // 获取类型 0:文件 1:文件夹 + let type = statSync(path).isDirectory() ? 1 : 0; + // 是否有旧数据 + if (oldMap.has(path.toLowerCase())) { + let oldItem = oldMap.get(path.toLowerCase()); + if (oldItem.type === type) { + item = newItem(oldItem); + } + } + if (!item) { + item = newItem({ classificationId, type }); + item.name = deleteExtname(getFileName(path)); + item.data.target = path; + item.data.icon = getFileIcon(path); + } + // push + resultList.push(item); + } catch (e) {} + } + } + } catch (e) {} + return resultList; +} + +/** + * 检查无效项目 + */ +function checkInvalidItem(itemList: Array) { + // 无效项目ID列表 + let resultList: Array = []; + // 循环校验每个项目 + for (const item of itemList) { + // 只校验文件和文件夹 + if (item.type === 0 || item.type === 1) { + // 获取绝对路径 + let path = getAbsolutePath(item.data.target); + try { + statSync(path); + } catch (e) { + resultList.push(item.id); + } + } + } + return resultList; +} diff --git a/electron/preload/index.ts b/electron/preload/index.ts new file mode 100644 index 0000000..269dad1 --- /dev/null +++ b/electron/preload/index.ts @@ -0,0 +1,850 @@ +import { contextBridge, ipcRenderer } from "electron"; +import { Classification } from "../../types/classification"; +import { Item } from "../../types/item"; +import { Setting } from "../../types/setting"; + +contextBridge.exposeInMainWorld("api", { + // emit + emit: (windowName: string, listener: string, paylod: any) => { + ipcRenderer.send("emit", { windowName, listener, paylod }); + }, + // 错误提示框 + showErrorMessageBox: (windowName: string, message: string) => { + ipcRenderer.send("showErrorMessageBox", { windowName, message }); + }, + // 信息提示框 + showInfoMessageBox: (windowName: string, message: string) => { + ipcRenderer.send("showInfoMessageBox", { windowName, message }); + }, + // 对话框 + showConfirmBox: (windowName: string, message: string): boolean => { + return ipcRenderer.sendSync("showConfirmBox", { windowName, message }); + }, + // 选择文件 + selectFile: ( + windowName: string, + target: boolean, + defaultPath: string | null + ): string | null => { + return ipcRenderer.sendSync("selectFile", { + windowName, + target, + defaultPath, + }); + }, + // 选择文件夹 + selectDirectory: ( + windowName: string, + defaultPath: string | null + ): string | null => { + return ipcRenderer.sendSync("selectDirectory", { + windowName, + defaultPath, + }); + }, + // 获取图标 + getFileIcon: (windowName: string, path: string) => { + ipcRenderer.send("getFileIcon", { windowName, path }); + }, + // 监听获取图标 + onGetFileIcon: (callback): Function => { + ipcRenderer.on("onGetFileIcon", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onGetFileIcon"); + }; + }, + // 下载图片 + downloadImage: (windowName: string, url: string) => { + ipcRenderer.send("downloadImage", { windowName, url }); + }, + // 监听下载图片 + onDownloadImage: (callback): Function => { + ipcRenderer.on("onDownloadImage", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onDownloadImage"); + }; + }, + // 获取网址信息 + getURLInfo: (windowName: string, url: string) => { + ipcRenderer.send("getURLInfo", { windowName, url }); + }, + // 监听获取网址信息 + onGetURLInfo: (callback): Function => { + ipcRenderer.on("onGetURLInfo", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onGetURLInfo"); + }; + }, + // 转换路径 + convertPath: (path: string): string => { + return ipcRenderer.sendSync("convertPath", { path }); + }, + // 路径是否存在 + pathExist: (path: string): boolean => { + return ipcRenderer.sendSync("pathExist", { path }); + }, + // 是否是文件 + isFile: (path: string): boolean => { + return ipcRenderer.sendSync("isFile", { path }); + }, + // 打开URL + openURL: (url: string) => { + ipcRenderer.send("openURL", url); + }, + // 获取版本 + getVersion: (): string => { + return ipcRenderer.sendSync("getVersion"); + }, + // 退出 + exit: () => { + ipcRenderer.send("exit"); + }, +}); + +contextBridge.exposeInMainWorld("main", { + // 显示窗口 + showWindow: (blurHide: boolean) => { + ipcRenderer.send("showMainWindow", { blurHide }); + }, + // 隐藏窗口 + hideWindow: () => { + ipcRenderer.send("hideMainWindow"); + }, + // 初始化数据 + initData: () => { + ipcRenderer.send("mainWindowInitData"); + }, + // 显示窗口之前 + onShowWindowBefore: (callback): Function => { + ipcRenderer.on("onShowMainWindowBefore", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onShowMainWindowBefore"); + }; + }, +}); + +contextBridge.exposeInMainWorld("classification", { + // 获取分类列表 + list: (): Array => { + return ipcRenderer.sendSync("getClassificationList"); + }, + // 根据ID查询分类 + selectById: (id: number): Classification | null => { + return ipcRenderer.sendSync("getClassificationById", { id }); + }, + // 新增分类 + add: ( + parentId: number | null, + name: string, + shortcutKey: string | null, + globalShortcutKey: boolean + ): Classification | null => { + return ipcRenderer.sendSync("addClassification", { + parentId, + name, + shortcutKey, + globalShortcutKey, + }); + }, + // 更新分类 + update: (classifictaion: Classification): boolean => { + return ipcRenderer.sendSync("updateClassification", classifictaion); + }, + // 更新序号 + updateOrder: ( + fromId: number, + toId: number | null, + parentId: number | null + ): boolean => { + return ipcRenderer.sendSync("updateClassificationOrder", { + fromId, + toId, + parentId, + }); + }, + // 更新图标 + updateIcon: (id: number, icon: string | null): boolean => { + return ipcRenderer.sendSync("updateClassificationIcon", { + id, + icon, + }); + }, + // 显示新增/修改窗口 + showAddEditWindow: () => { + ipcRenderer.send("showClassificationAddEditWindow"); + }, + // 关闭新增/修改窗口 + closeAddEditWindow: () => { + ipcRenderer.send("closeClassificationAddEditWindow"); + }, + // 显示设置图标窗口 + showSetIconWindow: () => { + ipcRenderer.send("showClassificationSetIconWindow"); + }, + // 关闭设置图标窗口 + closeSetIconWindow: () => { + ipcRenderer.send("closeClassificationSetIconWindow"); + }, + // 右键菜单 + showRightMenu: ( + classification: Classification | null, + lockClassification: boolean + ) => { + ipcRenderer.send("showClassificationRightMenu", { + classification, + lockClassification, + }); + }, + // 监听新增分类 + onAdd: (callback): Function => { + ipcRenderer.on("onAddClassification", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onAddClassification"); + }; + }, + // 监听更新分类 + onUpdate: (callback): Function => { + ipcRenderer.on("onUpdateClassification", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateClassification"); + }; + }, + // 监听删除分类 + onDelete: (callback): Function => { + ipcRenderer.on("onDeleteClassification", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onDeleteClassification"); + }; + }, + // 监听锁定/解锁分类 + onLock: (callback): Function => { + ipcRenderer.on("onLockClassification", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onLockClassification"); + }; + }, + // 更新分类图标 + onUpdateIcon: (callback): Function => { + ipcRenderer.on("onUpdateClassificationIcon", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateClassificationIcon"); + }; + }, + // 显示关联文件夹窗口 + showAssociateFolderWindow: () => { + ipcRenderer.send("showClassificationAssociateFolderWindow"); + }, + // 关闭关联文件夹窗口 + closeAssociateFolderWindow: () => { + ipcRenderer.send("closeClassificationAssociateFolderWindow"); + }, + // 设置关联文件夹 + setAssociateFolder: ( + id: number, + dir: string | null, + hiddenItems: string | null + ): Classification => { + return ipcRenderer.sendSync("setClassificationAssociateFolder", { + id, + dir, + hiddenItems, + }); + }, + // 监听更新关联文件夹 + onUpdateAssociateFolder: (callback): Function => { + ipcRenderer.on("onUpdateAssociateFolderClassification", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateAssociateFolderClassification"); + }; + }, + // 是否拥有子分类 + hasChildClassification: (id: number): boolean => { + return ipcRenderer.sendSync("hasChildClassification", id); + }, + // 监听收起子分类 + onCollapseSubClassification: (callback) => { + ipcRenderer.on("onCollapseSubClassification", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onCollapseSubClassification"); + }; + }, + // 修改项目布局 + onUpdateItemLayout: (callback) => { + ipcRenderer.on("onUpdateItemLayout", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateItemLayout"); + }; + }, + // 修改项目排序 + onUpdateItemSort: (callback) => { + ipcRenderer.on("onUpdateItemSort", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateItemSort"); + }; + }, + // 修改项目列数 + onUpdateItemColumnNumber: (callback) => { + ipcRenderer.on("onUpdateItemColumnNumber", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateItemColumnNumber"); + }; + }, + // 修改项目图标 + onUpdateItemIconSize: (callback) => { + ipcRenderer.on("onUpdateItemIconSize", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateItemIconSize"); + }; + }, + // 根据文件夹创建分类 + addClassificationByDirectory: (pathList: Array) => { + ipcRenderer.send("addClassificationByDirectory", pathList); + }, + // 监听根据文件夹创建分类 + onAddClassificationByDirectory: (callback) => { + ipcRenderer.on("onAddClassificationByDirectory", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onAddClassificationByDirectory"); + }; + }, + // 修改项目显示 + onUpdateItemShowOnly: (callback) => { + ipcRenderer.on("onUpdateItemShowOnly", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateItemShowOnly"); + }; + }, + // 修改固定分类 + onUpdateFixed: (callback) => { + ipcRenderer.on("onUpdateClassificationFixed", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateClassificationFixed"); + }; + }, + // 将排序为打开次数的分类修改为默认排序 + onUpdateItemOpenNumberSortToDefualt: (callback) => { + ipcRenderer.on("onUpdateItemOpenNumberSortToDefualt", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateItemOpenNumberSortToDefualt"); + }; + }, + // 显示聚合分类窗口 + showAggregateWindow: () => { + ipcRenderer.send("showClassificationAggregateWindow"); + }, + // 关闭聚合分类窗口 + closeAggregateWindow: () => { + ipcRenderer.send("closeClassificationAggregateWindow"); + }, + // 更新聚合分类 + updateAggregate: (id: number, sort: string, itemCount: number): boolean => { + return ipcRenderer.sendSync("updateClassificationAggregate", { + id, + sort, + itemCount, + }); + }, + // 监听更新聚合分类 + onUpdateAggregate: (callback) => { + ipcRenderer.on("onUpdateClassificationAggregate", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateClassificationAggregate"); + }; + }, + // 监听修改排除搜索 + onUpdateExcludeSearch: (callback) => { + ipcRenderer.on("onUpdateClassificationExcludeSearch", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateClassificationExcludeSearch"); + }; + }, +}); + +contextBridge.exposeInMainWorld("item", { + // 显示新增/修改窗口 + showAddEditWindow: () => { + ipcRenderer.send("showItemAddEditWindow"); + }, + // 关闭新增/修改窗口 + closeAddEditWindow: () => { + ipcRenderer.send("closeItemAddEditWindow"); + }, + // 获取项目列表 + list: (): Array => { + return ipcRenderer.sendSync("getItemList"); + }, + // 获取简单项目列表 + simpleList: (): Array => { + return ipcRenderer.sendSync("getSimpleItemList"); + }, + // 根据ID查询分类 + selectById: (id: number): Item | null => { + return ipcRenderer.sendSync("getItemById", { id }); + }, + // 新增项目 + add: (item: Item): Item | null => { + return ipcRenderer.sendSync("addItem", item); + }, + // 更新项目 + update: (item: Item): boolean => { + return ipcRenderer.sendSync("updateItem", item); + }, + // 项目排序 + updateOrder: ( + fromIdList: Array, + toClassificationId: number, + newIndex: number | null + ): boolean => { + return ipcRenderer.sendSync("updateItemOrder", { + fromIdList, + toClassificationId, + newIndex, + }); + }, + // 右键菜单 + showRightMenu: (params: any) => { + ipcRenderer.send("showItemRightMenu", params); + }, + // 创建网络图标窗口 + createNetworkIconWindow: () => { + ipcRenderer.send("createItemNetworkIconWindow"); + }, + // 显示网络图标窗口 + showNetworkIconWindow: () => { + ipcRenderer.send("showItemNetworkIconWindow"); + }, + // 关闭网络图标窗口 + closeNetworkIconWindow: () => { + ipcRenderer.send("closeItemNetworkIconWindow"); + }, + // 监听网络图标 + onNetworkIcon: (callback): Function => { + ipcRenderer.on("onItemNetworkIcon", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onItemNetworkIcon"); + }; + }, + // 创建SVG图标窗口 + createSVGIconWindow: () => { + ipcRenderer.send("createItemSVGIconWindow"); + }, + // 显示SVG图标窗口 + showSVGIconWindow: () => { + ipcRenderer.send("showItemSVGIconWindow"); + }, + // 关闭SVG图标窗口 + closeSVGIconWindow: () => { + ipcRenderer.send("closeItemSVGIconWindow"); + }, + // 监听SVG图标 + onSVGIcon: (callback): Function => { + ipcRenderer.on("onItemSVGIcon", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onItemSVGIcon"); + }; + }, + // 获取系统项目 + getSystemItemList: () => { + ipcRenderer.send("getSystemItemList"); + }, + // 监听获取系统项目 + onGetSystemItemList: (callback): Function => { + ipcRenderer.on("onGetSystemItemList", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onGetSystemItemList"); + }; + }, + // 获取开始菜单项目 + getStartMenuItemList: () => { + ipcRenderer.send("getStartMenuItemList"); + }, + // 监听获取开始菜单项目 + onGetStartMenuItemList: (callback): Function => { + ipcRenderer.on("onGetStartMenuItemList", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onGetStartMenuItemList"); + }; + }, + // 获取APPX项目 + getAppxItemList: () => { + ipcRenderer.send("getAppxItemList"); + }, + // 监听APPX项目 + onGetAppxItemList: (callback): Function => { + ipcRenderer.on("onGetAppxItemList", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onGetAppxItemList"); + }; + }, + // 监听新增项目 + onAdd: (callback): Function => { + ipcRenderer.on("onAddItem", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onAddItem"); + }; + }, + // 监听更新项目 + onUpdate: (callback): Function => { + ipcRenderer.on("onUpdateItem", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateItem"); + }; + }, + // 监听删除项目 + onDelete: (callback): Function => { + ipcRenderer.on("onDeleteItem", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onDeleteItem"); + }; + }, + // 监听锁定/解锁项目 + onLock: (callback): Function => { + ipcRenderer.on("onLockItem", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onLockItem"); + }; + }, + // 拖入项目 + drop: (classificationId: number, pathList: Array) => { + ipcRenderer.send("dropItem", { + classificationId, + pathList, + }); + }, + // 监听批量操作 + onBatchOperation: (callback): Function => { + ipcRenderer.on("onItemBatchOperation", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onItemBatchOperation"); + }; + }, + // 运行项目 + run: (type: string, operation: string, item: Item) => { + ipcRenderer.send("runItem", { operation, item, type }); + }, + // 监听转换路径 + onConvertPath: (callback): Function => { + ipcRenderer.on("onConvertPath", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onConvertPath"); + }; + }, + // 监听刷新图标 + onRefreshIcon: (callback): Function => { + ipcRenderer.on("onRefreshItemIcon", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onRefreshItemIcon"); + }; + }, + // 监听移动项目 + onMove: (callback): Function => { + ipcRenderer.on("onMoveItem", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onMoveItem"); + }; + }, + // 监听批量操作全选 + onBatchOperationSelectAll: (callback): Function => { + ipcRenderer.on("onItembatchOperationSelectAll", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onItembatchOperationSelectAll"); + }; + }, + // 监听项目右键菜单关闭 + onRightMenuClose: (callback): Function => { + ipcRenderer.on("onItemRightMenuClose", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onItemRightMenuClose"); + }; + }, + // 监听项目资源管理器菜单 + onExplorerMenu: (callback): Function => { + ipcRenderer.on("onItemExplorerMenu", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onItemExplorerMenu"); + }; + }, + // 项目拖出 + dragOut: (item: Item) => { + ipcRenderer.send("itemDragOut", item); + }, + // 取消项目拖出 + onCancelDragOut: (callback): Function => { + ipcRenderer.on("onItemCancelDragOut", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onItemCancelDragOut"); + }; + }, + // 监听更新打开信息 + onUpdateOpenInfo: (callback): Function => { + ipcRenderer.on("onUpdateOpenInfo", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateOpenInfo"); + }; + }, + // 监听无效项目 + onCheckInvalid: (callback): Function => { + ipcRenderer.on("onCheckInvalidItem", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onCheckInvalidItem"); + }; + }, + // 更新打开信息 + updateOpenInfo: (type: string, id: number) => { + ipcRenderer.send("updateItemOpenInfo", { type, id }); + }, +}); + +contextBridge.exposeInMainWorld("setting", { + // 创建设置窗口 + createWindow: () => { + ipcRenderer.send("createSettingWindow"); + }, + // 显示设置窗口 + showWindow: () => { + ipcRenderer.send("showSettingWindow"); + }, + // 关闭设置窗口 + closeWindow: () => { + ipcRenderer.send("closeSettingWindow"); + }, + // 查询设置 + select: (): Setting | null => { + return ipcRenderer.sendSync("selectSetting"); + }, + // 新增设置 + add: (setting: Setting): boolean => { + return ipcRenderer.sendSync("addSetting", setting); + }, + // 更新设置 + update: (setting: Setting): boolean => { + return ipcRenderer.sendSync("updateSetting", setting); + }, + // 监听更新设置 + onUpdate: (callback): Function => { + ipcRenderer.on("onUpdateSetting", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onUpdateSetting"); + }; + }, + // 开机启动 + setStartup: (value: boolean) => { + ipcRenderer.send("startup", value); + }, + // 隐藏托盘图标 + setTray: (show: boolean) => { + ipcRenderer.send("setTray", show); + }, + // 设置快捷键 + setShortcutKey: (setting: Setting) => { + ipcRenderer.send("setShortcutKey", setting); + }, + // 永远置顶 + setAlwaysTop: (value: boolean) => { + ipcRenderer.send("setAlwaysTop", value); + }, + // 锁定尺寸 + setLockSize: (value: boolean) => { + ipcRenderer.send("setLockSize", value); + }, + // 固定位置 + setFixedPosition: (fixedPosition: boolean, alwaysCenter: boolean) => { + ipcRenderer.send("setFixedPosition", { + fixedPosition, + alwaysCenter, + }); + }, + // 永远居中 + setAlwaysCenter: (fixedPosition: boolean, alwaysCenter: boolean) => { + ipcRenderer.send("setAlwaysCenter", { + fixedPosition, + alwaysCenter, + }); + }, + // 边缘吸附 + setEdgeAdsorb: (value: boolean) => { + ipcRenderer.send("setEdgeAdsorb", value); + }, + // 上传背景图 + uploadBackgrounImage: (): any => { + return ipcRenderer.sendSync("uploadBackgrounImage"); + }, + // 监听设置背景图 + onSetBacngroundImage: (callback) => { + ipcRenderer.on("onSetBacngroundImage", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onSetBacngroundImage"); + }; + }, + // 获取背景图 + getBackgroundImage: (name: string, windowName: string) => { + ipcRenderer.send("getBackgroundImage", { name, windowName }); + }, + // 检测无效项目 + setCheckInvalidItem: (value: boolean) => { + ipcRenderer.send("setCheckInvalidItem", value); + }, + // 项目打开次数 + setOpenNumber: (value: boolean) => { + ipcRenderer.send("setItemOpenNumber", value); + }, +}); + +contextBridge.exposeInMainWorld("quickSearch", { + // 初始化完毕 + initFinished: () => { + ipcRenderer.send("quickSearchInitFinished"); + }, + // 显示窗口 + showWindow: () => { + ipcRenderer.send("showQuickSearchWindow"); + }, + // 隐藏窗口 + hideWindow: () => { + ipcRenderer.send("hideQuickSearchWindow"); + }, + // 显示窗口之前 + onShowWindowBefore: (callback): Function => { + ipcRenderer.on("onShowQuickSearchWindowBefore", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onShowQuickSearchWindowBefore"); + }; + }, + // 清空数据 + onClearData: (callback): Function => { + ipcRenderer.on("onQuickSearchClearData", (event, data) => { + callback(data); + }); + return () => { + ipcRenderer.removeAllListeners("onQuickSearchClearData"); + }; + }, + // 设置窗口高度 + setWindowHeight: (height: number) => { + ipcRenderer.send("setQuickSearchWindowHeight", height); + }, +}); + +contextBridge.exposeInMainWorld("about", { + // 创建窗口 + createWindow: () => { + ipcRenderer.send("createAboutWindow"); + }, + // 显示窗口 + showWindow: () => { + ipcRenderer.send("showAboutWindow"); + }, + // 关闭窗口 + closeWindow: () => { + ipcRenderer.send("closeAboutWindow"); + }, +}); + +contextBridge.exposeInMainWorld("data", { + // 创建备份/恢复数据窗口 + createBackupRestoreDataWindow: () => { + ipcRenderer.send("createBackupRestoreDataWindow"); + }, + // 显示备份/恢复数据窗口 + showBackupRestoreDataWindow: () => { + ipcRenderer.send("showBackupRestoreDataWindow"); + }, + // 关闭备份/恢复数据窗口 + closeBackupRestoreDataWindow: () => { + ipcRenderer.send("closeBackupRestoreDataWindow"); + }, + // 备份数据 + backupData: () => { + ipcRenderer.send("backupData"); + }, + // 恢复数据 + restoreData: () => { + ipcRenderer.send("restoreData"); + }, +}); diff --git a/electron/types/global.d.ts b/electron/types/global.d.ts new file mode 100644 index 0000000..e60a6ce --- /dev/null +++ b/electron/types/global.d.ts @@ -0,0 +1,75 @@ +import { BrowserWindow, Tray } from "electron"; +import { FSWatcher } from "node:fs"; +import { Setting } from "../../types/setting"; + +declare global { + // addon + var addon: any; + // 语言 + var language: any; + // 主窗口 + var mainWindow: BrowserWindow | null; + // 快速搜索窗口 + var quickSearchWindow: BrowserWindow | null; + // 快速搜索窗口是否初始化完成 + var quickSearchWindowInit: Boolean | null; + // 设置窗口 + var settingWindow: BrowserWindow | null; + // 分类添加/编辑窗口 + var classificationAddEditWindow: BrowserWindow | null; + // 分类图标窗口 + var classificationSetIconWindow: BrowserWindow | null; + // 关联分类窗口 + var classificationAssociateFolderWindow: BrowserWindow | null; + // 聚合分类窗口 + var classificationAggregateWindow: BrowserWindow | null; + // 项目添加/编辑窗口 + var itemAddEditWindow: BrowserWindow | null; + // 项目网络图标窗口 + var itemNetworkIconWindow: BrowserWindow | null; + // 项目SVG图标窗口 + var itemSVGIconWindow: BrowserWindow | null; + // 关于窗口 + var aboutWindow: BrowserWindow | null; + // 备份/恢复数据窗口 + var backupRestoreDataWindow: BrowserWindow | null; + // 存储关联分类监听 + var associateFolderWatcher: Map; + // 设置 + var setting: Setting | null; + // 托盘 + var tray: Tray; + // 主窗口方向 + var mainWindowDirection: String | null; + // 停靠在桌面边缘时自动隐藏timer + var autoHideTimer: NodeJS.Timeout; + // 需要失去焦点时隐藏 + var blurHide: boolean | null; + // 双击任务栏显示/隐藏timer + var doubleClickTaskbarTimer: NodeJS.Timeout; + // 双击任务栏显示/隐藏counter + var doubleClickTaskbarCounter: number; + // 监测无效项目interval + var checkInvalidItemInterval: NodeJS.Timeout; + // 存储子进程信息 + var childProcessMap: Map; + // 分类右键菜单显示 + var classificationRightMenu: boolean | null; + // 项目右键菜单显示 + var itemRightMenu: boolean | null; +} + +export interface ChildProcessInfo { + utilityProcess: Electron.UtilityProcess; + port1: Electron.MessagePortMain; + port2: Electron.MessagePortMain; +} + +export interface AssociateFolderData { + classificationId: number; + dir: string; + hiddenItems: string | null; + watch: FSWatcher; +} + +export {}; diff --git a/images/soft1.png b/images/soft1.png new file mode 100644 index 0000000000000000000000000000000000000000..c1408cca05a2dceaf6c79412bd07443c02b09a66 GIT binary patch literal 123849 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

L%Xn-nSVRj|1rsX;_&AFw5$F{|A&Pc1OKe2 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 literal 0 HcmV?d00001 diff --git a/images/soft2.png b/images/soft2.png new file mode 100644 index 0000000000000000000000000000000000000000..9d1c2288b09fd2a774412ef2d7b487254fca0192 GIT binary patch literal 89937 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

    %dJI6YKEw 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 literal 0 HcmV?d00001 diff --git a/images/soft3.png b/images/soft3.png new file mode 100644 index 0000000000000000000000000000000000000000..2cf60fff53213c8fcc42abf1b8044134ebce58c3 GIT binary patch literal 90888 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

    Ft)f!v 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 literal 0 HcmV?d00001 diff --git a/images/soft5.png b/images/soft5.png new file mode 100644 index 0000000000000000000000000000000000000000..60c3bdf64f750791901fb833fc2cbfd315824654 GIT binary patch literal 117189 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 literal 0 HcmV?d00001 diff --git a/images/soft6.webp b/images/soft6.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f3bae053ff7c84bf02dc264d90f38d01d399c02 GIT binary patch literal 45752 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 Q`^5is7wk+D_P_4>Ke|0qaR2}S literal 0 HcmV?d00001 diff --git a/images/soft7.png b/images/soft7.png new file mode 100644 index 0000000000000000000000000000000000000000..dd732313bded5ea9becd70471510ccca0dbfb333 GIT binary patch literal 70687 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