Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Dictionary Logger

配置

  • 打开Automator,新建 服务
  • 添加 运行AppleScript
  • 复制DicLog的内容到AppleScript中
  • 保存
  • 打开系统偏好设置>键盘>快捷键 找到刚刚保存的名字设置快捷键

使用

  • 选定文本,按快捷键。
  • 所有查询的文本会自动保存到桌面上的DictLogger.txt
  • 保存位置和名称可以自行修改脚本
# © McUsr/MacUser06 2012
on run {input, parameters}
set glossaryName to "DictLogger.txt"
set AutomatorIcon to (a reference to file ((path to applications folder as text) & "Automator.app:Contents:Resources:Automator.icns"))
# checks to see if the current selection contains anything valid
considering diacriticals
if first character of (input as text) is not in "abcdefghijklmnopqrstuvwxyz" then
tell application "System Events" to set appname to name of first process whose frontmost is true
using terms from application "Finder"
tell application appname
display dialog "The selection you tried to look up a dictionary definiton for contains non-valid characters.
Please copy the selection you used into an empty text document to figure out what is wrong.
Quitting for now…" with title "Dictionary Logging Service" buttons {"Ok"} default button 1 with icon AutomatorIcon
end tell
end using terms from
return input
end if
end considering
try
open location "dict://" & input
end try
tell application "TextEdit"
try
set glossaryDoc to its document glossaryName
on error
set glossaryDoc to null
end try
end tell
try
set theF to quoted form of (POSIX path of (path to desktop folder as text) & glossaryName)
end try
set foundword to true
try
do shell script "test -f " & theF & " || touch " & theF
set foundword to (do shell script "grep '^" & input & "$' " & theF & ">/dev/null && echo \"true\" || echo \"false\"") as boolean
end try
if not foundword then
if glossaryDoc is not null then
tell application "TextEdit"
tell its document glossaryName
make new paragraph at beginning of its text with data ((input as text) & linefeed)
end tell
save glossaryDoc
end tell
else
try
do shell script "export TMPFILE=`mktemp /tmp/${tempfoo}.XXXXXX` && cat " & theF & " >$TMPFILE ; echo " & input & ">|" & theF & " ; cat $TMPFILE >>" & theF
end try
end if
end if
do shell script "open -b \"com.apple.Dictionary\""
return input
end run
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment