mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-08 22:51:25 +08:00
编排补全uTools接口,新增获取选中文件、图片、文字
This commit is contained in:
parent
bf5a2306d0
commit
e7da2d3a26
@ -9,6 +9,7 @@ const quickcomposer = {
|
||||
audio: require("./quickcomposer/audio"),
|
||||
image: require("./quickcomposer/image"),
|
||||
windows: require("./quickcomposer/windows"),
|
||||
status: require("./quickcomposer/status"),
|
||||
};
|
||||
|
||||
module.exports = quickcomposer;
|
||||
|
115
plugin/lib/quickcomposer/status/getSelected.js
Normal file
115
plugin/lib/quickcomposer/status/getSelected.js
Normal file
@ -0,0 +1,115 @@
|
||||
const { clipboard } = require("electron");
|
||||
|
||||
/**
|
||||
* 获取当前选中的文本
|
||||
* @returns {Promise<string>} 选中的文本内容
|
||||
*/
|
||||
function text() {
|
||||
window.utools.hideMainWindow();
|
||||
// 保存当前剪贴板内容
|
||||
const originalText = clipboard.readText();
|
||||
|
||||
// 模拟 Ctrl+C/Command+C 复制操作
|
||||
if (process.platform === "darwin") {
|
||||
utools.simulateKeyboardTap("c", "command");
|
||||
} else {
|
||||
utools.simulateKeyboardTap("c", "control");
|
||||
}
|
||||
|
||||
// 等待一小段时间确保复制完成
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
// 获取选中的文本
|
||||
const selectedText = clipboard.readText();
|
||||
|
||||
// 恢复原始剪贴板内容
|
||||
clipboard.writeText(originalText);
|
||||
|
||||
resolve(selectedText);
|
||||
}, 100);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前选中的图片
|
||||
* @returns {Promise<string>} 选中的图片的base64数据
|
||||
*/
|
||||
function image() {
|
||||
window.utools.hideMainWindow();
|
||||
// 保存当前剪贴板内容
|
||||
const originalImage = clipboard.readImage();
|
||||
|
||||
// 模拟 Ctrl+C/Command+C 复制操作
|
||||
if (process.platform === "darwin") {
|
||||
utools.simulateKeyboardTap("c", "command");
|
||||
} else {
|
||||
utools.simulateKeyboardTap("c", "control");
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
setTimeout(() => {
|
||||
try {
|
||||
// 获取剪贴板中的图片
|
||||
const image = clipboard.readImage();
|
||||
|
||||
if (image.isEmpty()) {
|
||||
// 恢复原始剪贴板内容
|
||||
if (!originalImage.isEmpty()) {
|
||||
clipboard.writeImage(originalImage);
|
||||
}
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
|
||||
// 将图片转换为 base64
|
||||
const base64 = image.toDataURL();
|
||||
|
||||
// 恢复原始剪贴板内容
|
||||
if (!originalImage.isEmpty()) {
|
||||
clipboard.writeImage(originalImage);
|
||||
}
|
||||
|
||||
resolve(base64);
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前选中的文件
|
||||
* @returns {Promise<string[]>} 选中的文件路径数组
|
||||
*/
|
||||
function files() {
|
||||
window.utools.hideMainWindow();
|
||||
// 保存当前剪贴板内容
|
||||
const originalFiles = utools.getCopyedFiles();
|
||||
|
||||
// 模拟 Ctrl+C/Command+C 复制操作
|
||||
if (process.platform === "darwin") {
|
||||
utools.simulateKeyboardTap("c", "command");
|
||||
} else {
|
||||
utools.simulateKeyboardTap("c", "control");
|
||||
}
|
||||
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
// 获取选中的文件
|
||||
const selectedFiles = utools.getCopyedFiles();
|
||||
|
||||
// 恢复原始剪贴板内容
|
||||
if (originalFiles && originalFiles.length > 0) {
|
||||
utools.copyFile(originalFiles);
|
||||
}
|
||||
|
||||
resolve(selectedFiles || []);
|
||||
}, 100);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
text,
|
||||
image,
|
||||
files,
|
||||
};
|
7
plugin/lib/quickcomposer/status/index.js
Normal file
7
plugin/lib/quickcomposer/status/index.js
Normal file
@ -0,0 +1,7 @@
|
||||
const getSelected = require("./getSelected");
|
||||
|
||||
module.exports = {
|
||||
getSelectedText: getSelected.text,
|
||||
getSelectedImage: getSelected.image,
|
||||
getSelectedFiles: getSelected.files,
|
||||
};
|
@ -15,11 +15,13 @@ import { screenCommands } from "./screenCommands";
|
||||
import { audioCommands } from "./audioCommands";
|
||||
import { imageCommands } from "./imageCommands";
|
||||
import { windowsCommands } from "./windowsCommands";
|
||||
import { statusCommands } from "./statusCommands";
|
||||
|
||||
let commands = [
|
||||
fileCommands,
|
||||
networkCommands,
|
||||
systemCommands,
|
||||
statusCommands,
|
||||
audioCommands,
|
||||
imageCommands,
|
||||
notifyCommands,
|
||||
|
51
src/js/composer/commands/statusCommands.js
Normal file
51
src/js/composer/commands/statusCommands.js
Normal file
@ -0,0 +1,51 @@
|
||||
export const statusCommands = {
|
||||
label: "获取状态",
|
||||
icon: "task",
|
||||
commands: [
|
||||
{
|
||||
value: "utools.readCurrentFolderPath",
|
||||
label: "获取当前文件管理器路径",
|
||||
desc: "获取当前文件管理器窗口路径",
|
||||
icon: "folder",
|
||||
isAsync: true,
|
||||
outputVariable: "currentFolderPath",
|
||||
saveOutput: true,
|
||||
},
|
||||
{
|
||||
value: "utools.readCurrentBrowserUrl",
|
||||
label: "获取当前浏览器地址",
|
||||
desc: "获取当前浏览器窗口URL",
|
||||
icon: "language",
|
||||
isAsync: true,
|
||||
outputVariable: "currentBrowserUrl",
|
||||
saveOutput: true,
|
||||
},
|
||||
{
|
||||
value: "quickcomposer.status.getSelectedText",
|
||||
label: "获取选中文本",
|
||||
desc: "获取选中的文本",
|
||||
icon: "text_fields",
|
||||
isAsync: true,
|
||||
outputVariable: "selectedText",
|
||||
saveOutput: true,
|
||||
},
|
||||
{
|
||||
value: "quickcomposer.status.getSelectedImage",
|
||||
label: "获取选中的图片",
|
||||
desc: "获取选中的图片",
|
||||
icon: "image",
|
||||
isAsync: true,
|
||||
outputVariable: "selectedImage",
|
||||
saveOutput: true,
|
||||
},
|
||||
{
|
||||
value: "quickcomposer.status.getSelectedFiles",
|
||||
label: "获取选中的文件",
|
||||
desc: "获取选中的文件",
|
||||
icon: "file_present",
|
||||
isAsync: true,
|
||||
outputVariable: "selectedFiles",
|
||||
saveOutput: true,
|
||||
},
|
||||
],
|
||||
};
|
@ -113,6 +113,100 @@ export const systemCommands = {
|
||||
icon: "terminal",
|
||||
isAsync: true,
|
||||
},
|
||||
{
|
||||
value: "utools.getPath",
|
||||
label: "获取系统路径",
|
||||
desc: "获取系统路径",
|
||||
outputVariable: "systemPath",
|
||||
saveOutput: true,
|
||||
defaultValue: "home",
|
||||
config: [
|
||||
{
|
||||
label: "路径类型",
|
||||
component: "ButtonGroup",
|
||||
options: [
|
||||
{
|
||||
label: "用户主目录",
|
||||
value: "home",
|
||||
},
|
||||
{
|
||||
label: "应用数据目录",
|
||||
value: "appData",
|
||||
},
|
||||
{
|
||||
label: "用户数据目录",
|
||||
value: "userData",
|
||||
},
|
||||
{
|
||||
label: "缓存目录",
|
||||
value: "cache",
|
||||
},
|
||||
{
|
||||
label: "临时目录",
|
||||
value: "temp",
|
||||
},
|
||||
{
|
||||
label: "桌面",
|
||||
value: "desktop",
|
||||
},
|
||||
{
|
||||
label: "文档",
|
||||
value: "documents",
|
||||
},
|
||||
{
|
||||
label: "下载",
|
||||
value: "downloads",
|
||||
},
|
||||
{
|
||||
label: "音乐",
|
||||
value: "music",
|
||||
},
|
||||
{
|
||||
label: "图片",
|
||||
value: "pictures",
|
||||
},
|
||||
{
|
||||
label: "视频",
|
||||
value: "videos",
|
||||
},
|
||||
{
|
||||
label: "uTools日志目录",
|
||||
value: "logs",
|
||||
},
|
||||
{
|
||||
label: "uTools程序目录",
|
||||
value: "exe",
|
||||
},
|
||||
{
|
||||
label: "uTools模块目录",
|
||||
value: "module",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "utools.isMacOS",
|
||||
label: "判断系统类型",
|
||||
desc: "判断系统类型",
|
||||
subCommands: [
|
||||
{
|
||||
value: "utools.isMacOS",
|
||||
label: "是否Mac",
|
||||
icon: "computer",
|
||||
},
|
||||
{
|
||||
value: "utools.isWindows",
|
||||
label: "是否Windows",
|
||||
icon: "computer",
|
||||
},
|
||||
{
|
||||
value: "utools.isLinux",
|
||||
label: "是否Linux",
|
||||
icon: "computer",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "quickcomposer.system.os.arch",
|
||||
label: "系统信息",
|
||||
|
@ -183,5 +183,19 @@ export const utoolsCommands = {
|
||||
outputVariable: "windowType",
|
||||
saveOutput: true,
|
||||
},
|
||||
{
|
||||
value: "utools.getNativeId",
|
||||
label: "获取本地ID",
|
||||
desc: "获取本地ID",
|
||||
outputVariable: "nativeId",
|
||||
saveOutput: true,
|
||||
},
|
||||
{
|
||||
value: "utools.getAppVersion",
|
||||
label: "获取uTools版本",
|
||||
desc: "获取uTools版本",
|
||||
outputVariable: "appVersion",
|
||||
saveOutput: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user