Skip to content

Commit 2b4f47d

Browse files
committed
Add useful msg bubble
1 parent cb908eb commit 2b4f47d

File tree

91 files changed

+5525
-19
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+5525
-19
lines changed

sources/anki.popclipext/Config.plist

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
<string>anki.png</string>
1010
<key>Shell Script File</key>
1111
<string>anki.sh</string>
12+
<key>Regular Expression</key>
13+
<string>(?s)^(\w+?\s*?){1,2}$</string>
1214
<key>Stoppable</key>
1315
<true/>
1416
<key>Title</key>
@@ -61,4 +63,3 @@
6163
<integer>693</integer>
6264
</dict>
6365
</plist>
64-

sources/anki.popclipext/anki.sh

Lines changed: 53 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,40 @@
33
# Created by cdpath on 2018/4/19.
44
# Copyright © 2018 cdpath. All rights reserved.
55

6-
set -e
6+
set -xeuo pipefail
77

8+
9+
## PopClip Env
810
entry=$POPCLIP_TEXT
911
safe_entry=$POPCLIP_URLENCODED_TEXT
1012
dict_svc=$POPCLIP_OPTION_DICT_SVC
1113
target_deck=$POPCLIP_OPTION_TARGET_DECK
1214
tag="PopClip"
1315
app_tag=${POPCLIP_APP_NAME// /_} # replace spaces with underscore
1416

15-
# debug
16-
# entry='debug'
17-
# dict_svc='youdao'
18-
# gubed
17+
18+
## cocoaDialog
19+
dialog() {
20+
./dialog/Contents/MacOS/cocoaDialog bubble \
21+
--title "$1" \
22+
--text "$2" \
23+
--timeout "$3" \
24+
--icon-file anki.png
25+
}
1926

2027

28+
## Dictionary Services
2129
_shanbay()
2230
{
2331
url="https://api.shanbay.com/bdc/search/?word=$safe_entry"
24-
# url="$(echo "${url}" | tr -d '[:space:]')"
25-
curl -sSL $url \
26-
| grep -Eo '"definition":.*?[^\\]",' \
27-
| cut -d: -f 2 | tr -d '"' \
28-
| sed -e 's/,$//g' \
29-
| sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
32+
local definition=$(curl -sSL $url | perl -pe 's/^.*?(?<="definition":)(.*?[^\\]")(?=\,).*?$/$1/' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/^"//' -e 's/"$//')
33+
if [[ $definition = *'"status_code": 1'* ]]; then
34+
echo ''
35+
else
36+
echo ${definition//\\n/<br>}
37+
fi
3038
}
3139

32-
3340
_youdao()
3441
{
3542
url="http://dict.youdao.com/m/search?q=$safe_entry"
@@ -40,25 +47,33 @@ _youdao()
4047
| awk 'ORS="<br>"'
4148
}
4249

43-
4450
look_up()
4551
{
52+
local definition=''
4653
if [ "$dict_svc" = "shanbay" ]
4754
then
48-
_shanbay
55+
definition=$(_shanbay)
4956
elif [ "$dict_svc" = "youdao" ]
5057
then
51-
_youdao
58+
definition=$(_youdao)
5259
else
5360
echo "Not Implemented"
5461
exit 1
5562
fi
63+
64+
if [[ -z "$definition" ]]; then
65+
dialog "$dict_svc" "未找到单词" 3
66+
exit 1
67+
else
68+
echo $definition
69+
fi
5670
}
5771

5872

73+
## AnkiConnect
5974
gen_post_data()
6075
{
61-
cat <<EOF
76+
cat <<EOF
6277
{
6378
"action": "addNote",
6479
"version": 5,
@@ -79,7 +94,27 @@ gen_post_data()
7994
}
8095
EOF
8196
}
82-
8397

84-
curl -X POST -d "$(gen_post_data)" "localhost:8765"
98+
check_result()
99+
{
100+
if [[ $1 != *'"error": null'* ]]; then
101+
if [[ $1 = "null" ]]; then
102+
msg="Invalid post data for AnkiConnect"
103+
else
104+
msg=$(echo "$1" | perl -pe 's/^.*?(?<="error": ")(.*?[^\\])(?=[\."]).*?$/$1/' | sed -e 's/^"//' -e 's/"$//')
105+
fi
106+
dialog "AnkiConnect" "$msg" 5
107+
fi
108+
}
109+
110+
111+
## main
112+
main()
113+
{
114+
local res=$(curl -X POST -d "$(gen_post_data)" "localhost:8765")
115+
check_result "$res"
116+
}
117+
118+
119+
main
85120

Binary file not shown.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#include <Growl/GrowlDefines.h>
2+
3+
#ifdef __OBJC__
4+
# include <Growl/GrowlApplicationBridge.h>
5+
#endif

0 commit comments

Comments
 (0)