mirror of
https://github.com/JimLiu/baoyu-skills.git
synced 2026-07-13 22:29:48 +08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ff468a6a7 | |||
| c83d114a73 | |||
| e964100dd9 |
@@ -6,7 +6,7 @@
|
|||||||
},
|
},
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"description": "Skills shared by Baoyu for improving daily work efficiency",
|
"description": "Skills shared by Baoyu for improving daily work efficiency",
|
||||||
"version": "1.31.1"
|
"version": "1.31.2"
|
||||||
},
|
},
|
||||||
"plugins": [
|
"plugins": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
English | [中文](./CHANGELOG.zh.md)
|
English | [中文](./CHANGELOG.zh.md)
|
||||||
|
|
||||||
|
## 1.31.2 - 2026-02-10
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
- `baoyu-post-to-wechat`: fix PowerShell clipboard copy failing on Windows due to `param()`/`-Path` not working with `-Command`.
|
||||||
|
- `baoyu-post-to-x`: fix PowerShell clipboard copy on Windows (same issue); fix `getScriptDir()` returning invalid path on Windows (`/C:/...` prefix).
|
||||||
|
|
||||||
## 1.31.1 - 2026-02-10
|
## 1.31.1 - 2026-02-10
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|||||||
@@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
[English](./CHANGELOG.md) | 中文
|
[English](./CHANGELOG.md) | 中文
|
||||||
|
|
||||||
|
## 1.31.2 - 2026-02-10
|
||||||
|
|
||||||
|
### 修复
|
||||||
|
- `baoyu-post-to-wechat`:修复 Windows 上 PowerShell 剪贴板复制失败的问题(`param()`/`-Path` 与 `-Command` 参数不兼容)。
|
||||||
|
- `baoyu-post-to-x`:修复 Windows 上 PowerShell 剪贴板复制(同上);修复 `getScriptDir()` 在 Windows 上返回无效路径(`/C:/...` 前缀)。
|
||||||
|
|
||||||
## 1.31.1 - 2026-02-10
|
## 1.31.1 - 2026-02-10
|
||||||
|
|
||||||
### 新功能
|
### 新功能
|
||||||
|
|||||||
@@ -228,25 +228,25 @@ async function copyHtmlLinux(htmlFilePath: string): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function copyImageWindows(imagePath: string): Promise<void> {
|
async function copyImageWindows(imagePath: string): Promise<void> {
|
||||||
|
const escaped = imagePath.replace(/'/g, "''");
|
||||||
const ps = [
|
const ps = [
|
||||||
'param([string]$Path)',
|
|
||||||
'Add-Type -AssemblyName System.Windows.Forms',
|
'Add-Type -AssemblyName System.Windows.Forms',
|
||||||
'Add-Type -AssemblyName System.Drawing',
|
'Add-Type -AssemblyName System.Drawing',
|
||||||
'$img = [System.Drawing.Image]::FromFile($Path)',
|
`$img = [System.Drawing.Image]::FromFile('${escaped}')`,
|
||||||
'[System.Windows.Forms.Clipboard]::SetImage($img)',
|
'[System.Windows.Forms.Clipboard]::SetImage($img)',
|
||||||
'$img.Dispose()',
|
'$img.Dispose()',
|
||||||
].join('; ');
|
].join('; ');
|
||||||
await runCommand('powershell.exe', ['-NoProfile', '-Sta', '-Command', ps, '-Path', imagePath]);
|
await runCommand('powershell.exe', ['-NoProfile', '-Sta', '-Command', ps]);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function copyHtmlWindows(htmlFilePath: string): Promise<void> {
|
async function copyHtmlWindows(htmlFilePath: string): Promise<void> {
|
||||||
|
const escaped = htmlFilePath.replace(/'/g, "''");
|
||||||
const ps = [
|
const ps = [
|
||||||
'param([string]$Path)',
|
|
||||||
'Add-Type -AssemblyName System.Windows.Forms',
|
'Add-Type -AssemblyName System.Windows.Forms',
|
||||||
'$html = Get-Content -Raw -LiteralPath $Path',
|
`$html = Get-Content -Raw -LiteralPath '${escaped}'`,
|
||||||
'[System.Windows.Forms.Clipboard]::SetText($html, [System.Windows.Forms.TextDataFormat]::Html)',
|
'[System.Windows.Forms.Clipboard]::SetText($html, [System.Windows.Forms.TextDataFormat]::Html)',
|
||||||
].join('; ');
|
].join('; ');
|
||||||
await runCommand('powershell.exe', ['-NoProfile', '-Sta', '-Command', ps, '-Path', htmlFilePath]);
|
await runCommand('powershell.exe', ['-NoProfile', '-Sta', '-Command', ps]);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function copyImageToClipboard(imagePathInput: string): Promise<void> {
|
async function copyImageToClipboard(imagePathInput: string): Promise<void> {
|
||||||
|
|||||||
@@ -228,25 +228,25 @@ async function copyHtmlLinux(htmlFilePath: string): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function copyImageWindows(imagePath: string): Promise<void> {
|
async function copyImageWindows(imagePath: string): Promise<void> {
|
||||||
|
const escaped = imagePath.replace(/'/g, "''");
|
||||||
const ps = [
|
const ps = [
|
||||||
'param([string]$Path)',
|
|
||||||
'Add-Type -AssemblyName System.Windows.Forms',
|
'Add-Type -AssemblyName System.Windows.Forms',
|
||||||
'Add-Type -AssemblyName System.Drawing',
|
'Add-Type -AssemblyName System.Drawing',
|
||||||
'$img = [System.Drawing.Image]::FromFile($Path)',
|
`$img = [System.Drawing.Image]::FromFile('${escaped}')`,
|
||||||
'[System.Windows.Forms.Clipboard]::SetImage($img)',
|
'[System.Windows.Forms.Clipboard]::SetImage($img)',
|
||||||
'$img.Dispose()',
|
'$img.Dispose()',
|
||||||
].join('; ');
|
].join('; ');
|
||||||
await runCommand('powershell.exe', ['-NoProfile', '-Sta', '-Command', ps, '-Path', imagePath]);
|
await runCommand('powershell.exe', ['-NoProfile', '-Sta', '-Command', ps]);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function copyHtmlWindows(htmlFilePath: string): Promise<void> {
|
async function copyHtmlWindows(htmlFilePath: string): Promise<void> {
|
||||||
|
const escaped = htmlFilePath.replace(/'/g, "''");
|
||||||
const ps = [
|
const ps = [
|
||||||
'param([string]$Path)',
|
|
||||||
'Add-Type -AssemblyName System.Windows.Forms',
|
'Add-Type -AssemblyName System.Windows.Forms',
|
||||||
'$html = Get-Content -Raw -LiteralPath $Path',
|
`$html = Get-Content -Raw -LiteralPath '${escaped}'`,
|
||||||
'[System.Windows.Forms.Clipboard]::SetText($html, [System.Windows.Forms.TextDataFormat]::Html)',
|
'[System.Windows.Forms.Clipboard]::SetText($html, [System.Windows.Forms.TextDataFormat]::Html)',
|
||||||
].join('; ');
|
].join('; ');
|
||||||
await runCommand('powershell.exe', ['-NoProfile', '-Sta', '-Command', ps, '-Path', htmlFilePath]);
|
await runCommand('powershell.exe', ['-NoProfile', '-Sta', '-Command', ps]);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function copyImageToClipboard(imagePathInput: string): Promise<void> {
|
async function copyImageToClipboard(imagePathInput: string): Promise<void> {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import net from 'node:net';
|
|||||||
import os from 'node:os';
|
import os from 'node:os';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import process from 'node:process';
|
import process from 'node:process';
|
||||||
|
import { fileURLToPath } from 'node:url';
|
||||||
|
|
||||||
export type PlatformCandidates = {
|
export type PlatformCandidates = {
|
||||||
darwin?: string[];
|
darwin?: string[];
|
||||||
@@ -216,7 +217,7 @@ export class CdpConnection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getScriptDir(): string {
|
export function getScriptDir(): string {
|
||||||
return path.dirname(new URL(import.meta.url).pathname);
|
return path.dirname(fileURLToPath(import.meta.url));
|
||||||
}
|
}
|
||||||
|
|
||||||
function runBunScript(scriptPath: string, args: string[]): boolean {
|
function runBunScript(scriptPath: string, args: string[]): boolean {
|
||||||
|
|||||||
Reference in New Issue
Block a user