diff --git a/.gitignore b/.gitignore index 1fe3530..08ea269 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.pyc history.log -youdao_cookie \ No newline at end of file +youdao_cookie +.DS_Store diff --git a/README.md b/README.md index 42b865d..ed24f4e 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # whyliam.workflows.youdao -## 有道翻译 workflow v2.2.1 +## 有道翻译 workflow v2.2.2 默认快捷键 `yd`,查看翻译结果。 @@ -24,17 +24,17 @@ ### 下载 -[点击下载](https://github.com/liszd/whyliam.workflows.youdao/releases/download/2.2.1/whyliam.workflows.youdao.alfredworkflow) +[点击下载](https://github.com/whyliam/whyliam.workflows.youdao/releases/download/2.2.2/whyliam.workflows.youdao.alfredworkflow) ### 安装 -1\. [下载](https://github.com/liszd/whyliam.workflows.youdao/releases)最新版本双击安装 +1\. [下载](https://github.com/whyliam/whyliam.workflows.youdao/releases)最新版本双击安装 **老版本有道** -2\. [注册](http://fanyi.youdao.com/openapi?path=data-mode)有道翻译API +2\. [注册](http://fanyi.youdao.com/openapi?path=data-mode)有道翻译 API -3\. 在Alfred的设置中填入对应的`Key`和`Keyfrom` +3\. 在 Alfred 的设置中填入对应的`Key`和`Keyfrom` ![](http://ww2.sinaimg.cn/large/006tNbRwgy1feno2vevklj31a30os0u5.jpg) @@ -42,11 +42,11 @@ 2\. [注册](http://ai.youdao.com/appmgr.s)有道智云应用 -3\. 在Alfred的设置中填入对应的`应用ID`和`应用密钥` +3\. 在 Alfred 的设置中填入对应的`应用ID`和`应用密钥` ![](https://ws2.sinaimg.cn/large/006tKfTcgy1fiosfttuejj31kw0vb493.jpg) -4\. 在Alfred的设置中设置快捷方式键 +4\. 在 Alfred 的设置中设置快捷方式键 ![](http://ww2.sinaimg.cn/large/006tNbRwgy1feno6pzaxdj31a60p0jsl.jpg) ### 问题 diff --git a/info.plist b/info.plist index 82df5e7..809481d 100755 --- a/info.plist +++ b/info.plist @@ -4,6 +4,8 @@ bundleid whyliam.workflows.youdao + category + Tools connections 27E60581-8105-41DD-8E29-4FE811179098 @@ -132,7 +134,7 @@ escaping 35 script - /usr/bin/python splitargs.py "{query}" 0 + /usr/bin/python splitargs.py "{query}" "search" scriptargtype 0 scriptfile @@ -174,7 +176,7 @@ escaping 35 script - /usr/bin/python splitargs.py "{query}" 2 + /usr/bin/python splitargs.py "{query}" "pronounce" scriptargtype 0 scriptfile @@ -261,7 +263,7 @@ escaping 32 script - /usr/bin/python splitargs.py "{query}" 1 + /usr/bin/python splitargs.py "{query}" "copy" scriptargtype 0 scriptfile @@ -284,7 +286,7 @@ escaping 32 script - /usr/bin/python splitargs.py "{query}" 1 + /usr/bin/python splitargs.py "{query}" "copy" scriptargtype 0 scriptfile @@ -389,7 +391,7 @@ readme - 有道翻译 Workflow v2.2.1 + 有道翻译 Workflow v2.2.2 默认快捷键 yd, 查看翻译结果。 @@ -520,8 +522,8 @@ zhiyun_key version - 2.2.1 + 2.2.2 webaddress - https://github.com/liszd/whyliam.workflows.youdao + https://github.com/whyliam/whyliam.workflows.youdao diff --git a/splitargs.py b/splitargs.py index 8b3b060..6b77a92 100755 --- a/splitargs.py +++ b/splitargs.py @@ -10,22 +10,27 @@ def getargs(wf): query = sys.argv[1] query = query.split('$%') - part = int(sys.argv[2]) + operation = str(sys.argv[2]) - if query[4]: + # 是否有更新 + if query[4] == 'update': + wf.start_update() + # 是否有错误 + elif query[4] == 'error': import webbrowser - new = 2 url = "https://blog.naaln.com/2017/04/alfred-youdao-intro/" - webbrowser.open(url, new=new) - return 0 + webbrowser.open(url) + return + elif query[4] != '': + return - if part == 0: + if operation == 'search': # 查询的单词 sys.stdout.write(query[0].strip()) - elif part == 1: + elif operation == 'copy': # 翻译的结果 sys.stdout.write(query[1].strip()) - elif part == 2: + elif operation == "pronounce": # 发音 if query[2]: bashCommand = "say --voice='Samantha' " + query[2] @@ -36,5 +41,7 @@ def getargs(wf): if __name__ == '__main__': - wf = Workflow3() + wf = Workflow3(update_settings={ + 'github_slug': 'whyliam/whyliam.workflows.youdao', + }) sys.exit(wf.run(getargs)) diff --git a/version b/version index fae692e..7e541ae 100755 --- a/version +++ b/version @@ -1 +1 @@ -2.2.1 \ No newline at end of file +2.2.2 \ No newline at end of file diff --git a/whyliam.workflows.youdao.alfredworkflow b/whyliam.workflows.youdao.alfredworkflow index 1e1135e..1113922 100644 Binary files a/whyliam.workflows.youdao.alfredworkflow and b/whyliam.workflows.youdao.alfredworkflow differ diff --git a/youdao.py b/youdao.py index fa44de6..0eabf48 100755 --- a/youdao.py +++ b/youdao.py @@ -154,17 +154,23 @@ def get_history_data(): arg=line['arg'], valid=True, icon=line['icon']) -def check_Update(): +def is_expired(): # 检查更新 if wf.update_available: - workflow.update.install_update() - arg = ['', '', '', '', 'error'] + arg = ['', '', '', '', 'update'] arg = '$%'.join(arg) wf.add_item( - title='有新版本更新', subtitle='', arg=arg, + title='马上更新', subtitle='有新版本更新', arg=arg, valid=True, icon=ICON_UPDATE) - else: - wf.add_item('有道翻译') + + arg = ['', '', '', '', 'not_update'] + arg = '$%'.join(arg) + wf.add_item( + title='暂不更新', subtitle='有新版本更新', arg=arg, + valid=True, icon=ICON_ERROR) + wf.send_feedback() + return True + return False def is_English(query): @@ -176,7 +182,7 @@ def is_English(query): return True -def get_translation(query, isEnglish, rt): +def add_translation(query, isEnglish, rt): # 翻译结果 subtitle = '翻译结果' translations = rt["translation"] @@ -192,7 +198,7 @@ def get_translation(query, isEnglish, rt): valid=True, icon=ICON_DEFAULT) -def get_phonetic(query, isEnglish, rt): +def add_phonetic(query, isEnglish, rt): # 发音 if u'basic' in rt.keys(): if rt["basic"] != None: @@ -212,7 +218,7 @@ def get_phonetic(query, isEnglish, rt): valid=True, icon=ICON_PHONETIC) -def get_explains(query, isEnglish, rt): +def add_explains(query, isEnglish, rt): # 简明释意 if u'basic' in rt.keys(): if rt["basic"] != None: @@ -227,7 +233,7 @@ def get_explains(query, isEnglish, rt): valid=True, icon=ICON_PHONETIC) -def get_web_translation(query, isEnglish, rt): +def add_web_translation(query, isEnglish, rt): # 网络翻译 if u'web' in rt.keys(): if rt["web"] != None: @@ -250,14 +256,13 @@ def get_web_translation(query, isEnglish, rt): def main(wf): + if is_expired(): + return + query = wf.args[0].strip() if not isinstance(query, unicode): query = query.decode('utf8') - if not query: - check_Update() - wf.send_feedback() - if query == "*": get_history_data() else: @@ -274,10 +279,10 @@ def main(wf): elif errorCode == "0": isEnglish = is_English(query) - get_translation(query, isEnglish, rt) - get_phonetic(query, isEnglish, rt) - get_explains(query, isEnglish, rt) - get_web_translation(query, isEnglish, rt) + add_translation(query, isEnglish, rt) + add_phonetic(query, isEnglish, rt) + add_explains(query, isEnglish, rt) + add_web_translation(query, isEnglish, rt) else: title = '有道也翻译不出来了' @@ -292,7 +297,7 @@ def main(wf): if __name__ == '__main__': wf = Workflow3(update_settings={ - 'github_slug': 'liszd/whyliam.workflows.youdao', + 'github_slug': 'whyliam/whyliam.workflows.youdao', 'frequency': 7 }) sys.exit(wf.run(main))