Skip to content

Commit 4da254c

Browse files
committed
v7.2, add dnsg to list smartgroup, add Option+Enter for dnd to list smartgroup of the selected db
1 parent a02a5ba commit 4da254c

File tree

2 files changed

+166
-30
lines changed

2 files changed

+166
-30
lines changed

getSmartGroupList.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
'use strict';
2+
3+
function run(argv) {
4+
// read environment variables
5+
ObjC.import('stdlib')
6+
let env = $.NSProcessInfo.processInfo.environment;
7+
env = ObjC.unwrap(env)
8+
9+
let selectedDbUUID
10+
let filterOutGroup
11+
12+
if ("selectedDbUUID" in env) { selectedDbUUID = $.getenv('selectedDbUUID') }
13+
if ("filterOutGroup" in env) { filterOutGroup = $.getenv('filterOutGroup').toLowerCase() }
14+
if ("ignoredDbUuidList" in env) {
15+
let ignoredDbUuidList = [];
16+
let tempList = $.getenv('ignoredDbUuidList').split(",");
17+
for (let i = 0; i < tempList.length; i++) {
18+
ignoredDbUuidList.push(tempList[i].replace(/^\s+|\s+$/g, ''))
19+
}
20+
}
21+
22+
let DNt = Application("DEVONthink 3");
23+
let allDB = DNt.databases
24+
25+
// if selectedDbUUID exists, only search in selected db.
26+
if (typeof selectedDbUUID !== 'undefined') {
27+
allDB = { "0": DNt.getDatabaseWithUuid(selectedDbUUID) }
28+
}
29+
let allResult = []
30+
31+
32+
for (let dbIndex in allDB) {
33+
let theDbUUID = allDB[dbIndex].uuid()
34+
35+
36+
// if selectedDbUUID not exists and theDbUUID in ignoredDbUuidList, ignore the db
37+
if ((typeof selectedDbUUID == 'undefined') && (typeof ignoredDbUuidList !== 'undefined') && ignoredDbUuidList.includes(theDbUUID)) {
38+
continue
39+
}
40+
41+
let smartGroupList = allDB[dbIndex].smartGroups()
42+
for (let sgIndex in smartGroupList) {
43+
let item = {
44+
title: smartGroupList[sgIndex].name(),
45+
subtitle: allDB[dbIndex].name(),
46+
arg: smartGroupList[sgIndex].uuid()
47+
}
48+
allResult.push(item)
49+
}
50+
}
51+
52+
if (allResult.length == 0) {
53+
return JSON.stringify({ "items": [{ "title": "No SmartGroup..." }] });
54+
}
55+
56+
return JSON.stringify({ "items": allResult });
57+
}

info.plist

Lines changed: 109 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,16 @@
104104
<key>vitoclose</key>
105105
<false/>
106106
</dict>
107+
<dict>
108+
<key>destinationuid</key>
109+
<string>F781EE2B-548D-4744-8E2B-8847C74E35F3</string>
110+
<key>modifiers</key>
111+
<integer>524288</integer>
112+
<key>modifiersubtext</key>
113+
<string>Press Enter to list all SmartGroups in the database</string>
114+
<key>vitoclose</key>
115+
<false/>
116+
</dict>
107117
</array>
108118
<key>BF865B9C-F658-4400-B041-6F7296568A95</key>
109119
<array/>
@@ -130,6 +140,19 @@
130140
<false/>
131141
</dict>
132142
</array>
143+
<key>F781EE2B-548D-4744-8E2B-8847C74E35F3</key>
144+
<array>
145+
<dict>
146+
<key>destinationuid</key>
147+
<string>C7CBFA98-7135-4918-9F96-C7E039CE2C34</string>
148+
<key>modifiers</key>
149+
<integer>0</integer>
150+
<key>modifiersubtext</key>
151+
<string></string>
152+
<key>vitoclose</key>
153+
<false/>
154+
</dict>
155+
</array>
133156
<key>F904A209-781E-466D-9D44-734E14812CC4</key>
134157
<array>
135158
<dict>
@@ -230,27 +253,6 @@
230253
<key>version</key>
231254
<integer>2</integer>
232255
</dict>
233-
<dict>
234-
<key>config</key>
235-
<dict>
236-
<key>argumenttype</key>
237-
<integer>0</integer>
238-
<key>keyword</key>
239-
<string>dnts</string>
240-
<key>subtext</key>
241-
<string></string>
242-
<key>text</key>
243-
<string>Search in DEVONthink Window</string>
244-
<key>withspace</key>
245-
<true/>
246-
</dict>
247-
<key>type</key>
248-
<string>alfred.workflow.input.keyword</string>
249-
<key>uid</key>
250-
<string>D6ABA7EA-3611-44D1-9507-5160C1033D88</string>
251-
<key>version</key>
252-
<integer>1</integer>
253-
</dict>
254256
<dict>
255257
<key>config</key>
256258
<dict>
@@ -274,6 +276,27 @@
274276
<key>version</key>
275277
<integer>2</integer>
276278
</dict>
279+
<dict>
280+
<key>config</key>
281+
<dict>
282+
<key>argumenttype</key>
283+
<integer>0</integer>
284+
<key>keyword</key>
285+
<string>dnts</string>
286+
<key>subtext</key>
287+
<string></string>
288+
<key>text</key>
289+
<string>Search in DEVONthink Window</string>
290+
<key>withspace</key>
291+
<true/>
292+
</dict>
293+
<key>type</key>
294+
<string>alfred.workflow.input.keyword</string>
295+
<key>uid</key>
296+
<string>D6ABA7EA-3611-44D1-9507-5160C1033D88</string>
297+
<key>version</key>
298+
<integer>1</integer>
299+
</dict>
277300
<dict>
278301
<key>config</key>
279302
<dict>
@@ -582,6 +605,55 @@ open "x-devonthink-item://${1}?reveal=1"</string>
582605
<key>version</key>
583606
<integer>2</integer>
584607
</dict>
608+
<dict>
609+
<key>config</key>
610+
<dict>
611+
<key>alfredfiltersresults</key>
612+
<true/>
613+
<key>alfredfiltersresultsmatchmode</key>
614+
<integer>0</integer>
615+
<key>argumenttreatemptyqueryasnil</key>
616+
<true/>
617+
<key>argumenttrimmode</key>
618+
<integer>0</integer>
619+
<key>argumenttype</key>
620+
<integer>2</integer>
621+
<key>escaping</key>
622+
<integer>102</integer>
623+
<key>keyword</key>
624+
<string>dnsg</string>
625+
<key>queuedelaycustom</key>
626+
<integer>3</integer>
627+
<key>queuedelayimmediatelyinitially</key>
628+
<true/>
629+
<key>queuedelaymode</key>
630+
<integer>0</integer>
631+
<key>queuemode</key>
632+
<integer>1</integer>
633+
<key>runningsubtext</key>
634+
<string></string>
635+
<key>script</key>
636+
<string>/usr/bin/osascript -l JavaScript getSmartGroupList.js</string>
637+
<key>scriptargtype</key>
638+
<integer>1</integer>
639+
<key>scriptfile</key>
640+
<string></string>
641+
<key>subtext</key>
642+
<string>{var:selectedDbName}</string>
643+
<key>title</key>
644+
<string>List Smart Group</string>
645+
<key>type</key>
646+
<integer>0</integer>
647+
<key>withspace</key>
648+
<false/>
649+
</dict>
650+
<key>type</key>
651+
<string>alfred.workflow.input.scriptfilter</string>
652+
<key>uid</key>
653+
<string>F781EE2B-548D-4744-8E2B-8847C74E35F3</string>
654+
<key>version</key>
655+
<integer>3</integer>
656+
</dict>
585657
<dict>
586658
<key>config</key>
587659
<dict>
@@ -706,9 +778,9 @@ open "x-devonthink-item://${1}?reveal=1"</string>
706778
<key>14E972F8-F5D6-48D5-A7F9-C51A25612D37</key>
707779
<dict>
708780
<key>xpos</key>
709-
<integer>555</integer>
781+
<integer>570</integer>
710782
<key>ypos</key>
711-
<integer>715</integer>
783+
<integer>855</integer>
712784
</dict>
713785
<key>23253F9B-2A9D-45AE-A8FA-4CF8E6FE54BF</key>
714786
<dict>
@@ -720,16 +792,16 @@ open "x-devonthink-item://${1}?reveal=1"</string>
720792
<key>2D684BD7-1242-42F0-8AA4-C968A5285FD5</key>
721793
<dict>
722794
<key>xpos</key>
723-
<integer>275</integer>
795+
<integer>290</integer>
724796
<key>ypos</key>
725-
<integer>855</integer>
797+
<integer>995</integer>
726798
</dict>
727799
<key>463F4584-47AD-4B3E-B822-3D194043A268</key>
728800
<dict>
729801
<key>xpos</key>
730-
<integer>555</integer>
802+
<integer>570</integer>
731803
<key>ypos</key>
732-
<integer>855</integer>
804+
<integer>995</integer>
733805
</dict>
734806
<key>47CC5D06-A175-47C9-A53A-5D24BC92CD4A</key>
735807
<dict>
@@ -757,9 +829,9 @@ open "x-devonthink-item://${1}?reveal=1"</string>
757829
<key>8C14689F-1120-4E3C-9F18-CAF004A01508</key>
758830
<dict>
759831
<key>xpos</key>
760-
<integer>275</integer>
832+
<integer>290</integer>
761833
<key>ypos</key>
762-
<integer>715</integer>
834+
<integer>855</integer>
763835
</dict>
764836
<key>9EEF7907-7DA3-4BE4-96A7-8A961EB449BA</key>
765837
<dict>
@@ -800,6 +872,13 @@ open "x-devonthink-item://${1}?reveal=1"</string>
800872
<key>ypos</key>
801873
<integer>135</integer>
802874
</dict>
875+
<key>F781EE2B-548D-4744-8E2B-8847C74E35F3</key>
876+
<dict>
877+
<key>xpos</key>
878+
<integer>275</integer>
879+
<key>ypos</key>
880+
<integer>690</integer>
881+
</dict>
803882
<key>F904A209-781E-466D-9D44-734E14812CC4</key>
804883
<dict>
805884
<key>xpos</key>
@@ -828,7 +907,7 @@ open "x-devonthink-item://${1}?reveal=1"</string>
828907
<string>filterOutGroup</string>
829908
</array>
830909
<key>version</key>
831-
<string>7.1</string>
910+
<string>7.2</string>
832911
<key>webaddress</key>
833912
<string>https://github.com/mpco/AlfredWorkflow-DEVONthink-Search</string>
834913
</dict>

0 commit comments

Comments
 (0)