-
Notifications
You must be signed in to change notification settings - Fork 37
/
getTagsList.py
34 lines (28 loc) · 967 Bytes
/
getTagsList.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# todo: if not selectedDbUUID,显示所有 tags
# 多个 tag 匹配
import os
import json
import ast
import shlex
import subprocess
selectedDbUUID = os.getenv('selectedDbUUID', "")
cmdScript = "osascript -e 'tell application \"DEVONthink 3\" to get name of tag group of (get database with uuid \"{}\")' -s s".format(selectedDbUUID)
cmdList = shlex.split(cmdScript)
cmdResult = subprocess.check_output(cmdList)
tagList = ast.literal_eval(
"[" + cmdResult[1:-2].decode("UTF8") + "]")
result = {"items": []}
for tag in tagList:
result["items"].append({
"title": tag,
"subtitle": "Press Enter to list all files with this tag",
# "arg": tag,
"variables": {"selectedTag": tag, "selectedDbUUID": selectedDbUUID}
})
if result['items']:
print(json.dumps(result))
else:
# when result list is empty
print('{"items": [{"title": "None Tag","subtitle": "(*´・д・)?"}]}')