@zzp123/mcp-zentao 1.18.9 → 1.18.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1018 -1018
- package/LICENSE +20 -20
- package/dist/api/zentaoApi.js +19 -18
- package/dist/index-dev.js +43 -36
- package/dist/index-pm.js +69 -710
- package/dist/index-qa.js +29 -34
- package/dist/index.js +61 -41
- package/dist/roleConfig.d.ts +0 -4
- package/dist/roleConfig.js +24 -33
- package/dist/types/zentao.d.ts +1 -0
- package/json-args.js +26 -26
- package/package.json +75 -75
- package/scripts/MCP-INTEGRATION.md +298 -298
- package/scripts/README.md +315 -315
- package/scripts/generate-role-versions.cjs +212 -209
- package/scripts/get-clipboard-base64.js +93 -93
- package/scripts/get_clipboard.ps1 +13 -13
- package/scripts/upload-clipboard-image.js +200 -200
- package/scripts/upload-clipboard-image.ps1 +128 -128
- package/scripts/upload-clipboard-image.py +196 -196
- package/scripts/upload.bat.example +41 -41
package/scripts/README.md
CHANGED
|
@@ -1,315 +1,315 @@
|
|
|
1
|
-
# 剪贴板图片上传脚本
|
|
2
|
-
|
|
3
|
-
提供三种方案来获取剪贴板图片并上传到禅道系统。
|
|
4
|
-
|
|
5
|
-
## 📋 方案对比
|
|
6
|
-
|
|
7
|
-
| 方案 | 平台 | 优点 | 缺点 |
|
|
8
|
-
|-----|------|------|------|
|
|
9
|
-
| Node.js | 跨平台 | 与项目集成,无需额外配置 | 需要Node环境 |
|
|
10
|
-
| PowerShell | Windows | 原生支持,无需安装依赖 | 仅Windows |
|
|
11
|
-
| Python | 跨平台 | 简单易用,代码清晰 | 需要Python环境 |
|
|
12
|
-
|
|
13
|
-
## 🚀 快速开始
|
|
14
|
-
|
|
15
|
-
### 方案1: Node.js 脚本(推荐)
|
|
16
|
-
|
|
17
|
-
**优点:** 跨平台,与项目无缝集成
|
|
18
|
-
|
|
19
|
-
**依赖:**
|
|
20
|
-
```bash
|
|
21
|
-
# 安装 clipboardy(可选,用于跨平台剪贴板支持)
|
|
22
|
-
npm install -g clipboardy
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
**使用方法:**
|
|
26
|
-
|
|
27
|
-
**Windows:**
|
|
28
|
-
```batch
|
|
29
|
-
set ZENTAO_URL=https://your-zentao-url
|
|
30
|
-
set ZENTAO_USERNAME=your-username
|
|
31
|
-
set ZENTAO_PASSWORD=your-password
|
|
32
|
-
set ZENTAO_UID=optional-uid
|
|
33
|
-
|
|
34
|
-
node scripts/upload-clipboard-image.js
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Mac/Linux:**
|
|
38
|
-
```bash
|
|
39
|
-
export ZENTAO_URL=https://your-zentao-url
|
|
40
|
-
export ZENTAO_USERNAME=your-username
|
|
41
|
-
export ZENTAO_PASSWORD=your-password
|
|
42
|
-
export ZENTAO_UID=optional-uid
|
|
43
|
-
|
|
44
|
-
node scripts/upload-clipboard-image.js
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**特性:**
|
|
48
|
-
- ✅ 自动检测操作系统
|
|
49
|
-
- ✅ Windows: 使用 PowerShell 读取剪贴板
|
|
50
|
-
- ✅ macOS: 使用 pngpaste (需要安装: `brew install pngpaste`)
|
|
51
|
-
- ✅ Linux: 使用 xclip (需要安装: `sudo apt-get install xclip`)
|
|
52
|
-
- ✅ 自动保存到 img 文件夹
|
|
53
|
-
- ✅ 返回禅道文件ID和URL
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
### 方案2: PowerShell 脚本(Windows专用)
|
|
58
|
-
|
|
59
|
-
**优点:** 原生支持,无需安装额外依赖
|
|
60
|
-
|
|
61
|
-
**使用方法:**
|
|
62
|
-
```powershell
|
|
63
|
-
.\scripts\upload-clipboard-image.ps1 `
|
|
64
|
-
-ZentaoUrl "https://your-zentao-url" `
|
|
65
|
-
-Username "your-username" `
|
|
66
|
-
-Password "your-password" `
|
|
67
|
-
-Uid "optional-uid"
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**或者创建批处理文件 `upload.bat`:**
|
|
71
|
-
```batch
|
|
72
|
-
@echo off
|
|
73
|
-
powershell -ExecutionPolicy Bypass -File "%~dp0scripts\upload-clipboard-image.ps1" ^
|
|
74
|
-
-ZentaoUrl "https://your-zentao-url" ^
|
|
75
|
-
-Username "your-username" ^
|
|
76
|
-
-Password "your-password"
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**特性:**
|
|
80
|
-
- ✅ Windows原生支持
|
|
81
|
-
- ✅ 无需安装额外工具
|
|
82
|
-
- ✅ 支持所有图片格式
|
|
83
|
-
- ✅ 自动转换为PNG
|
|
84
|
-
- ✅ 显示图片尺寸
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
### 方案3: Python 脚本(跨平台)
|
|
89
|
-
|
|
90
|
-
**优点:** 简单易用,代码清晰
|
|
91
|
-
|
|
92
|
-
**依赖安装:**
|
|
93
|
-
```bash
|
|
94
|
-
pip install pillow requests
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
**使用方法:**
|
|
98
|
-
|
|
99
|
-
**Windows:**
|
|
100
|
-
```batch
|
|
101
|
-
set ZENTAO_URL=https://your-zentao-url
|
|
102
|
-
set ZENTAO_USERNAME=your-username
|
|
103
|
-
set ZENTAO_PASSWORD=your-password
|
|
104
|
-
set ZENTAO_UID=optional-uid
|
|
105
|
-
|
|
106
|
-
python scripts/upload-clipboard-image.py
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
**Mac/Linux:**
|
|
110
|
-
```bash
|
|
111
|
-
export ZENTAO_URL=https://your-zentao-url
|
|
112
|
-
export ZENTAO_USERNAME=your-username
|
|
113
|
-
export ZENTAO_PASSWORD=your-password
|
|
114
|
-
export ZENTAO_UID=optional-uid
|
|
115
|
-
|
|
116
|
-
python scripts/upload-clipboard-image.py
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
**特性:**
|
|
120
|
-
- ✅ 跨平台支持
|
|
121
|
-
- ✅ 使用 PIL/Pillow 处理图片
|
|
122
|
-
- ✅ 支持剪贴板中的图片或图片文件路径
|
|
123
|
-
- ✅ 显示图片尺寸
|
|
124
|
-
- ✅ 详细的错误提示
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## 📝 环境变量说明
|
|
129
|
-
|
|
130
|
-
| 变量名 | 必需 | 说明 | 示例 |
|
|
131
|
-
|--------|------|------|------|
|
|
132
|
-
| ZENTAO_URL | 是 | 禅道系统URL | https://zentao.example.com |
|
|
133
|
-
| ZENTAO_USERNAME | 是 | 登录用户名 | admin |
|
|
134
|
-
| ZENTAO_PASSWORD | 是 | 登录密码 | your-password |
|
|
135
|
-
| ZENTAO_UID | 否 | 富文本编辑器关联ID | editor-123 |
|
|
136
|
-
|
|
137
|
-
## 💡 使用技巧
|
|
138
|
-
|
|
139
|
-
### 1. 创建快捷命令
|
|
140
|
-
|
|
141
|
-
**Windows (创建 `upload.bat`):**
|
|
142
|
-
```batch
|
|
143
|
-
@echo off
|
|
144
|
-
REM 设置禅道配置
|
|
145
|
-
set ZENTAO_URL=https://your-zentao-url
|
|
146
|
-
set ZENTAO_USERNAME=your-username
|
|
147
|
-
set ZENTAO_PASSWORD=your-password
|
|
148
|
-
|
|
149
|
-
REM 运行上传脚本
|
|
150
|
-
node "%~dp0scripts\upload-clipboard-image.js"
|
|
151
|
-
pause
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
**Mac/Linux (创建 `upload.sh`):**
|
|
155
|
-
```bash
|
|
156
|
-
#!/bin/bash
|
|
157
|
-
# 设置禅道配置
|
|
158
|
-
export ZENTAO_URL=https://your-zentao-url
|
|
159
|
-
export ZENTAO_USERNAME=your-username
|
|
160
|
-
export ZENTAO_PASSWORD=your-password
|
|
161
|
-
|
|
162
|
-
# 运行上传脚本
|
|
163
|
-
node "$(dirname "$0")/scripts/upload-clipboard-image.js"
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
然后:
|
|
167
|
-
```bash
|
|
168
|
-
chmod +x upload.sh
|
|
169
|
-
./upload.sh
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### 2. 配置文件方式
|
|
173
|
-
|
|
174
|
-
创建 `.env` 文件:
|
|
175
|
-
```env
|
|
176
|
-
ZENTAO_URL=https://your-zentao-url
|
|
177
|
-
ZENTAO_USERNAME=your-username
|
|
178
|
-
ZENTAO_PASSWORD=your-password
|
|
179
|
-
ZENTAO_UID=
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
然后加载环境变量:
|
|
183
|
-
```bash
|
|
184
|
-
# Linux/Mac
|
|
185
|
-
source .env
|
|
186
|
-
|
|
187
|
-
# Windows (使用 PowerShell)
|
|
188
|
-
Get-Content .env | ForEach-Object {
|
|
189
|
-
$name, $value = $_.split('=')
|
|
190
|
-
Set-Content env:\$name $value
|
|
191
|
-
}
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### 3. 快捷键绑定
|
|
195
|
-
|
|
196
|
-
可以将脚本绑定到系统快捷键,实现:
|
|
197
|
-
1. 截图/复制图片
|
|
198
|
-
2. 按快捷键
|
|
199
|
-
3. 自动上传到禅道
|
|
200
|
-
|
|
201
|
-
**Windows AutoHotkey 示例:**
|
|
202
|
-
```ahk
|
|
203
|
-
; Ctrl+Shift+U 上传剪贴板图片
|
|
204
|
-
^+u::
|
|
205
|
-
Run, cmd /c "cd /d C:\path\to\project && upload.bat"
|
|
206
|
-
return
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
**Mac Automator 示例:**
|
|
210
|
-
1. 打开 Automator
|
|
211
|
-
2. 创建"快速操作"
|
|
212
|
-
3. 添加"运行Shell脚本"
|
|
213
|
-
4. 输入上传命令
|
|
214
|
-
5. 在系统偏好设置中设置快捷键
|
|
215
|
-
|
|
216
|
-
## 🔍 故障排查
|
|
217
|
-
|
|
218
|
-
### Node.js 方案
|
|
219
|
-
|
|
220
|
-
**问题:** `Error: Cannot find module 'form-data'`
|
|
221
|
-
```bash
|
|
222
|
-
npm install
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
**问题:** macOS 提示 `pngpaste: command not found`
|
|
226
|
-
```bash
|
|
227
|
-
brew install pngpaste
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
**问题:** Linux 提示 `xclip: command not found`
|
|
231
|
-
```bash
|
|
232
|
-
# Ubuntu/Debian
|
|
233
|
-
sudo apt-get install xclip
|
|
234
|
-
|
|
235
|
-
# CentOS/RHEL
|
|
236
|
-
sudo yum install xclip
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
### PowerShell 方案
|
|
240
|
-
|
|
241
|
-
**问题:** 脚本无法运行
|
|
242
|
-
```powershell
|
|
243
|
-
# 临时允许脚本执行
|
|
244
|
-
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
|
|
245
|
-
|
|
246
|
-
# 或使用 -ExecutionPolicy 参数
|
|
247
|
-
powershell -ExecutionPolicy Bypass -File upload-clipboard-image.ps1
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
### Python 方案
|
|
251
|
-
|
|
252
|
-
**问题:** `ModuleNotFoundError: No module named 'PIL'`
|
|
253
|
-
```bash
|
|
254
|
-
pip install pillow
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
**问题:** `ModuleNotFoundError: No module named 'requests'`
|
|
258
|
-
```bash
|
|
259
|
-
pip install requests
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
## 📸 完整工作流示例
|
|
263
|
-
|
|
264
|
-
1. **截图或复制图片**
|
|
265
|
-
- Windows: Win+Shift+S 或 PrintScreen
|
|
266
|
-
- Mac: Cmd+Shift+Ctrl+4
|
|
267
|
-
- 或从任意应用复制图片
|
|
268
|
-
|
|
269
|
-
2. **运行上传脚本**
|
|
270
|
-
```bash
|
|
271
|
-
# 使用你选择的方案
|
|
272
|
-
node scripts/upload-clipboard-image.js
|
|
273
|
-
# 或
|
|
274
|
-
.\scripts\upload-clipboard-image.ps1 -ZentaoUrl ... -Username ... -Password ...
|
|
275
|
-
# 或
|
|
276
|
-
python scripts/upload-clipboard-image.py
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
3. **获取结果**
|
|
280
|
-
```
|
|
281
|
-
========================================
|
|
282
|
-
✓ 上传成功!
|
|
283
|
-
========================================
|
|
284
|
-
文件ID: 123
|
|
285
|
-
访问URL: /zentao/file-read-123.png
|
|
286
|
-
本地路径: C:\project\img\clipboard_1234567890.png
|
|
287
|
-
========================================
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
4. **在禅道中使用**
|
|
291
|
-
- 复制返回的URL
|
|
292
|
-
- 在需求/Bug/任务描述中插入图片
|
|
293
|
-
- 使用 `` 或直接粘贴URL
|
|
294
|
-
|
|
295
|
-
## 🎯 高级用法
|
|
296
|
-
|
|
297
|
-
### 批量上传
|
|
298
|
-
|
|
299
|
-
创建一个循环脚本,持续监听剪贴板变化并自动上传。
|
|
300
|
-
|
|
301
|
-
### 与富文本编辑器集成
|
|
302
|
-
|
|
303
|
-
设置 `ZENTAO_UID` 环境变量,将上传的图片关联到特定的编辑器会话。
|
|
304
|
-
|
|
305
|
-
### 自定义保存路径
|
|
306
|
-
|
|
307
|
-
修改脚本中的 `imgDir` 变量,将图片保存到自定义位置。
|
|
308
|
-
|
|
309
|
-
## 📄 许可证
|
|
310
|
-
|
|
311
|
-
MIT
|
|
312
|
-
|
|
313
|
-
## 🤝 贡献
|
|
314
|
-
|
|
315
|
-
欢迎提交 Issue 和 Pull Request!
|
|
1
|
+
# 剪贴板图片上传脚本
|
|
2
|
+
|
|
3
|
+
提供三种方案来获取剪贴板图片并上传到禅道系统。
|
|
4
|
+
|
|
5
|
+
## 📋 方案对比
|
|
6
|
+
|
|
7
|
+
| 方案 | 平台 | 优点 | 缺点 |
|
|
8
|
+
|-----|------|------|------|
|
|
9
|
+
| Node.js | 跨平台 | 与项目集成,无需额外配置 | 需要Node环境 |
|
|
10
|
+
| PowerShell | Windows | 原生支持,无需安装依赖 | 仅Windows |
|
|
11
|
+
| Python | 跨平台 | 简单易用,代码清晰 | 需要Python环境 |
|
|
12
|
+
|
|
13
|
+
## 🚀 快速开始
|
|
14
|
+
|
|
15
|
+
### 方案1: Node.js 脚本(推荐)
|
|
16
|
+
|
|
17
|
+
**优点:** 跨平台,与项目无缝集成
|
|
18
|
+
|
|
19
|
+
**依赖:**
|
|
20
|
+
```bash
|
|
21
|
+
# 安装 clipboardy(可选,用于跨平台剪贴板支持)
|
|
22
|
+
npm install -g clipboardy
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**使用方法:**
|
|
26
|
+
|
|
27
|
+
**Windows:**
|
|
28
|
+
```batch
|
|
29
|
+
set ZENTAO_URL=https://your-zentao-url
|
|
30
|
+
set ZENTAO_USERNAME=your-username
|
|
31
|
+
set ZENTAO_PASSWORD=your-password
|
|
32
|
+
set ZENTAO_UID=optional-uid
|
|
33
|
+
|
|
34
|
+
node scripts/upload-clipboard-image.js
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Mac/Linux:**
|
|
38
|
+
```bash
|
|
39
|
+
export ZENTAO_URL=https://your-zentao-url
|
|
40
|
+
export ZENTAO_USERNAME=your-username
|
|
41
|
+
export ZENTAO_PASSWORD=your-password
|
|
42
|
+
export ZENTAO_UID=optional-uid
|
|
43
|
+
|
|
44
|
+
node scripts/upload-clipboard-image.js
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**特性:**
|
|
48
|
+
- ✅ 自动检测操作系统
|
|
49
|
+
- ✅ Windows: 使用 PowerShell 读取剪贴板
|
|
50
|
+
- ✅ macOS: 使用 pngpaste (需要安装: `brew install pngpaste`)
|
|
51
|
+
- ✅ Linux: 使用 xclip (需要安装: `sudo apt-get install xclip`)
|
|
52
|
+
- ✅ 自动保存到 img 文件夹
|
|
53
|
+
- ✅ 返回禅道文件ID和URL
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
### 方案2: PowerShell 脚本(Windows专用)
|
|
58
|
+
|
|
59
|
+
**优点:** 原生支持,无需安装额外依赖
|
|
60
|
+
|
|
61
|
+
**使用方法:**
|
|
62
|
+
```powershell
|
|
63
|
+
.\scripts\upload-clipboard-image.ps1 `
|
|
64
|
+
-ZentaoUrl "https://your-zentao-url" `
|
|
65
|
+
-Username "your-username" `
|
|
66
|
+
-Password "your-password" `
|
|
67
|
+
-Uid "optional-uid"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**或者创建批处理文件 `upload.bat`:**
|
|
71
|
+
```batch
|
|
72
|
+
@echo off
|
|
73
|
+
powershell -ExecutionPolicy Bypass -File "%~dp0scripts\upload-clipboard-image.ps1" ^
|
|
74
|
+
-ZentaoUrl "https://your-zentao-url" ^
|
|
75
|
+
-Username "your-username" ^
|
|
76
|
+
-Password "your-password"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**特性:**
|
|
80
|
+
- ✅ Windows原生支持
|
|
81
|
+
- ✅ 无需安装额外工具
|
|
82
|
+
- ✅ 支持所有图片格式
|
|
83
|
+
- ✅ 自动转换为PNG
|
|
84
|
+
- ✅ 显示图片尺寸
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### 方案3: Python 脚本(跨平台)
|
|
89
|
+
|
|
90
|
+
**优点:** 简单易用,代码清晰
|
|
91
|
+
|
|
92
|
+
**依赖安装:**
|
|
93
|
+
```bash
|
|
94
|
+
pip install pillow requests
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**使用方法:**
|
|
98
|
+
|
|
99
|
+
**Windows:**
|
|
100
|
+
```batch
|
|
101
|
+
set ZENTAO_URL=https://your-zentao-url
|
|
102
|
+
set ZENTAO_USERNAME=your-username
|
|
103
|
+
set ZENTAO_PASSWORD=your-password
|
|
104
|
+
set ZENTAO_UID=optional-uid
|
|
105
|
+
|
|
106
|
+
python scripts/upload-clipboard-image.py
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Mac/Linux:**
|
|
110
|
+
```bash
|
|
111
|
+
export ZENTAO_URL=https://your-zentao-url
|
|
112
|
+
export ZENTAO_USERNAME=your-username
|
|
113
|
+
export ZENTAO_PASSWORD=your-password
|
|
114
|
+
export ZENTAO_UID=optional-uid
|
|
115
|
+
|
|
116
|
+
python scripts/upload-clipboard-image.py
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**特性:**
|
|
120
|
+
- ✅ 跨平台支持
|
|
121
|
+
- ✅ 使用 PIL/Pillow 处理图片
|
|
122
|
+
- ✅ 支持剪贴板中的图片或图片文件路径
|
|
123
|
+
- ✅ 显示图片尺寸
|
|
124
|
+
- ✅ 详细的错误提示
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 📝 环境变量说明
|
|
129
|
+
|
|
130
|
+
| 变量名 | 必需 | 说明 | 示例 |
|
|
131
|
+
|--------|------|------|------|
|
|
132
|
+
| ZENTAO_URL | 是 | 禅道系统URL | https://zentao.example.com |
|
|
133
|
+
| ZENTAO_USERNAME | 是 | 登录用户名 | admin |
|
|
134
|
+
| ZENTAO_PASSWORD | 是 | 登录密码 | your-password |
|
|
135
|
+
| ZENTAO_UID | 否 | 富文本编辑器关联ID | editor-123 |
|
|
136
|
+
|
|
137
|
+
## 💡 使用技巧
|
|
138
|
+
|
|
139
|
+
### 1. 创建快捷命令
|
|
140
|
+
|
|
141
|
+
**Windows (创建 `upload.bat`):**
|
|
142
|
+
```batch
|
|
143
|
+
@echo off
|
|
144
|
+
REM 设置禅道配置
|
|
145
|
+
set ZENTAO_URL=https://your-zentao-url
|
|
146
|
+
set ZENTAO_USERNAME=your-username
|
|
147
|
+
set ZENTAO_PASSWORD=your-password
|
|
148
|
+
|
|
149
|
+
REM 运行上传脚本
|
|
150
|
+
node "%~dp0scripts\upload-clipboard-image.js"
|
|
151
|
+
pause
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Mac/Linux (创建 `upload.sh`):**
|
|
155
|
+
```bash
|
|
156
|
+
#!/bin/bash
|
|
157
|
+
# 设置禅道配置
|
|
158
|
+
export ZENTAO_URL=https://your-zentao-url
|
|
159
|
+
export ZENTAO_USERNAME=your-username
|
|
160
|
+
export ZENTAO_PASSWORD=your-password
|
|
161
|
+
|
|
162
|
+
# 运行上传脚本
|
|
163
|
+
node "$(dirname "$0")/scripts/upload-clipboard-image.js"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
然后:
|
|
167
|
+
```bash
|
|
168
|
+
chmod +x upload.sh
|
|
169
|
+
./upload.sh
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### 2. 配置文件方式
|
|
173
|
+
|
|
174
|
+
创建 `.env` 文件:
|
|
175
|
+
```env
|
|
176
|
+
ZENTAO_URL=https://your-zentao-url
|
|
177
|
+
ZENTAO_USERNAME=your-username
|
|
178
|
+
ZENTAO_PASSWORD=your-password
|
|
179
|
+
ZENTAO_UID=
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
然后加载环境变量:
|
|
183
|
+
```bash
|
|
184
|
+
# Linux/Mac
|
|
185
|
+
source .env
|
|
186
|
+
|
|
187
|
+
# Windows (使用 PowerShell)
|
|
188
|
+
Get-Content .env | ForEach-Object {
|
|
189
|
+
$name, $value = $_.split('=')
|
|
190
|
+
Set-Content env:\$name $value
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### 3. 快捷键绑定
|
|
195
|
+
|
|
196
|
+
可以将脚本绑定到系统快捷键,实现:
|
|
197
|
+
1. 截图/复制图片
|
|
198
|
+
2. 按快捷键
|
|
199
|
+
3. 自动上传到禅道
|
|
200
|
+
|
|
201
|
+
**Windows AutoHotkey 示例:**
|
|
202
|
+
```ahk
|
|
203
|
+
; Ctrl+Shift+U 上传剪贴板图片
|
|
204
|
+
^+u::
|
|
205
|
+
Run, cmd /c "cd /d C:\path\to\project && upload.bat"
|
|
206
|
+
return
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**Mac Automator 示例:**
|
|
210
|
+
1. 打开 Automator
|
|
211
|
+
2. 创建"快速操作"
|
|
212
|
+
3. 添加"运行Shell脚本"
|
|
213
|
+
4. 输入上传命令
|
|
214
|
+
5. 在系统偏好设置中设置快捷键
|
|
215
|
+
|
|
216
|
+
## 🔍 故障排查
|
|
217
|
+
|
|
218
|
+
### Node.js 方案
|
|
219
|
+
|
|
220
|
+
**问题:** `Error: Cannot find module 'form-data'`
|
|
221
|
+
```bash
|
|
222
|
+
npm install
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**问题:** macOS 提示 `pngpaste: command not found`
|
|
226
|
+
```bash
|
|
227
|
+
brew install pngpaste
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**问题:** Linux 提示 `xclip: command not found`
|
|
231
|
+
```bash
|
|
232
|
+
# Ubuntu/Debian
|
|
233
|
+
sudo apt-get install xclip
|
|
234
|
+
|
|
235
|
+
# CentOS/RHEL
|
|
236
|
+
sudo yum install xclip
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### PowerShell 方案
|
|
240
|
+
|
|
241
|
+
**问题:** 脚本无法运行
|
|
242
|
+
```powershell
|
|
243
|
+
# 临时允许脚本执行
|
|
244
|
+
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
|
|
245
|
+
|
|
246
|
+
# 或使用 -ExecutionPolicy 参数
|
|
247
|
+
powershell -ExecutionPolicy Bypass -File upload-clipboard-image.ps1
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Python 方案
|
|
251
|
+
|
|
252
|
+
**问题:** `ModuleNotFoundError: No module named 'PIL'`
|
|
253
|
+
```bash
|
|
254
|
+
pip install pillow
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**问题:** `ModuleNotFoundError: No module named 'requests'`
|
|
258
|
+
```bash
|
|
259
|
+
pip install requests
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## 📸 完整工作流示例
|
|
263
|
+
|
|
264
|
+
1. **截图或复制图片**
|
|
265
|
+
- Windows: Win+Shift+S 或 PrintScreen
|
|
266
|
+
- Mac: Cmd+Shift+Ctrl+4
|
|
267
|
+
- 或从任意应用复制图片
|
|
268
|
+
|
|
269
|
+
2. **运行上传脚本**
|
|
270
|
+
```bash
|
|
271
|
+
# 使用你选择的方案
|
|
272
|
+
node scripts/upload-clipboard-image.js
|
|
273
|
+
# 或
|
|
274
|
+
.\scripts\upload-clipboard-image.ps1 -ZentaoUrl ... -Username ... -Password ...
|
|
275
|
+
# 或
|
|
276
|
+
python scripts/upload-clipboard-image.py
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
3. **获取结果**
|
|
280
|
+
```
|
|
281
|
+
========================================
|
|
282
|
+
✓ 上传成功!
|
|
283
|
+
========================================
|
|
284
|
+
文件ID: 123
|
|
285
|
+
访问URL: /zentao/file-read-123.png
|
|
286
|
+
本地路径: C:\project\img\clipboard_1234567890.png
|
|
287
|
+
========================================
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
4. **在禅道中使用**
|
|
291
|
+
- 复制返回的URL
|
|
292
|
+
- 在需求/Bug/任务描述中插入图片
|
|
293
|
+
- 使用 `` 或直接粘贴URL
|
|
294
|
+
|
|
295
|
+
## 🎯 高级用法
|
|
296
|
+
|
|
297
|
+
### 批量上传
|
|
298
|
+
|
|
299
|
+
创建一个循环脚本,持续监听剪贴板变化并自动上传。
|
|
300
|
+
|
|
301
|
+
### 与富文本编辑器集成
|
|
302
|
+
|
|
303
|
+
设置 `ZENTAO_UID` 环境变量,将上传的图片关联到特定的编辑器会话。
|
|
304
|
+
|
|
305
|
+
### 自定义保存路径
|
|
306
|
+
|
|
307
|
+
修改脚本中的 `imgDir` 变量,将图片保存到自定义位置。
|
|
308
|
+
|
|
309
|
+
## 📄 许可证
|
|
310
|
+
|
|
311
|
+
MIT
|
|
312
|
+
|
|
313
|
+
## 🤝 贡献
|
|
314
|
+
|
|
315
|
+
欢迎提交 Issue 和 Pull Request!
|