Merge remote-tracking branch 'origin/master'

This commit is contained in:
wangwei1240 2024-12-11 20:05:20 +08:00
commit 8c3186afef
10 changed files with 94 additions and 72 deletions

View File

@ -23,7 +23,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-11, windows-2019, ubuntu-latest] os: [macos-latest, windows-2019, ubuntu-latest]
# create steps # create steps
steps: steps:

View File

@ -109,6 +109,8 @@ Those who are interested in this project or want to exchange and learn can scan
![image](https://user-images.githubusercontent.com/21073039/127327603-9796f246-ee4b-4950-a69d-ce3205ec9569.png) ![image](https://user-images.githubusercontent.com/21073039/127327603-9796f246-ee4b-4950-a69d-ce3205ec9569.png)
<a href="https://hellogithub.com/repository/0a3e2484b44e481e9dcf1850e45193cd" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=0a3e2484b44e481e9dcf1850e45193cd&claim_uid=vXGwjpmYNsBex0C" alt="FeaturedHelloGitHub" style="width: 250px; height: 54px;" width="250" height="54" /></a>
## Contribute ## Contribute
This project exists thanks to all the people who contribute. [[Contribute](https://github.com/rubickCenter/rubick/graphs/contributors)]. <a href="https://github.com/rubickCenter/rubick/graphs/contributors"><img src="https://opencollective.com/rubick/contributors.svg?width=890&button=false" /></a> This project exists thanks to all the people who contribute. [[Contribute](https://github.com/rubickCenter/rubick/graphs/contributors)]. <a href="https://github.com/rubickCenter/rubick/graphs/contributors"><img src="https://opencollective.com/rubick/contributors.svg?width=890&button=false" /></a>

View File

@ -8,37 +8,37 @@
> >
<a-menu-item key="finder"> <a-menu-item key="finder">
<template #icon> <template #icon>
<StarOutlined style="font-size: 18px;" /> <StarOutlined style="font-size: 16px" />
</template> </template>
{{ $t('feature.market.explore') }} {{ $t('feature.market.explore') }}
</a-menu-item> </a-menu-item>
<a-menu-item key="worker"> <a-menu-item key="worker">
<template #icon> <template #icon>
<SendOutlined style="transform: rotate(-45deg); font-size: 18px;" /> <SendOutlined style="transform: rotate(-45deg); font-size: 16px" />
</template> </template>
{{ $t('feature.market.efficiency') }} {{ $t('feature.market.efficiency') }}
</a-menu-item> </a-menu-item>
<a-menu-item key="tools"> <a-menu-item key="tools">
<template #icon> <template #icon>
<SearchOutlined style="font-size: 18px;" /> <SearchOutlined style="font-size: 16px" />
</template> </template>
{{ $t('feature.market.searchTool') }} {{ $t('feature.market.searchTool') }}
</a-menu-item> </a-menu-item>
<a-menu-item key="image"> <a-menu-item key="image">
<template #icon> <template #icon>
<FileImageOutlined style="font-size: 18px;" /> <FileImageOutlined style="font-size: 16px" />
</template> </template>
{{ $t('feature.market.imageTool') }} {{ $t('feature.market.imageTool') }}
</a-menu-item> </a-menu-item>
<a-menu-item key="devPlugin"> <a-menu-item key="devPlugin">
<template #icon> <template #icon>
<CodeOutlined style="font-size: 18px;" /> <CodeOutlined style="font-size: 16px" />
</template> </template>
{{ $t('feature.market.developTool') }} {{ $t('feature.market.developTool') }}
</a-menu-item> </a-menu-item>
<a-menu-item key="system"> <a-menu-item key="system">
<template #icon> <template #icon>
<DatabaseOutlined style="font-size: 18px;" /> <DatabaseOutlined style="font-size: 16px" />
</template> </template>
{{ $t('feature.market.systemTool') }} {{ $t('feature.market.systemTool') }}
</a-menu-item> </a-menu-item>
@ -72,7 +72,21 @@
</a-sub-menu> </a-sub-menu>
</a-menu> </a-menu>
</div> </div>
<div :class="['finder', 'result', 'devPlugin', 'image', 'tools', 'worker', 'system'].includes(active[0]) ? 'container' : 'more'"> <div
:class="
[
'finder',
'result',
'devPlugin',
'image',
'tools',
'worker',
'system',
].includes(active[0])
? 'container'
: 'more'
"
>
<keep-alive> <keep-alive>
<router-view /> <router-view />
</keep-alive> </keep-alive>
@ -103,14 +117,14 @@ const active = computed(() => store.state.active);
const { perf } = localConfig.getConfig(); const { perf } = localConfig.getConfig();
const changeMenu = (key: any) => { const changeMenu = (key: any) => {
store.commit('commonUpdate', {active: [key]}) store.commit('commonUpdate', { active: [key] });
router.push(key); router.push(key);
}; };
window.rubick.onPluginEnter(({ code }: { code: string }) => { window.rubick.onPluginEnter(({ code }: { code: string }) => {
code = code === '已安装插件' ? 'installed' : code; code = code === '已安装插件' ? 'installed' : code;
changeMenu(code); changeMenu(code);
store.commit('commonUpdate', {active: [code]}) store.commit('commonUpdate', { active: [code] });
}); });
window.rubick.setSubInput((e: any) => { window.rubick.setSubInput((e: any) => {
@ -129,7 +143,7 @@ window.rubick.setSubInput((e: any) => {
store.commit('setSearchValue', e.text); store.commit('setSearchValue', e.text);
router.push('result'); router.push('result');
} else { } else {
store.commit('commonUpdate', {active: ['finder']}) store.commit('commonUpdate', { active: ['finder'] });
router.push('finder'); router.push('finder');
} }
} }
@ -144,13 +158,16 @@ init();
background: var(--color-body-bg2) !important; background: var(--color-body-bg2) !important;
height: 100%; height: 100%;
border-right: none; border-right: none;
.ant-menu-item, .ant-menu-submenu, .ant-menu-submenu-arrow { .ant-menu-item,
.ant-menu-submenu,
.ant-menu-submenu-arrow {
color: var(--color-text-content); color: var(--color-text-content);
&:active { &:active {
background: none; background: none;
} }
} }
.ant-menu-item-selected, .ant-menu-submenu-selected { .ant-menu-item-selected,
.ant-menu-submenu-selected {
background-color: var(--color-list-hover); background-color: var(--color-list-hover);
color: var(--ant-primary-color); color: var(--ant-primary-color);
.ant-menu-submenu-arrow { .ant-menu-submenu-arrow {
@ -203,9 +220,12 @@ init();
background: var(--color-body-bg2); background: var(--color-body-bg2);
} }
.left-menu { .left-menu {
padding: 24px 16px; padding: 16px;
position: relative; position: relative;
height: 100vh; height: 100vh;
:deep(.ant-menu) {
width: 100%;
}
:deep(.ant-menu-item) { :deep(.ant-menu-item) {
padding-left: 12px !important; padding-left: 12px !important;
display: flex; display: flex;
@ -219,7 +239,14 @@ init();
} }
:deep(.user-info) { :deep(.user-info) {
position: absolute; position: absolute;
bottom: 32px; bottom: 16px;
width: calc(100% - 32px);
.ant-menu-submenu-title {
padding: 0 32px 0 8px;
.ant-menu-title-content {
margin-left: 8px;
}
}
} }
:deep(.ant-avatar) { :deep(.ant-avatar) {
background: transparent; background: transparent;

View File

@ -1,6 +1,6 @@
import axios from 'axios'; import axios from 'axios';
let baseURL = 'https://gitcode.net/rubickcenter/rubick-database/-/raw/master'; let baseURL = 'https://gitee.com/monkeyWang/rubickdatabase/raw/master';
let access_token = ''; let access_token = '';
try { try {
@ -14,7 +14,7 @@ try {
const instance = axios.create({ const instance = axios.create({
timeout: 4000, timeout: 4000,
baseURL: baseURL:
baseURL || 'https://gitcode.net/rubickcenter/rubick-database/-/raw/master', baseURL || 'https://gitee.com/monkeyWang/rubickdatabase/raw/master',
}); });
export default { export default {
@ -23,9 +23,10 @@ export default {
if (access_token) { if (access_token) {
targetPath = `${encodeURIComponent( targetPath = `${encodeURIComponent(
targetPath targetPath
)}/raw?access_token=${access_token}&ref=master`; )}?access_token=${access_token}&ref=master`;
} }
const res = await instance.get(targetPath); const res = await instance.get(targetPath);
console.log('total plugsin', res);
return res.data; return res.data;
}, },
@ -34,7 +35,7 @@ export default {
if (access_token) { if (access_token) {
targetPath = `${encodeURIComponent( targetPath = `${encodeURIComponent(
targetPath targetPath
)}/raw?access_token=${access_token}&ref=master`; )}?access_token=${access_token}&ref=master`;
} }
const res = await instance.get(targetPath); const res = await instance.get(targetPath);
return res.data; return res.data;
@ -45,7 +46,7 @@ export default {
if (access_token) { if (access_token) {
targetPath = `${encodeURIComponent( targetPath = `${encodeURIComponent(
targetPath targetPath
)}/raw?access_token=${access_token}&ref=master`; )}?access_token=${access_token}&ref=master`;
} }
const res = await instance.get(targetPath); const res = await instance.get(targetPath);
return res.data; return res.data;
@ -55,7 +56,7 @@ export default {
if (access_token) { if (access_token) {
targetPath = `${encodeURIComponent( targetPath = `${encodeURIComponent(
targetPath targetPath
)}/raw?access_token=${access_token}&ref=master`; )}?access_token=${access_token}&ref=master`;
} }
const res = await instance.get(targetPath); const res = await instance.get(targetPath);
return res.data; return res.data;
@ -71,7 +72,7 @@ export default {
if (access_token) { if (access_token) {
targetPath = `${encodeURIComponent( targetPath = `${encodeURIComponent(
targetPath targetPath
)}/raw?access_token=${access_token}&ref=master`; )}?access_token=${access_token}&ref=master`;
} }
const res = await instance.get(targetPath); const res = await instance.get(targetPath);
return res.data; return res.data;
@ -81,7 +82,7 @@ export default {
if (access_token) { if (access_token) {
targetPath = `${encodeURIComponent( targetPath = `${encodeURIComponent(
targetPath targetPath
)}/raw?access_token=${access_token}&ref=master`; )}?access_token=${access_token}&ref=master`;
} }
const res = await instance.get(targetPath); const res = await instance.get(targetPath);
return res.data; return res.data;
@ -91,7 +92,7 @@ export default {
if (access_token) { if (access_token) {
targetPath = `${encodeURIComponent( targetPath = `${encodeURIComponent(
targetPath targetPath
)}/raw?access_token=${access_token}&ref=master`; )}?access_token=${access_token}&ref=master`;
} }
const res = await instance.get(targetPath); const res = await instance.get(targetPath);
return res.data; return res.data;

View File

@ -1,6 +1,6 @@
{ {
"name": "rubick", "name": "rubick",
"version": "4.2.3", "version": "4.2.9",
"author": "muwoo <2424880409@qq.com>", "author": "muwoo <2424880409@qq.com>",
"private": true, "private": true,
"scripts": { "scripts": {

View File

@ -175,22 +175,21 @@ export default () => {
const removeView = (window: BrowserWindow) => { const removeView = (window: BrowserWindow) => {
if (!view) return; if (!view) return;
executeHooks('PluginOut', null);
setTimeout(() => {
window.removeBrowserView(view); window.removeBrowserView(view);
if (!view.inDetach) { if (!view.inDetach) {
window.setBrowserView(null); window.setBrowserView(null);
view.webContents?.destroy(); view.webContents?.destroy();
} }
// window.setSize(800, 60);
executeHooks('PluginOut', null);
window.webContents?.executeJavaScript(`window.initRubick()`); window.webContents?.executeJavaScript(`window.initRubick()`);
view = undefined; view = undefined;
}, 0);
}; };
const getView = () => view; const getView = () => view;
const executeHooks = (hook, data) => { const executeHooks = (hook, data) => {
setTimeout(() => {
if (!view) return; if (!view) return;
const evalJs = `if(window.rubick && window.rubick.hooks && typeof window.rubick.hooks.on${hook} === 'function' ) { const evalJs = `if(window.rubick && window.rubick.hooks && typeof window.rubick.hooks.on${hook} === 'function' ) {
try { try {
@ -199,7 +198,6 @@ export default () => {
} }
`; `;
view.webContents?.executeJavaScript(evalJs); view.webContents?.executeJavaScript(evalJs);
}, 300);
}; };
return { return {

View File

@ -128,8 +128,8 @@ class API extends DBInstance {
} }
public removePlugin(e, window) { public removePlugin(e, window) {
this.currentPlugin = null;
runnerInstance.removeView(window); runnerInstance.removeView(window);
this.currentPlugin = null;
} }
public openPluginDevTools() { public openPluginDevTools() {
@ -211,11 +211,10 @@ class API extends DBInstance {
if (!Notification.isSupported()) return; if (!Notification.isSupported()) return;
'string' != typeof body && (body = String(body)); 'string' != typeof body && (body = String(body));
const plugin = this.currentPlugin; const plugin = this.currentPlugin;
if (!plugin) return;
const notify = new Notification({ const notify = new Notification({
title: plugin.pluginName, title: plugin ? plugin.pluginName : null,
body, body,
icon: plugin.logo, icon: plugin ? plugin.logo : null,
}); });
notify.show(); notify.show();
} }

View File

@ -1,8 +1,5 @@
<template> <template>
<div <div id="components-layout" @mousedown="onMouseDown">
id="components-layout"
@mousedown="onMouseDown"
>
<Search <Search
:currentPlugin="currentPlugin" :currentPlugin="currentPlugin"
@changeCurrent="changeIndex" @changeCurrent="changeIndex"
@ -94,7 +91,9 @@ watch(
window.rubick.setExpendHeight( window.rubick.setExpendHeight(
getWindowHeight( getWindowHeight(
options.value, options.value,
(pluginLoading.value || !config.value.perf.common.history) ? [] : pluginHistory.value pluginLoading.value || !config.value.perf.common.history
? []
: pluginHistory.value
) )
); );
}, },
@ -104,26 +103,15 @@ watch(
); );
const changeIndex = (index) => { const changeIndex = (index) => {
if (!options.value.length) { const len = options.value.length || pluginHistory.value.length;
if (!pluginHistory.value.length) return; if (!len) return;
if ( if (currentSelect.value + index > len - 1) {
currentSelect.value + index > pluginHistory.value.length - 1 ||
currentSelect.value + index < 0
) {
currentSelect.value = 0; currentSelect.value = 0;
return; } else if (currentSelect.value + index < 0) {
} currentSelect.value = len - 1;
} else {
currentSelect.value = currentSelect.value + index; currentSelect.value = currentSelect.value + index;
return;
} }
if (
currentSelect.value + index > options.value.length - 1 ||
currentSelect.value + index < 0
) {
currentSelect.value = 0;
return;
}
currentSelect.value = currentSelect.value + index;
}; };
const openMenu = (ext) => { const openMenu = (ext) => {
@ -161,7 +149,9 @@ const choosePlugin = (plugin) => {
}); });
if (hasRemove) { if (hasRemove) {
const result = window.rubick.db.get(PLUGIN_HISTORY) || {}; const result = window.rubick.db.get(PLUGIN_HISTORY) || {};
const history = result.data.filter(item => item.originName !== currentChoose.originName); const history = result.data.filter(
(item) => item.originName !== currentChoose.originName
);
setPluginHistory(history); setPluginHistory(history);
return message.warning('插件已被卸载!'); return message.warning('插件已被卸载!');
} }

View File

@ -25,6 +25,8 @@
ref="mainInput" ref="mainInput"
class="main-input" class="main-input"
@input="(e) => changeValue(e)" @input="(e) => changeValue(e)"
@keydown.left="(e) => keydownEvent(e, 'left')"
@keydown.right="(e) => keydownEvent(e, 'right')"
@keydown.down="(e) => keydownEvent(e, 'down')" @keydown.down="(e) => keydownEvent(e, 'down')"
@keydown.tab="(e) => keydownEvent(e, 'down')" @keydown.tab="(e) => keydownEvent(e, 'down')"
@keydown.up="(e) => keydownEvent(e, 'up')" @keydown.up="(e) => keydownEvent(e, 'up')"
@ -41,10 +43,7 @@
> >
<template #suffix> <template #suffix>
<div class="suffix-tool"> <div class="suffix-tool">
<MoreOutlined <MoreOutlined @click="showSeparate()" class="icon-more" />
@click="showSeparate()"
class="icon-more"
/>
</div> </div>
</template> </template>
</a-input> </a-input>
@ -120,6 +119,12 @@ const keydownEvent = (e, key: string) => {
case 'down': case 'down':
emit('changeCurrent', 1); emit('changeCurrent', 1);
break; break;
case 'left':
emit('changeCurrent', -1);
break;
case 'right':
emit('changeCurrent', 1);
break;
case 'enter': case 'enter':
if (runPluginDisable) return; if (runPluginDisable) return;
emit('choosePlugin'); emit('choosePlugin');

View File

@ -8,7 +8,7 @@ import useFocus from './clipboardWatch';
function formatReg(regStr) { function formatReg(regStr) {
const flags = regStr.replace(/.*\/([gimy]*)$/, '$1'); const flags = regStr.replace(/.*\/([gimy]*)$/, '$1');
const pattern = flags.replace(new RegExp('^/(.*?)/' + flags + '$'), '$1'); const pattern = regStr.replace(new RegExp('^/(.*?)/' + flags + '$'), '$1');
return new RegExp(pattern, flags); return new RegExp(pattern, flags);
} }