trailsnap-cli 0.3.8__tar.gz → 0.3.10__tar.gz
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.
- trailsnap_cli-0.3.10/PKG-INFO +320 -0
- trailsnap_cli-0.3.10/README.md +313 -0
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/pyproject.toml +1 -1
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/cli.py +12 -1
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/commands/albums.py +6 -4
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/commands/folders.py +5 -3
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/commands/locations.py +9 -8
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/commands/people.py +6 -7
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/commands/photos.py +14 -8
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/commands/tags.py +5 -3
- trailsnap_cli-0.3.10/trailsnap/output.py +198 -0
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/utils.py +9 -1
- trailsnap_cli-0.3.10/trailsnap_cli.egg-info/PKG-INFO +320 -0
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap_cli.egg-info/SOURCES.txt +1 -0
- trailsnap_cli-0.3.8/PKG-INFO +0 -81
- trailsnap_cli-0.3.8/README.md +0 -74
- trailsnap_cli-0.3.8/trailsnap_cli.egg-info/PKG-INFO +0 -81
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/setup.cfg +0 -0
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/commands/__init__.py +0 -0
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/commands/config.py +0 -0
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap/commands/medias.py +0 -0
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap_cli.egg-info/dependency_links.txt +0 -0
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap_cli.egg-info/entry_points.txt +0 -0
- {trailsnap_cli-0.3.8 → trailsnap_cli-0.3.10}/trailsnap_cli.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: trailsnap-cli
|
|
3
|
+
Version: 0.3.10
|
|
4
|
+
Summary: TrailSnap Command Line Interface
|
|
5
|
+
Requires-Python: >=3.9
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
|
|
8
|
+
# TrailSnap CLI 命令说明书
|
|
9
|
+
|
|
10
|
+
本文档详细说明 TrailSnap CLI 命令行工具的所有可用命令、参数用法、功能描述及使用示例,适用于快速上手操作。命令结构遵循「主命令 + 子命令 + 参数」。
|
|
11
|
+
|
|
12
|
+
核心说明:所有命令需在终端执行,格式统一为 `trailsnap <command> <subcommand> [options]`。涉及 API 交互的命令(如 photos、locations 等)需先通过 `config set` 配置 API 地址和 Token,否则会直接报错并退出。
|
|
13
|
+
|
|
14
|
+
## 输出格式参数
|
|
15
|
+
|
|
16
|
+
所有支持数据输出的命令均支持 `--format` 参数,可选值:
|
|
17
|
+
|
|
18
|
+
- `--format json`(默认):完整 JSON 响应
|
|
19
|
+
- `--format pretty`:人性化格式输出,树状结构展示
|
|
20
|
+
- `--format table`:易读表格格式
|
|
21
|
+
- `--format ndjson`:换行分隔 JSON(适合管道处理)
|
|
22
|
+
- `--format csv`:逗号分隔值(适合导入 Excel)
|
|
23
|
+
|
|
24
|
+
# 一、基础命令
|
|
25
|
+
|
|
26
|
+
## 1.1 help - 显示帮助信息
|
|
27
|
+
|
|
28
|
+
「功能」:显示所有可用命令、命令结构及各命令的核心参数,快速查阅命令用法。
|
|
29
|
+
「格式」:`--help`
|
|
30
|
+
「示例」:
|
|
31
|
+
```bash
|
|
32
|
+
trailsnap --help
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
# 二、配置命令
|
|
36
|
+
|
|
37
|
+
## 2.1 config set - 配置API URL和Token
|
|
38
|
+
|
|
39
|
+
「功能」:配置CLI工具与后端API的连接信息,包括API基础地址和Bearer凭证Token,是所有API交互类命令的前置操作。
|
|
40
|
+
|
|
41
|
+
「格式」:`config set --url API地址 --token API凭证`
|
|
42
|
+
|
|
43
|
+
「参数说明」:
|
|
44
|
+
|
|
45
|
+
- `--url`(必填):API基础地址,格式为http/https开头,例如:http://localhost:8000
|
|
46
|
+
|
|
47
|
+
- `--token`(必填):API访问凭证(Bearer Token),用于身份验证,需从后端获取。
|
|
48
|
+
|
|
49
|
+
「示例」:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
trailsnap config set --url http://localhost:8000 --token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
「输出说明」:配置成功后会输出配置文件保存路径(写入同目录 `.env`),例如:`配置已保存到 .../.env`。
|
|
56
|
+
|
|
57
|
+
# 三、照片管理命令
|
|
58
|
+
|
|
59
|
+
## 3.1 photos - 照片管理主命令
|
|
60
|
+
|
|
61
|
+
「功能」:包含照片列表查询、单张照片详情获取、照片删除三个核心子命令,所有子命令需先完成API配置。
|
|
62
|
+
|
|
63
|
+
### 3.1.1 photos list - 查询照片列表
|
|
64
|
+
|
|
65
|
+
「功能」:查询照片列表,支持分页与按相册/地点/设备信息过滤。返回结果为简化字段集合。
|
|
66
|
+
|
|
67
|
+
「格式」:`photos list [--skip N] [--limit N] [--album-id 相册ID] [--city 城市] [--province 省份] [--make 品牌] [--model 型号] [--format json|pretty|table|ndjson|csv]`
|
|
68
|
+
|
|
69
|
+
「参数说明」(支持组合筛选):
|
|
70
|
+
|
|
71
|
+
- `--skip`:跳过 N 张照片(默认 0)
|
|
72
|
+
- `--limit`:限制返回 N 张照片(默认 10)
|
|
73
|
+
- `--order_by`:排序字段,默认按值得回忆评分排序,可选值:quality_score(画面质量评分),memory_score(值得回忆评分),photo_time(拍摄时间)
|
|
74
|
+
- `--image-type`:按图片类型过滤照片,多个类型用逗号分隔,可选值:Camera(手机或相机拍摄)、Screenshot(截图)、Other(未知的其他类型)
|
|
75
|
+
- `--start-time`:按开始时间过滤照片,格式为 YYYY-MM-DD HH:MM:SS
|
|
76
|
+
- `--end-time`:按结束时间过滤照片,格式为 YYYY-MM-DD HH:MM:SS
|
|
77
|
+
- `--album-id`:按相册 ID 过滤,多个 ID 用逗号分隔
|
|
78
|
+
- `--people-id`:按人物 ID 过滤,多个 ID 用逗号分隔
|
|
79
|
+
- `--tag-id`:按标签 ID 过滤,多个 ID 用逗号分隔
|
|
80
|
+
- `--city`:按城市过滤,多个城市用逗号分隔(全称)
|
|
81
|
+
- `--province`:按省份过滤,多个省份用逗号分隔(全称)
|
|
82
|
+
- `--scene`:按景区过滤,多个景区用逗号分隔
|
|
83
|
+
- `--make`:按相机品牌过滤,多个品牌用逗号分隔
|
|
84
|
+
- `--model`:按相机型号过滤,多个型号用逗号分隔
|
|
85
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
86
|
+
|
|
87
|
+
「返回值」:JSON 数组,每项包含 `id`、`filename`、`file_type`、`photo_time`
|
|
88
|
+
|
|
89
|
+
「示例」:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
trailsnap photos list --limit 20 --city 西安市,上海市
|
|
93
|
+
trailsnap photos list --limit 20 --format pretty
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 3.1.2 photos info - 获取单张照片信息
|
|
97
|
+
|
|
98
|
+
「功能」:获取指定 ID 照片的元数据信息与内容描述信息。
|
|
99
|
+
|
|
100
|
+
「格式」:`photos info --photo-id 照片ID [--format json|pretty|table|ndjson|csv]`
|
|
101
|
+
|
|
102
|
+
「参数说明」:
|
|
103
|
+
|
|
104
|
+
- `--photo-id`(必填):照片唯一ID,可通过photos list命令获取。
|
|
105
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
106
|
+
|
|
107
|
+
「返回值」:JSON 对象,包含:
|
|
108
|
+
|
|
109
|
+
- `address`:照片详细拍摄地址(精确到街道)
|
|
110
|
+
- `albums`:所属相册信息
|
|
111
|
+
- `tags`:标签信息
|
|
112
|
+
- `faces_identities`:人物(面部识别身份)信息
|
|
113
|
+
- `description`:照片内容描述信息
|
|
114
|
+
- `description`:照片画面描述(若无则为空字符串)
|
|
115
|
+
- `memory_score`:照片值得回忆分数(0-100,100为值得回忆)
|
|
116
|
+
- `quality_score`:照片质量分数(0-100,100为最高质量)
|
|
117
|
+
- `narrative`:照片一句话文案(若无则为空字符串)
|
|
118
|
+
|
|
119
|
+
「示例」:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
trailsnap photos info --photo-id 10001
|
|
123
|
+
trailsnap photos info --photo-id 10001 --format pretty
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 3.1.3 photos delete - 删除单张照片
|
|
127
|
+
|
|
128
|
+
「功能」:删除指定ID的照片,删除后不可恢复(需谨慎操作)。
|
|
129
|
+
|
|
130
|
+
「格式」:`photos delete --photo-id 照片ID`
|
|
131
|
+
|
|
132
|
+
「参数说明」:
|
|
133
|
+
|
|
134
|
+
- `--photo-id`(必填):需删除的照片唯一ID。
|
|
135
|
+
|
|
136
|
+
「示例」:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
trailsnap photos delete --photo-id 10001
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
「输出说明」:删除成功提示 `照片 <photo-id> 删除成功`,失败提示 `照片删除失败或不存在`。
|
|
143
|
+
|
|
144
|
+
# 四、分类标签命令
|
|
145
|
+
|
|
146
|
+
## 4.1 tags list - 查询分类标签
|
|
147
|
+
|
|
148
|
+
「功能」:查询分类标签列表,支持分页。
|
|
149
|
+
|
|
150
|
+
「格式」:`tags list [--skip N] [--limit N] [--format json|pretty|table|ndjson|csv]`
|
|
151
|
+
|
|
152
|
+
「参数说明」:
|
|
153
|
+
|
|
154
|
+
- `--skip`:跳过 N 个记录(默认 0)
|
|
155
|
+
- `--limit`:限制返回 N 个记录(默认 100)
|
|
156
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
157
|
+
|
|
158
|
+
「示例」:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
trailsnap tags list
|
|
162
|
+
trailsnap tags list --format table
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
「输出说明」:输出 JSON 数组,每项包含 `id`、`name`(tag_name)、`count`。
|
|
166
|
+
|
|
167
|
+
# 五、相册管理命令
|
|
168
|
+
|
|
169
|
+
## 5.1 albums list - 查询相册列表
|
|
170
|
+
|
|
171
|
+
「功能」:查询相册列表,支持分页。
|
|
172
|
+
|
|
173
|
+
「格式」:`albums list [--skip N] [--limit N] [--format json|pretty|table|ndjson|csv]`
|
|
174
|
+
|
|
175
|
+
「参数说明」:
|
|
176
|
+
|
|
177
|
+
- `--skip`:跳过 N 个相册(默认 0)
|
|
178
|
+
- `--limit`:限制返回 N 个相册(默认 100)
|
|
179
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
180
|
+
|
|
181
|
+
「输出说明」:输出 JSON 数组,每项包含 `id`、`name`、`count`(num_photos)、`description`、`condition`、`type`。
|
|
182
|
+
|
|
183
|
+
「示例」:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
trailsnap albums list
|
|
187
|
+
trailsnap albums list --format pretty
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
# 六、位置相关命令
|
|
191
|
+
|
|
192
|
+
## 6.1 locations - 位置查询主命令
|
|
193
|
+
|
|
194
|
+
「功能」:包含位置分布查询、足迹时间轴查询两个子命令,基于照片的GPS信息统计。
|
|
195
|
+
|
|
196
|
+
### 6.1.1 locations list - 查询位置分布
|
|
197
|
+
|
|
198
|
+
「功能」:查询位置分布,不含时间信息(地点名、照片数量)。支持按层级分组与日期范围过滤。
|
|
199
|
+
|
|
200
|
+
「格式」:`locations list [--level city|province|district|scene] [--skip N] [--limit N] [--start-date YYYY-MM-DD] [--end-date YYYY-MM-DD] [--format json|pretty|table|ndjson|csv]`
|
|
201
|
+
|
|
202
|
+
「参数说明」:
|
|
203
|
+
|
|
204
|
+
- `--level`:分组级别(默认 city,可选:city、province、district、scene)
|
|
205
|
+
- `--skip`:跳过 N 个位置(默认 0)
|
|
206
|
+
- `--limit`:限制返回 N 个位置(默认 100)
|
|
207
|
+
- `--start-date`:可选,开始日期(YYYY-MM-DD)
|
|
208
|
+
- `--end-date`:可选,结束日期(YYYY-MM-DD)
|
|
209
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
210
|
+
|
|
211
|
+
「返回值」:JSON 数组,每项包含 `name`、`count`
|
|
212
|
+
|
|
213
|
+
「示例」:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
trailsnap locations list
|
|
217
|
+
trailsnap locations list --format table
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### 6.1.2 locations timeline - 查询足迹时间轴
|
|
221
|
+
|
|
222
|
+
「功能」:查询足迹时间轴列表,按时间段和地点分组(开始日期、结束日期、地点名、照片数量)。支持按层级分组与日期范围过滤。
|
|
223
|
+
|
|
224
|
+
「格式」:`locations timeline [--level city|province|district|scene] [--skip N] [--limit N] [--start-date YYYY-MM-DD] [--end-date YYYY-MM-DD] [--format json|pretty|table|ndjson|csv]`
|
|
225
|
+
|
|
226
|
+
「参数说明」:
|
|
227
|
+
|
|
228
|
+
- `--level`:分组级别(默认 city,可选:city、province、district、scene)
|
|
229
|
+
- `--skip`:跳过 N 个位置(默认 0)
|
|
230
|
+
- `--limit`:限制返回 N 个位置(默认 100)
|
|
231
|
+
- `--start-date`:可选,开始日期(YYYY-MM-DD)
|
|
232
|
+
- `--end-date`:可选,结束日期(YYYY-MM-DD)
|
|
233
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
234
|
+
|
|
235
|
+
「返回值」:JSON 数组,每项包含 `startDate`、`endDate`、`locationName`、`count`
|
|
236
|
+
|
|
237
|
+
「示例」:
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
trailsnap locations timeline --level city --start-date 2025-01-01 --end-date 2025-06-30
|
|
241
|
+
trailsnap locations timeline --format csv
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
# 七、人物识别命令
|
|
245
|
+
|
|
246
|
+
## 7.1 people list - 查询已识别的人物/面孔
|
|
247
|
+
|
|
248
|
+
「功能」:查询人物(面部识别身份)列表,支持按类型过滤。
|
|
249
|
+
|
|
250
|
+
「格式」:`people list [--limit N] [--types named,unnamed,hidden] [--format json|pretty|table|ndjson|csv]`
|
|
251
|
+
|
|
252
|
+
「参数说明」:
|
|
253
|
+
|
|
254
|
+
- `--limit`:返回的记录数(默认 100)
|
|
255
|
+
- `--types`:查询类型,逗号分隔,默认 `named`;可选值:`named`、`unnamed`、`hidden`
|
|
256
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
257
|
+
|
|
258
|
+
「输出说明」:输出 JSON 数组,每项包含 `id`、`name`(identity_name)、`tags`、`description`、`face_count`。
|
|
259
|
+
|
|
260
|
+
「示例」:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
trailsnap people list
|
|
264
|
+
trailsnap people list --format ndjson
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
# 八、存储文件夹命令
|
|
268
|
+
|
|
269
|
+
## 8.1 folders list - 查询挂载的存储文件夹列表
|
|
270
|
+
|
|
271
|
+
「功能」:查询系统中已挂载的存储目录信息。
|
|
272
|
+
|
|
273
|
+
「格式」:`folders list [--format json|pretty|table|ndjson|csv]`
|
|
274
|
+
|
|
275
|
+
「参数说明」:
|
|
276
|
+
|
|
277
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
278
|
+
|
|
279
|
+
「输出说明」:直接输出后端接口返回的 JSON(字段结构以服务端为准)。
|
|
280
|
+
|
|
281
|
+
「示例」:
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
trailsnap folders list
|
|
285
|
+
trailsnap folders list --format pretty
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
# 九、媒体文件命令
|
|
289
|
+
|
|
290
|
+
## 9.1 medias get - 获取照片的媒体文件或URL
|
|
291
|
+
|
|
292
|
+
「功能」:获取指定照片的媒体内容/访问地址,支持输出 URL、base64、或保存到本地文件。
|
|
293
|
+
|
|
294
|
+
「格式」:`medias get [--photo-id 照片ID] [--size small|medium|large] [--format url|base64|file] [--output 文件路径]`
|
|
295
|
+
|
|
296
|
+
「参数说明」:
|
|
297
|
+
|
|
298
|
+
- `--photo-id`:照片 ID(默认 100)
|
|
299
|
+
- `--size`:照片质量/尺寸(默认 medium,可选:small、medium、large)
|
|
300
|
+
- `--format`:输出格式(默认 url(可以把链接插入到HTML页面或者markdown文件),可选:url、base64、file)
|
|
301
|
+
- `--output`:输出文件路径(仅当 `--format file` 时必填)
|
|
302
|
+
|
|
303
|
+
「示例」:
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
# 输出 URL(large 输出原图URL,small/medium 输出缩略图URL)
|
|
307
|
+
trailsnap medias get --photo-id 10001 --format url --size large
|
|
308
|
+
|
|
309
|
+
# base64 输出(缩略图base64编码)
|
|
310
|
+
trailsnap medias get --photo-id 10001 --format base64 --size medium
|
|
311
|
+
|
|
312
|
+
# 保存到本地文件
|
|
313
|
+
trailsnap medias get --photo-id 10001 --format file --output .\photo_10001.jpg
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
# 十、注意事项
|
|
317
|
+
|
|
318
|
+
- 所有涉及 API 交互的命令(photos、locations、people 等),必须先执行 `config set` 配置 API URL 和 Token,否则会提示 `错误: API URL 和 Token 未配置,请先运行 'config' 命令。` 并退出。
|
|
319
|
+
|
|
320
|
+
- 所有命令可通过 `--help` 查询详细用法,若参数错误,会提示具体错误信息及正确格式。
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
# TrailSnap CLI 命令说明书
|
|
2
|
+
|
|
3
|
+
本文档详细说明 TrailSnap CLI 命令行工具的所有可用命令、参数用法、功能描述及使用示例,适用于快速上手操作。命令结构遵循「主命令 + 子命令 + 参数」。
|
|
4
|
+
|
|
5
|
+
核心说明:所有命令需在终端执行,格式统一为 `trailsnap <command> <subcommand> [options]`。涉及 API 交互的命令(如 photos、locations 等)需先通过 `config set` 配置 API 地址和 Token,否则会直接报错并退出。
|
|
6
|
+
|
|
7
|
+
## 输出格式参数
|
|
8
|
+
|
|
9
|
+
所有支持数据输出的命令均支持 `--format` 参数,可选值:
|
|
10
|
+
|
|
11
|
+
- `--format json`(默认):完整 JSON 响应
|
|
12
|
+
- `--format pretty`:人性化格式输出,树状结构展示
|
|
13
|
+
- `--format table`:易读表格格式
|
|
14
|
+
- `--format ndjson`:换行分隔 JSON(适合管道处理)
|
|
15
|
+
- `--format csv`:逗号分隔值(适合导入 Excel)
|
|
16
|
+
|
|
17
|
+
# 一、基础命令
|
|
18
|
+
|
|
19
|
+
## 1.1 help - 显示帮助信息
|
|
20
|
+
|
|
21
|
+
「功能」:显示所有可用命令、命令结构及各命令的核心参数,快速查阅命令用法。
|
|
22
|
+
「格式」:`--help`
|
|
23
|
+
「示例」:
|
|
24
|
+
```bash
|
|
25
|
+
trailsnap --help
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
# 二、配置命令
|
|
29
|
+
|
|
30
|
+
## 2.1 config set - 配置API URL和Token
|
|
31
|
+
|
|
32
|
+
「功能」:配置CLI工具与后端API的连接信息,包括API基础地址和Bearer凭证Token,是所有API交互类命令的前置操作。
|
|
33
|
+
|
|
34
|
+
「格式」:`config set --url API地址 --token API凭证`
|
|
35
|
+
|
|
36
|
+
「参数说明」:
|
|
37
|
+
|
|
38
|
+
- `--url`(必填):API基础地址,格式为http/https开头,例如:http://localhost:8000
|
|
39
|
+
|
|
40
|
+
- `--token`(必填):API访问凭证(Bearer Token),用于身份验证,需从后端获取。
|
|
41
|
+
|
|
42
|
+
「示例」:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
trailsnap config set --url http://localhost:8000 --token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
「输出说明」:配置成功后会输出配置文件保存路径(写入同目录 `.env`),例如:`配置已保存到 .../.env`。
|
|
49
|
+
|
|
50
|
+
# 三、照片管理命令
|
|
51
|
+
|
|
52
|
+
## 3.1 photos - 照片管理主命令
|
|
53
|
+
|
|
54
|
+
「功能」:包含照片列表查询、单张照片详情获取、照片删除三个核心子命令,所有子命令需先完成API配置。
|
|
55
|
+
|
|
56
|
+
### 3.1.1 photos list - 查询照片列表
|
|
57
|
+
|
|
58
|
+
「功能」:查询照片列表,支持分页与按相册/地点/设备信息过滤。返回结果为简化字段集合。
|
|
59
|
+
|
|
60
|
+
「格式」:`photos list [--skip N] [--limit N] [--album-id 相册ID] [--city 城市] [--province 省份] [--make 品牌] [--model 型号] [--format json|pretty|table|ndjson|csv]`
|
|
61
|
+
|
|
62
|
+
「参数说明」(支持组合筛选):
|
|
63
|
+
|
|
64
|
+
- `--skip`:跳过 N 张照片(默认 0)
|
|
65
|
+
- `--limit`:限制返回 N 张照片(默认 10)
|
|
66
|
+
- `--order_by`:排序字段,默认按值得回忆评分排序,可选值:quality_score(画面质量评分),memory_score(值得回忆评分),photo_time(拍摄时间)
|
|
67
|
+
- `--image-type`:按图片类型过滤照片,多个类型用逗号分隔,可选值:Camera(手机或相机拍摄)、Screenshot(截图)、Other(未知的其他类型)
|
|
68
|
+
- `--start-time`:按开始时间过滤照片,格式为 YYYY-MM-DD HH:MM:SS
|
|
69
|
+
- `--end-time`:按结束时间过滤照片,格式为 YYYY-MM-DD HH:MM:SS
|
|
70
|
+
- `--album-id`:按相册 ID 过滤,多个 ID 用逗号分隔
|
|
71
|
+
- `--people-id`:按人物 ID 过滤,多个 ID 用逗号分隔
|
|
72
|
+
- `--tag-id`:按标签 ID 过滤,多个 ID 用逗号分隔
|
|
73
|
+
- `--city`:按城市过滤,多个城市用逗号分隔(全称)
|
|
74
|
+
- `--province`:按省份过滤,多个省份用逗号分隔(全称)
|
|
75
|
+
- `--scene`:按景区过滤,多个景区用逗号分隔
|
|
76
|
+
- `--make`:按相机品牌过滤,多个品牌用逗号分隔
|
|
77
|
+
- `--model`:按相机型号过滤,多个型号用逗号分隔
|
|
78
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
79
|
+
|
|
80
|
+
「返回值」:JSON 数组,每项包含 `id`、`filename`、`file_type`、`photo_time`
|
|
81
|
+
|
|
82
|
+
「示例」:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
trailsnap photos list --limit 20 --city 西安市,上海市
|
|
86
|
+
trailsnap photos list --limit 20 --format pretty
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 3.1.2 photos info - 获取单张照片信息
|
|
90
|
+
|
|
91
|
+
「功能」:获取指定 ID 照片的元数据信息与内容描述信息。
|
|
92
|
+
|
|
93
|
+
「格式」:`photos info --photo-id 照片ID [--format json|pretty|table|ndjson|csv]`
|
|
94
|
+
|
|
95
|
+
「参数说明」:
|
|
96
|
+
|
|
97
|
+
- `--photo-id`(必填):照片唯一ID,可通过photos list命令获取。
|
|
98
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
99
|
+
|
|
100
|
+
「返回值」:JSON 对象,包含:
|
|
101
|
+
|
|
102
|
+
- `address`:照片详细拍摄地址(精确到街道)
|
|
103
|
+
- `albums`:所属相册信息
|
|
104
|
+
- `tags`:标签信息
|
|
105
|
+
- `faces_identities`:人物(面部识别身份)信息
|
|
106
|
+
- `description`:照片内容描述信息
|
|
107
|
+
- `description`:照片画面描述(若无则为空字符串)
|
|
108
|
+
- `memory_score`:照片值得回忆分数(0-100,100为值得回忆)
|
|
109
|
+
- `quality_score`:照片质量分数(0-100,100为最高质量)
|
|
110
|
+
- `narrative`:照片一句话文案(若无则为空字符串)
|
|
111
|
+
|
|
112
|
+
「示例」:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
trailsnap photos info --photo-id 10001
|
|
116
|
+
trailsnap photos info --photo-id 10001 --format pretty
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 3.1.3 photos delete - 删除单张照片
|
|
120
|
+
|
|
121
|
+
「功能」:删除指定ID的照片,删除后不可恢复(需谨慎操作)。
|
|
122
|
+
|
|
123
|
+
「格式」:`photos delete --photo-id 照片ID`
|
|
124
|
+
|
|
125
|
+
「参数说明」:
|
|
126
|
+
|
|
127
|
+
- `--photo-id`(必填):需删除的照片唯一ID。
|
|
128
|
+
|
|
129
|
+
「示例」:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
trailsnap photos delete --photo-id 10001
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
「输出说明」:删除成功提示 `照片 <photo-id> 删除成功`,失败提示 `照片删除失败或不存在`。
|
|
136
|
+
|
|
137
|
+
# 四、分类标签命令
|
|
138
|
+
|
|
139
|
+
## 4.1 tags list - 查询分类标签
|
|
140
|
+
|
|
141
|
+
「功能」:查询分类标签列表,支持分页。
|
|
142
|
+
|
|
143
|
+
「格式」:`tags list [--skip N] [--limit N] [--format json|pretty|table|ndjson|csv]`
|
|
144
|
+
|
|
145
|
+
「参数说明」:
|
|
146
|
+
|
|
147
|
+
- `--skip`:跳过 N 个记录(默认 0)
|
|
148
|
+
- `--limit`:限制返回 N 个记录(默认 100)
|
|
149
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
150
|
+
|
|
151
|
+
「示例」:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
trailsnap tags list
|
|
155
|
+
trailsnap tags list --format table
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
「输出说明」:输出 JSON 数组,每项包含 `id`、`name`(tag_name)、`count`。
|
|
159
|
+
|
|
160
|
+
# 五、相册管理命令
|
|
161
|
+
|
|
162
|
+
## 5.1 albums list - 查询相册列表
|
|
163
|
+
|
|
164
|
+
「功能」:查询相册列表,支持分页。
|
|
165
|
+
|
|
166
|
+
「格式」:`albums list [--skip N] [--limit N] [--format json|pretty|table|ndjson|csv]`
|
|
167
|
+
|
|
168
|
+
「参数说明」:
|
|
169
|
+
|
|
170
|
+
- `--skip`:跳过 N 个相册(默认 0)
|
|
171
|
+
- `--limit`:限制返回 N 个相册(默认 100)
|
|
172
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
173
|
+
|
|
174
|
+
「输出说明」:输出 JSON 数组,每项包含 `id`、`name`、`count`(num_photos)、`description`、`condition`、`type`。
|
|
175
|
+
|
|
176
|
+
「示例」:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
trailsnap albums list
|
|
180
|
+
trailsnap albums list --format pretty
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
# 六、位置相关命令
|
|
184
|
+
|
|
185
|
+
## 6.1 locations - 位置查询主命令
|
|
186
|
+
|
|
187
|
+
「功能」:包含位置分布查询、足迹时间轴查询两个子命令,基于照片的GPS信息统计。
|
|
188
|
+
|
|
189
|
+
### 6.1.1 locations list - 查询位置分布
|
|
190
|
+
|
|
191
|
+
「功能」:查询位置分布,不含时间信息(地点名、照片数量)。支持按层级分组与日期范围过滤。
|
|
192
|
+
|
|
193
|
+
「格式」:`locations list [--level city|province|district|scene] [--skip N] [--limit N] [--start-date YYYY-MM-DD] [--end-date YYYY-MM-DD] [--format json|pretty|table|ndjson|csv]`
|
|
194
|
+
|
|
195
|
+
「参数说明」:
|
|
196
|
+
|
|
197
|
+
- `--level`:分组级别(默认 city,可选:city、province、district、scene)
|
|
198
|
+
- `--skip`:跳过 N 个位置(默认 0)
|
|
199
|
+
- `--limit`:限制返回 N 个位置(默认 100)
|
|
200
|
+
- `--start-date`:可选,开始日期(YYYY-MM-DD)
|
|
201
|
+
- `--end-date`:可选,结束日期(YYYY-MM-DD)
|
|
202
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
203
|
+
|
|
204
|
+
「返回值」:JSON 数组,每项包含 `name`、`count`
|
|
205
|
+
|
|
206
|
+
「示例」:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
trailsnap locations list
|
|
210
|
+
trailsnap locations list --format table
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 6.1.2 locations timeline - 查询足迹时间轴
|
|
214
|
+
|
|
215
|
+
「功能」:查询足迹时间轴列表,按时间段和地点分组(开始日期、结束日期、地点名、照片数量)。支持按层级分组与日期范围过滤。
|
|
216
|
+
|
|
217
|
+
「格式」:`locations timeline [--level city|province|district|scene] [--skip N] [--limit N] [--start-date YYYY-MM-DD] [--end-date YYYY-MM-DD] [--format json|pretty|table|ndjson|csv]`
|
|
218
|
+
|
|
219
|
+
「参数说明」:
|
|
220
|
+
|
|
221
|
+
- `--level`:分组级别(默认 city,可选:city、province、district、scene)
|
|
222
|
+
- `--skip`:跳过 N 个位置(默认 0)
|
|
223
|
+
- `--limit`:限制返回 N 个位置(默认 100)
|
|
224
|
+
- `--start-date`:可选,开始日期(YYYY-MM-DD)
|
|
225
|
+
- `--end-date`:可选,结束日期(YYYY-MM-DD)
|
|
226
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
227
|
+
|
|
228
|
+
「返回值」:JSON 数组,每项包含 `startDate`、`endDate`、`locationName`、`count`
|
|
229
|
+
|
|
230
|
+
「示例」:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
trailsnap locations timeline --level city --start-date 2025-01-01 --end-date 2025-06-30
|
|
234
|
+
trailsnap locations timeline --format csv
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
# 七、人物识别命令
|
|
238
|
+
|
|
239
|
+
## 7.1 people list - 查询已识别的人物/面孔
|
|
240
|
+
|
|
241
|
+
「功能」:查询人物(面部识别身份)列表,支持按类型过滤。
|
|
242
|
+
|
|
243
|
+
「格式」:`people list [--limit N] [--types named,unnamed,hidden] [--format json|pretty|table|ndjson|csv]`
|
|
244
|
+
|
|
245
|
+
「参数说明」:
|
|
246
|
+
|
|
247
|
+
- `--limit`:返回的记录数(默认 100)
|
|
248
|
+
- `--types`:查询类型,逗号分隔,默认 `named`;可选值:`named`、`unnamed`、`hidden`
|
|
249
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
250
|
+
|
|
251
|
+
「输出说明」:输出 JSON 数组,每项包含 `id`、`name`(identity_name)、`tags`、`description`、`face_count`。
|
|
252
|
+
|
|
253
|
+
「示例」:
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
trailsnap people list
|
|
257
|
+
trailsnap people list --format ndjson
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
# 八、存储文件夹命令
|
|
261
|
+
|
|
262
|
+
## 8.1 folders list - 查询挂载的存储文件夹列表
|
|
263
|
+
|
|
264
|
+
「功能」:查询系统中已挂载的存储目录信息。
|
|
265
|
+
|
|
266
|
+
「格式」:`folders list [--format json|pretty|table|ndjson|csv]`
|
|
267
|
+
|
|
268
|
+
「参数说明」:
|
|
269
|
+
|
|
270
|
+
- `--format`:输出格式(默认 json,可选:json、pretty、table、ndjson、csv)
|
|
271
|
+
|
|
272
|
+
「输出说明」:直接输出后端接口返回的 JSON(字段结构以服务端为准)。
|
|
273
|
+
|
|
274
|
+
「示例」:
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
trailsnap folders list
|
|
278
|
+
trailsnap folders list --format pretty
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
# 九、媒体文件命令
|
|
282
|
+
|
|
283
|
+
## 9.1 medias get - 获取照片的媒体文件或URL
|
|
284
|
+
|
|
285
|
+
「功能」:获取指定照片的媒体内容/访问地址,支持输出 URL、base64、或保存到本地文件。
|
|
286
|
+
|
|
287
|
+
「格式」:`medias get [--photo-id 照片ID] [--size small|medium|large] [--format url|base64|file] [--output 文件路径]`
|
|
288
|
+
|
|
289
|
+
「参数说明」:
|
|
290
|
+
|
|
291
|
+
- `--photo-id`:照片 ID(默认 100)
|
|
292
|
+
- `--size`:照片质量/尺寸(默认 medium,可选:small、medium、large)
|
|
293
|
+
- `--format`:输出格式(默认 url(可以把链接插入到HTML页面或者markdown文件),可选:url、base64、file)
|
|
294
|
+
- `--output`:输出文件路径(仅当 `--format file` 时必填)
|
|
295
|
+
|
|
296
|
+
「示例」:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
# 输出 URL(large 输出原图URL,small/medium 输出缩略图URL)
|
|
300
|
+
trailsnap medias get --photo-id 10001 --format url --size large
|
|
301
|
+
|
|
302
|
+
# base64 输出(缩略图base64编码)
|
|
303
|
+
trailsnap medias get --photo-id 10001 --format base64 --size medium
|
|
304
|
+
|
|
305
|
+
# 保存到本地文件
|
|
306
|
+
trailsnap medias get --photo-id 10001 --format file --output .\photo_10001.jpg
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
# 十、注意事项
|
|
310
|
+
|
|
311
|
+
- 所有涉及 API 交互的命令(photos、locations、people 等),必须先执行 `config set` 配置 API URL 和 Token,否则会提示 `错误: API URL 和 Token 未配置,请先运行 'config' 命令。` 并退出。
|
|
312
|
+
|
|
313
|
+
- 所有命令可通过 `--help` 查询详细用法,若参数错误,会提示具体错误信息及正确格式。
|
|
@@ -6,8 +6,9 @@ from pathlib import Path
|
|
|
6
6
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
7
7
|
|
|
8
8
|
from commands import config, photos, tags, albums, locations, people, folders, medias
|
|
9
|
+
from output import set_formatter, OutputFormatter
|
|
9
10
|
|
|
10
|
-
VERSION = "0.3.
|
|
11
|
+
VERSION = "0.3.10"
|
|
11
12
|
|
|
12
13
|
def main():
|
|
13
14
|
if hasattr(sys.stdout, "reconfigure"):
|
|
@@ -20,6 +21,13 @@ def main():
|
|
|
20
21
|
subparsers.required = True
|
|
21
22
|
|
|
22
23
|
parser.add_argument("-v", "--version", action="version", version=VERSION)
|
|
24
|
+
parser.add_argument(
|
|
25
|
+
"--format",
|
|
26
|
+
type=str,
|
|
27
|
+
default="json",
|
|
28
|
+
choices=OutputFormatter.SUPPORTED_FORMATS,
|
|
29
|
+
help="输出格式: json (完整JSON,默认), pretty (人性化), table (表格), ndjson (换行分隔JSON), csv (逗号分隔值)"
|
|
30
|
+
)
|
|
23
31
|
|
|
24
32
|
# 注册各个子命令
|
|
25
33
|
config.setup_parser(subparsers)
|
|
@@ -33,6 +41,9 @@ def main():
|
|
|
33
41
|
|
|
34
42
|
args = parser.parse_args()
|
|
35
43
|
|
|
44
|
+
# 设置全局输出格式
|
|
45
|
+
set_formatter(args.format)
|
|
46
|
+
|
|
36
47
|
# 执行对应的命令处理函数
|
|
37
48
|
if hasattr(args, "func"):
|
|
38
49
|
args.func(args)
|