From 23413df1268d3dd856470e8ac088939793df1728 Mon Sep 17 00:00:00 2001 From: whyliam Date: Thu, 3 May 2018 00:18:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=8E=86=E5=8F=B2=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 +- history.log | 0 info.plist | 78 ++-- version | 2 +- whyliam.workflows.youdao.alfredworkflow | Bin 226945 -> 235250 bytes workflow/.alfredversionchecked | 0 workflow/Notify.tgz | Bin workflow/__init__.py | 0 workflow/background.py | 120 +++++-- workflow/notify.py | 0 workflow/update.py | 0 workflow/util.py | 457 ++++++++++++++++++++++++ workflow/version | 2 +- workflow/web.py | 0 workflow/workflow.py | 291 +++------------ workflow/workflow3.py | 80 +++-- youdao.py | 110 +++--- 17 files changed, 764 insertions(+), 384 deletions(-) create mode 100644 history.log create mode 100644 workflow/.alfredversionchecked mode change 100644 => 100755 workflow/Notify.tgz mode change 100644 => 100755 workflow/__init__.py mode change 100644 => 100755 workflow/background.py mode change 100644 => 100755 workflow/notify.py mode change 100644 => 100755 workflow/update.py create mode 100755 workflow/util.py mode change 100644 => 100755 workflow/version mode change 100644 => 100755 workflow/web.py mode change 100644 => 100755 workflow/workflow.py mode change 100644 => 100755 workflow/workflow3.py diff --git a/README.md b/README.md index b9cd31a..8abd97b 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # whyliam.workflows.youdao -## 有道翻译 workflow v2.1.1 +## 有道翻译 workflow v2.1.2 默认快捷键 `yd`,查看翻译结果。 @@ -9,6 +9,7 @@ 3. 翻译短语句子 4. 打开有道翻译页面,查看详细内容 5. 直接在打出翻译结果 +6. 显示历史查询记录 ### 功能 @@ -17,10 +18,11 @@ 3. 按`Command ⌘+回车` 直接在打出翻译结果 4. 按`Shift ⇧+回车` 直接发音 5. 选中文字 双击`Option ⌥`进行翻译(需要另行设置) +6. `yd *` 显示历史查询记录 ### 下载 -[点击下载](https://github.com/liszd/whyliam.workflows.youdao/releases/download/2.1.1/whyliam.workflows.youdao.alfredworkflow) +[点击下载](https://github.com/liszd/whyliam.workflows.youdao/releases/download/2.1.2/whyliam.workflows.youdao.alfredworkflow) ### 安装 @@ -47,7 +49,7 @@ ### 问题 -如果新版本有道智云遇到问题,请参见 [错误代码列表](http://ai.youdao.com/docs/api.s#id6)。 +如果新版本有道智云遇到问题,请参见 [错误代码列表](http://ai.youdao.com/docs/doc-trans-api.s#p06)。 ### 演示 diff --git a/history.log b/history.log new file mode 100644 index 0000000..e69de29 diff --git a/info.plist b/info.plist index bd88d19..f3b800b 100755 --- a/info.plist +++ b/info.plist @@ -21,6 +21,8 @@ + 5751065C-52C1-4D19-8F7D-03B730BFE440 + 7C1ABC41-3B36-401F-96C7-30BCB39181FF @@ -171,6 +173,8 @@ alfredfiltersresults + alfredfiltersresultsmatchmode + 0 argumenttrimmode 0 argumenttype @@ -251,39 +255,6 @@ version 2 - - config - - action - 1 - argument - 1 - argumenttext - yd - focusedappvariable - - focusedappvariablename - - hotkey - -1 - hotmod - 524288 - hotstring - double tap - leftcursor - - modsmode - 0 - relatedAppsMode - 0 - - type - alfred.workflow.trigger.hotkey - uid - 5751065C-52C1-4D19-8F7D-03B730BFE440 - version - 2 - config @@ -324,9 +295,42 @@ version 2 + + config + + action + 1 + argument + 1 + argumenttext + yd + focusedappvariable + + focusedappvariablename + + hotkey + 0 + hotmod + 0 + hotstring + + leftcursor + + modsmode + 0 + relatedAppsMode + 0 + + type + alfred.workflow.trigger.hotkey + uid + 5751065C-52C1-4D19-8F7D-03B730BFE440 + version + 2 + readme - 有道翻译 Workflow v2.1.1 + 有道翻译 Workflow v2.1.2 默认快捷键 yd, 查看翻译结果。 @@ -335,6 +339,7 @@ 3. 翻译短语句子 4. 打开有道翻译页面,查看详细内容 5. 直接在打出翻译结果 +6. 显示历史查询记录 功能 @@ -343,6 +348,7 @@ 3. 按`Comman+回车`直接在打出翻译结果 4. 按`Shift+回车`直接发音 5. 选中文字 双击`Command`进行翻译 +6. `yd *` 显示历史查询记录 更多 参见 https://blog.naaln.com/2017/04/alfred-youdao-intro/ @@ -376,7 +382,7 @@ xpos 270 ypos - 430 + 440 6A03FDC5-89AC-4F9D-9456-3762ACA751FE @@ -433,7 +439,7 @@ zhiyun_key version - 2.1.1 + 2.1.2 webaddress https://github.com/liszd/whyliam.workflows.youdao diff --git a/version b/version index 7c32728..8f9174b 100755 --- a/version +++ b/version @@ -1 +1 @@ -2.1.1 \ No newline at end of file +2.1.2 \ No newline at end of file diff --git a/whyliam.workflows.youdao.alfredworkflow b/whyliam.workflows.youdao.alfredworkflow index 2c340aca873d78a24a5d9e967b943fd6c959b855..dad11918a8292c7b019048709d07ccc01d99fc7d 100644 GIT binary patch delta 102420 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 z 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 z

j6MR#@^>Wx=RJmALljcQKXB#gSvt#P?;RxsceNS-tm{B^HA)LKL}*eu$XPHpY~ z!C|qRY4lh`+rB7#>Y{e)&Vtjo+a3h*-v(<5QW=H#5*MwA-c*l>_Qe_Ry$+mrCvlT( z=i>hOq)%~Df!?Kwk7FO>nSv9;GlF80Rvq!2ck2-Dx0`UiclGfmGb$i?ovO>Wi=HW}*H{}2+Dv+RNsX0Rb{nWwg0YNO|%oi)~TaF3r_ zm*J45=6FvG>;3@ik7nB|aSr>o1>Df&t{#dAv-U5yTB#QEsASihV@)F7^xQRSPub}Y z<7dmp9Y@?g4RafV2^Z*Fnhfv;Z8LS|E2ixao9B#fkqoD|rTZ5V_B4msiaJ&iJRc_0 z&7x^qbJhnH=xde^H*dF4QhDf_@P}Fx)WMb5&ZZJeXUdD-VL*|;v-#N*W%znWt>(R* z4cZ@g2hxJO3>GDwF}UPv?z;RF78b@rw-@$cgdS718vpOc1CR%&?tzx$UZb5$Lu`m- zm4ciUm63$Ik@lzC$WR8_$PoafyaJr!^0B!f4}JLG}^%(zJ8e|ju}DuoLe`4B2@)K+Q8t2 zNsx}gByXSWWyuKdFlPb2L0g_&uq60l38eMWFjNt zA9mrLfptYORGd zwUO)qAj;7ROp~GW#UrH1265?&1O}*$w~JU0RY(B1vH;MOv(duGz`@p#rqWl_>`>|s zao6?p)B#Yn06<-iI=My``g3)U6jv%G%AJDZiVc;HDyRYwWek9p9PUgb+`@*mzlNot zurGdL^%)|Md?MX>wrCnp^60nGS-Q9{DAE8+5+EJiB=34Btc(DEbuutf8hz-I4B@zV z4l^?SKXTillo?|K7py1%Xz!l)8No)^&{G)`pTi|18k&?+(X#cMqj1OsbjXXg1H#TH zs%%z&amN64KeCc{;M8FNMvx&J@JU`3goURvF`9&ba~2hP1IoJk&96HO5yTtFYFr{G zG<-w`G$e!>$K-^BAg+I=9{%r2kqUpZ4ZK>i1AwDU4A78^cUlqL&ym$unpXN|n=lGU zO8IaxU!gvkz`{R^vDzq8c?|ic%=vrNByWvBT#yWr=i_IOdL~~}_WAnH@i-C#&C5Ao vVJ4gWJO8_bAd7f83zFSWKxU%*318Kv`M4_}_gerAkoQVu0P22#kZ*qj9w_uT delta 93926 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%0Ak@3_%2aF{@c9& za>rktDCwv;SJNUv06?7r0D$^mx>HjB#~4==!}qk~A2V?Mm1tEr?<4cO39j@20JQ&- z=vC!Ba5lHwiTYUJ(xBuR<`0sf58{Y-KLL9(kS+#dFzdPj9KW6@SaooS-;GOiH7G4UN zycz+4_t&@oiX7JeH$nT)w 0: + if write: # write PID of child process to `pidfile` + tmp = pidfile + '.tmp' + with open(tmp, 'wb') as fp: + fp.write(str(pid)) + os.rename(tmp, pidfile) + if wait: # wait for child process to exit + os.waitpid(pid, 0) os._exit(0) except OSError as err: _log().critical('%s: (%d) %s', errmsg, err.errno, err.strerror) raise err - # Do first fork. - _fork_and_exit_parent('fork #1 failed') + # Do first fork and wait for second fork to finish. + _fork_and_exit_parent('fork #1 failed', wait=True) # Decouple from parent environment. os.chdir(wf().workflowdir) os.setsid() - # Do second fork. - _fork_and_exit_parent('fork #2 failed') + # Do second fork and write PID to pidfile. + _fork_and_exit_parent('fork #2 failed', write=True) # Now I am a daemon! # Redirect standard file descriptors. @@ -151,10 +176,30 @@ def _fork_and_exit_parent(errmsg): os.dup2(se.fileno(), sys.stderr.fileno()) +def kill(name, sig=signal.SIGTERM): + """Send a signal to job ``name`` via :func:`os.kill`. + + .. versionadded:: 1.29 + + Args: + name (str): Name of the job + sig (int, optional): Signal to send (default: SIGTERM) + + Returns: + bool: `False` if job isn't running, `True` if signal was sent. + """ + pid = _job_pid(name) + if pid is None: + return False + + os.kill(pid, sig) + return True + + def run_in_background(name, args, **kwargs): r"""Cache arguments then call this script again via :func:`subprocess.call`. - :param name: name of task + :param name: name of job :type name: unicode :param args: arguments passed as first argument to :func:`subprocess.call` :param \**kwargs: keyword arguments to :func:`subprocess.call` @@ -183,18 +228,20 @@ def run_in_background(name, args, **kwargs): argcache = _arg_cache(name) # Cache arguments - with open(argcache, 'wb') as file_obj: - pickle.dump({'args': args, 'kwargs': kwargs}, file_obj) + with open(argcache, 'wb') as fp: + pickle.dump({'args': args, 'kwargs': kwargs}, fp) _log().debug('[%s] command cached: %s', name, argcache) # Call this script cmd = ['/usr/bin/python', __file__, name] _log().debug('[%s] passing job to background runner: %r', name, cmd) retcode = subprocess.call(cmd) + if retcode: # pragma: no cover - _log().error('[%s] background runner failed with %d', retcode) + _log().error('[%s] background runner failed with %d', name, retcode) else: _log().debug('[%s] background job started', name) + return retcode @@ -209,12 +256,17 @@ def main(wf): # pragma: no cover name = wf.args[0] argcache = _arg_cache(name) if not os.path.exists(argcache): - log.critical('[%s] command cache not found: %r', name, argcache) - return 1 + msg = '[{0}] command cache not found: {1}'.format(name, argcache) + log.critical(msg) + raise IOError(msg) + + # Fork to background and run command + pidfile = _pid_file(name) + _background(pidfile) # Load cached arguments - with open(argcache, 'rb') as file_obj: - data = pickle.load(file_obj) + with open(argcache, 'rb') as fp: + data = pickle.load(fp) # Cached arguments args = data['args'] @@ -223,28 +275,18 @@ def main(wf): # pragma: no cover # Delete argument cache file os.unlink(argcache) - pidfile = _pid_file(name) - - # Fork to background - _background() - - # Write PID to file - with open(pidfile, 'wb') as file_obj: - file_obj.write(str(os.getpid())) - - # Run the command try: + # Run the command log.debug('[%s] running command: %r', name, args) retcode = subprocess.call(args, **kwargs) if retcode: log.error('[%s] command failed with status %d', name, retcode) - finally: - if os.path.exists(pidfile): - os.unlink(pidfile) - log.debug('[%s] job complete', name) + os.unlink(pidfile) + + log.debug('[%s] job complete', name) if __name__ == '__main__': # pragma: no cover diff --git a/workflow/notify.py b/workflow/notify.py old mode 100644 new mode 100755 diff --git a/workflow/update.py b/workflow/update.py old mode 100644 new mode 100755 diff --git a/workflow/util.py b/workflow/util.py new file mode 100755 index 0000000..f00ac36 --- /dev/null +++ b/workflow/util.py @@ -0,0 +1,457 @@ +#!/usr/bin/env python +# encoding: utf-8 +# +# Copyright (c) 2017 Dean Jackson +# +# MIT Licence. See http://opensource.org/licenses/MIT +# +# Created on 2017-12-17 +# + +"""A selection of helper functions useful for building workflows.""" + +from __future__ import print_function, absolute_import + +import atexit +from collections import namedtuple +from contextlib import contextmanager +import errno +import fcntl +import functools +import os +import signal +import subprocess +import sys +from threading import Event +import time + +# AppleScript to call an External Trigger in Alfred +AS_TRIGGER = """ +tell application "Alfred 3" +run trigger "{name}" in workflow "{bundleid}" {arg} +end tell +""" + + +class AcquisitionError(Exception): + """Raised if a lock cannot be acquired.""" + + +AppInfo = namedtuple('AppInfo', ['name', 'path', 'bundleid']) +"""Information about an installed application. + +Returned by :func:`appinfo`. All attributes are Unicode. + +.. py:attribute:: name + + Name of the application, e.g. ``u'Safari'``. + +.. py:attribute:: path + + Path to the application bundle, e.g. ``u'/Applications/Safari.app'``. + +.. py:attribute:: bundleid + + Application's bundle ID, e.g. ``u'com.apple.Safari'``. +""" + + +def unicodify(s, encoding='utf-8', norm=None): + """Ensure string is Unicode. + + .. versionadded:: 1.31 + + Decode encoded strings using ``encoding`` and normalise Unicode + to form ``norm`` if specified. + + Args: + s (str): String to decode. May also be Unicode. + encoding (str, optional): Encoding to use on bytestrings. + norm (None, optional): Normalisation form to apply to Unicode string. + + Returns: + unicode: Decoded, optionally normalised, Unicode string. + + """ + if not isinstance(s, unicode): + s = unicode(s, encoding) + + if norm: + from unicodedata import normalize + s = normalize(norm, s) + + return s + + +def utf8ify(s): + """Ensure string is a bytestring. + + .. versionadded:: 1.31 + + Returns `str` objects unchanced, encodes `unicode` objects to + UTF-8, and calls :func:`str` on anything else. + + Args: + s (object): A Python object + + Returns: + str: UTF-8 string or string representation of s. + """ + if isinstance(s, str): + return s + + if isinstance(s, unicode): + return s.encode('utf-8') + + return str(s) + + +def applescriptify(s): + """Escape string for insertion into an AppleScript string. + + .. versionadded:: 1.31 + + Replaces ``"`` with `"& quote &"`. Use this function if you want + + to insert a string into an AppleScript script: + >>> script = 'tell application "Alfred 3" to search "{}"' + >>> query = 'g "python" test' + >>> script.format(applescriptify(query)) + 'tell application "Alfred 3" to search "g " & quote & "python" & quote & "test"' + + Args: + s (unicode): Unicode string to escape. + + Returns: + unicode: Escaped string + """ + return s.replace(u'"', u'" & quote & "') + + +def run_command(cmd, **kwargs): + """Run a command and return the output. + + .. versionadded:: 1.31 + + A thin wrapper around :func:`subprocess.check_output` that ensures + all arguments are encoded to UTF-8 first. + + Args: + cmd (list): Command arguments to pass to ``check_output``. + **kwargs: Keyword arguments to pass to ``check_output``. + + Returns: + str: Output returned by ``check_output``. + """ + cmd = [utf8ify(s) for s in cmd] + return subprocess.check_output(cmd, **kwargs) + + +def run_applescript(script, *args, **kwargs): + """Execute an AppleScript script and return its output. + + .. versionadded:: 1.31 + + Run AppleScript either by filepath or code. If ``script`` is a valid + filepath, that script will be run, otherwise ``script`` is treated + as code. + + Args: + script (str, optional): Filepath of script or code to run. + *args: Optional command-line arguments to pass to the script. + **kwargs: Pass ``lang`` to run a language other than AppleScript. + + Returns: + str: Output of run command. + + """ + cmd = ['/usr/bin/osascript', '-l', kwargs.get('lang', 'AppleScript')] + + if os.path.exists(script): + cmd += [script] + else: + cmd += ['-e', script] + + cmd.extend(args) + + return run_command(cmd) + + +def run_jxa(script, *args): + """Execute a JXA script and return its output. + + .. versionadded:: 1.31 + + Wrapper around :func:`run_applescript` that passes ``lang=JavaScript``. + + Args: + script (str): Filepath of script or code to run. + *args: Optional command-line arguments to pass to script. + + Returns: + str: Output of script. + """ + return run_applescript(script, *args, lang='JavaScript') + + +def run_trigger(name, bundleid=None, arg=None): + """Call an Alfred External Trigger. + + .. versionadded:: 1.31 + + If ``bundleid`` is not specified, reads the bundle ID of the current + workflow from Alfred's environment variables. + + Args: + name (str): Name of External Trigger to call. + bundleid (str, optional): Bundle ID of workflow trigger belongs to. + arg (str, optional): Argument to pass to trigger. + """ + if not bundleid: + bundleid = os.getenv('alfred_workflow_bundleid') + + if arg: + arg = 'with argument "{}"'.format(applescriptify(arg)) + else: + arg = '' + + script = AS_TRIGGER.format(name=name, bundleid=bundleid, + arg=arg) + + run_applescript(script) + + +def appinfo(name): + """Get information about an installed application. + + .. versionadded:: 1.31 + + Args: + name (str): Name of application to look up. + + Returns: + AppInfo: :class:`AppInfo` tuple or ``None`` if app isn't found. + """ + cmd = ['mdfind', '-onlyin', '/', + '(kMDItemContentTypeTree == com.apple.application &&' + '(kMDItemDisplayName == "{0}" || kMDItemFSName == "{0}.app"))' + .format(name)] + + path = run_command(cmd).strip() + if not path: + return None + + cmd = ['mdls', '-raw', '-name', 'kMDItemCFBundleIdentifier', path] + bid = run_command(cmd).strip() + if not bid: # pragma: no cover + return None + + return AppInfo(unicodify(name), unicodify(path), unicodify(bid)) + + +@contextmanager +def atomic_writer(fpath, mode): + """Atomic file writer. + + .. versionadded:: 1.12 + + Context manager that ensures the file is only written if the write + succeeds. The data is first written to a temporary file. + + :param fpath: path of file to write to. + :type fpath: ``unicode`` + :param mode: sames as for :func:`open` + :type mode: string + + """ + suffix = '.{}.tmp'.format(os.getpid()) + temppath = fpath + suffix + with open(temppath, mode) as fp: + try: + yield fp + os.rename(temppath, fpath) + finally: + try: + os.remove(temppath) + except (OSError, IOError): + pass + + +class LockFile(object): + """Context manager to protect filepaths with lockfiles. + + .. versionadded:: 1.13 + + Creates a lockfile alongside ``protected_path``. Other ``LockFile`` + instances will refuse to lock the same path. + + >>> path = '/path/to/file' + >>> with LockFile(path): + >>> with open(path, 'wb') as fp: + >>> fp.write(data) + + Args: + protected_path (unicode): File to protect with a lockfile + timeout (float, optional): Raises an :class:`AcquisitionError` + if lock cannot be acquired within this number of seconds. + If ``timeout`` is 0 (the default), wait forever. + delay (float, optional): How often to check (in seconds) if + lock has been released. + + Attributes: + delay (float): How often to check (in seconds) whether the lock + can be acquired. + lockfile (unicode): Path of the lockfile. + timeout (float): How long to wait to acquire the lock. + + """ + + def __init__(self, protected_path, timeout=0.0, delay=0.05): + """Create new :class:`LockFile` object.""" + self.lockfile = protected_path + '.lock' + self._lockfile = None + self.timeout = timeout + self.delay = delay + self._lock = Event() + atexit.register(self.release) + + @property + def locked(self): + """``True`` if file is locked by this instance.""" + return self._lock.is_set() + + def acquire(self, blocking=True): + """Acquire the lock if possible. + + If the lock is in use and ``blocking`` is ``False``, return + ``False``. + + Otherwise, check every :attr:`delay` seconds until it acquires + lock or exceeds attr:`timeout` and raises an :class:`AcquisitionError`. + + """ + if self.locked and not blocking: + return False + + start = time.time() + while True: + + # Raise error if we've been waiting too long to acquire the lock + if self.timeout and (time.time() - start) >= self.timeout: + raise AcquisitionError('lock acquisition timed out') + + # If already locked, wait then try again + if self.locked: + time.sleep(self.delay) + continue + + # Create in append mode so we don't lose any contents + if self._lockfile is None: + self._lockfile = open(self.lockfile, 'a') + + # Try to acquire the lock + try: + fcntl.lockf(self._lockfile, fcntl.LOCK_EX | fcntl.LOCK_NB) + self._lock.set() + break + except IOError as err: # pragma: no cover + if err.errno not in (errno.EACCES, errno.EAGAIN): + raise + + # Don't try again + if not blocking: # pragma: no cover + return False + + # Wait, then try again + time.sleep(self.delay) + + return True + + def release(self): + """Release the lock by deleting `self.lockfile`.""" + if not self._lock.is_set(): + return False + + try: + fcntl.lockf(self._lockfile, fcntl.LOCK_UN) + except IOError: # pragma: no cover + pass + finally: + self._lock.clear() + self._lockfile = None + try: + os.unlink(self.lockfile) + except (IOError, OSError): # pragma: no cover + pass + + return True + + def __enter__(self): + """Acquire lock.""" + self.acquire() + return self + + def __exit__(self, typ, value, traceback): + """Release lock.""" + self.release() + + def __del__(self): + """Clear up `self.lockfile`.""" + self.release() # pragma: no cover + + +class uninterruptible(object): + """Decorator that postpones SIGTERM until wrapped function returns. + + .. versionadded:: 1.12 + + .. important:: This decorator is NOT thread-safe. + + As of version 2.7, Alfred allows Script Filters to be killed. If + your workflow is killed in the middle of critical code (e.g. + writing data to disk), this may corrupt your workflow's data. + + Use this decorator to wrap critical functions that *must* complete. + If the script is killed while a wrapped function is executing, + the SIGTERM will be caught and handled after your function has + finished executing. + + Alfred-Workflow uses this internally to ensure its settings, data + and cache writes complete. + + """ + + def __init__(self, func, class_name=''): + """Decorate `func`.""" + self.func = func + functools.update_wrapper(self, func) + self._caught_signal = None + + def signal_handler(self, signum, frame): + """Called when process receives SIGTERM.""" + self._caught_signal = (signum, frame) + + def __call__(self, *args, **kwargs): + """Trap ``SIGTERM`` and call wrapped function.""" + self._caught_signal = None + # Register handler for SIGTERM, then call `self.func` + self.old_signal_handler = signal.getsignal(signal.SIGTERM) + signal.signal(signal.SIGTERM, self.signal_handler) + + self.func(*args, **kwargs) + + # Restore old signal handler + signal.signal(signal.SIGTERM, self.old_signal_handler) + + # Handle any signal caught during execution + if self._caught_signal is not None: + signum, frame = self._caught_signal + if callable(self.old_signal_handler): + self.old_signal_handler(signum, frame) + elif self.old_signal_handler == signal.SIG_DFL: + sys.exit(0) + + def __get__(self, obj=None, klass=None): + """Decorator API.""" + return self.__class__(self.func.__get__(obj, klass), + klass.__name__) diff --git a/workflow/version b/workflow/version old mode 100644 new mode 100755 index ec8f6a3..6de2df8 --- a/workflow/version +++ b/workflow/version @@ -1 +1 @@ -1.27 \ No newline at end of file +1.32 \ No newline at end of file diff --git a/workflow/web.py b/workflow/web.py old mode 100644 new mode 100755 diff --git a/workflow/workflow.py b/workflow/workflow.py old mode 100644 new mode 100755 index 0d2dc4e..c2c1616 --- a/workflow/workflow.py +++ b/workflow/workflow.py @@ -21,12 +21,9 @@ from __future__ import print_function, unicode_literals -import atexit import binascii -from contextlib import contextmanager import cPickle from copy import deepcopy -import errno import json import logging import logging.handlers @@ -35,7 +32,6 @@ import plistlib import re import shutil -import signal import string import subprocess import sys @@ -47,6 +43,12 @@ except ImportError: # pragma: no cover import xml.etree.ElementTree as ET +from util import ( + AcquisitionError, # imported to maintain API + atomic_writer, + LockFile, + uninterruptible, +) #: Sentinel for properties that haven't been set yet (that might #: correctly have the value ``None``) @@ -443,12 +445,9 @@ #################################################################### -# Lockfile and Keychain access errors +# Keychain access errors #################################################################### -class AcquisitionError(Exception): - """Raised if a lock cannot be acquired.""" - class KeychainError(Exception): """Raised for unknown Keychain errors. @@ -799,205 +798,6 @@ def elem(self): return root -class LockFile(object): - """Context manager to protect filepaths with lockfiles. - - .. versionadded:: 1.13 - - Creates a lockfile alongside ``protected_path``. Other ``LockFile`` - instances will refuse to lock the same path. - - >>> path = '/path/to/file' - >>> with LockFile(path): - >>> with open(path, 'wb') as fp: - >>> fp.write(data) - - Args: - protected_path (unicode): File to protect with a lockfile - timeout (int, optional): Raises an :class:`AcquisitionError` - if lock cannot be acquired within this number of seconds. - If ``timeout`` is 0 (the default), wait forever. - delay (float, optional): How often to check (in seconds) if - lock has been released. - - """ - - def __init__(self, protected_path, timeout=0, delay=0.05): - """Create new :class:`LockFile` object.""" - self.lockfile = protected_path + '.lock' - self.timeout = timeout - self.delay = delay - self._locked = False - atexit.register(self.release) - - @property - def locked(self): - """`True` if file is locked by this instance.""" - return self._locked - - def acquire(self, blocking=True): - """Acquire the lock if possible. - - If the lock is in use and ``blocking`` is ``False``, return - ``False``. - - Otherwise, check every `self.delay` seconds until it acquires - lock or exceeds `self.timeout` and raises an `~AcquisitionError`. - - """ - start = time.time() - while True: - - self._validate_lockfile() - - try: - fd = os.open(self.lockfile, os.O_CREAT | os.O_EXCL | os.O_RDWR) - with os.fdopen(fd, 'w') as fd: - fd.write(str(os.getpid())) - break - except OSError as err: - if err.errno != errno.EEXIST: # pragma: no cover - raise - - if self.timeout and (time.time() - start) >= self.timeout: - raise AcquisitionError('lock acquisition timed out') - if not blocking: - return False - time.sleep(self.delay) - - self._locked = True - return True - - def _validate_lockfile(self): - """Check existence and validity of lockfile. - - If the lockfile exists, but contains an invalid PID - or the PID of a non-existant process, it is removed. - - """ - try: - with open(self.lockfile) as fp: - s = fp.read() - except Exception: - return - - try: - pid = int(s) - except ValueError: - return self.release() - - from background import _process_exists - if not _process_exists(pid): - self.release() - - def release(self): - """Release the lock by deleting `self.lockfile`.""" - self._locked = False - try: - os.unlink(self.lockfile) - except (OSError, IOError) as err: # pragma: no cover - if err.errno != 2: - raise err - - def __enter__(self): - """Acquire lock.""" - self.acquire() - return self - - def __exit__(self, typ, value, traceback): - """Release lock.""" - self.release() - - def __del__(self): - """Clear up `self.lockfile`.""" - if self._locked: # pragma: no cover - self.release() - - -@contextmanager -def atomic_writer(file_path, mode): - """Atomic file writer. - - .. versionadded:: 1.12 - - Context manager that ensures the file is only written if the write - succeeds. The data is first written to a temporary file. - - :param file_path: path of file to write to. - :type file_path: ``unicode`` - :param mode: sames as for :func:`open` - :type mode: string - - """ - temp_suffix = '.aw.temp' - temp_file_path = file_path + temp_suffix - with open(temp_file_path, mode) as file_obj: - try: - yield file_obj - os.rename(temp_file_path, file_path) - finally: - try: - os.remove(temp_file_path) - except (OSError, IOError): - pass - - -class uninterruptible(object): - """Decorator that postpones SIGTERM until wrapped function returns. - - .. versionadded:: 1.12 - - .. important:: This decorator is NOT thread-safe. - - As of version 2.7, Alfred allows Script Filters to be killed. If - your workflow is killed in the middle of critical code (e.g. - writing data to disk), this may corrupt your workflow's data. - - Use this decorator to wrap critical functions that *must* complete. - If the script is killed while a wrapped function is executing, - the SIGTERM will be caught and handled after your function has - finished executing. - - Alfred-Workflow uses this internally to ensure its settings, data - and cache writes complete. - - """ - - def __init__(self, func, class_name=''): - """Decorate `func`.""" - self.func = func - self._caught_signal = None - - def signal_handler(self, signum, frame): - """Called when process receives SIGTERM.""" - self._caught_signal = (signum, frame) - - def __call__(self, *args, **kwargs): - """Trap ``SIGTERM`` and call wrapped function.""" - self._caught_signal = None - # Register handler for SIGTERM, then call `self.func` - self.old_signal_handler = signal.getsignal(signal.SIGTERM) - signal.signal(signal.SIGTERM, self.signal_handler) - - self.func(*args, **kwargs) - - # Restore old signal handler - signal.signal(signal.SIGTERM, self.old_signal_handler) - - # Handle any signal caught during execution - if self._caught_signal is not None: - signum, frame = self._caught_signal - if callable(self.old_signal_handler): - self.old_signal_handler(signum, frame) - elif self.old_signal_handler == signal.SIG_DFL: - sys.exit(0) - - def __get__(self, obj=None, klass=None): - """Decorator API.""" - return self.__class__(self.func.__get__(obj, klass), - klass.__name__) - - class Settings(dict): """A dictionary that saves itself when changed. @@ -1031,13 +831,15 @@ def __init__(self, filepath, defaults=None): def _load(self): """Load cached settings from JSON file `self._filepath`.""" + data = {} + with LockFile(self._filepath, 0.5): + with open(self._filepath, 'rb') as fp: + data.update(json.load(fp)) + + self._original = deepcopy(data) + self._nosave = True - d = {} - with open(self._filepath, 'rb') as file_obj: - for key, value in json.load(file_obj, encoding='utf-8').items(): - d[key] = value - self.update(d) - self._original = deepcopy(d) + self.update(data) self._nosave = False @uninterruptible @@ -1050,13 +852,13 @@ def save(self): """ if self._nosave: return + data = {} data.update(self) - # for key, value in self.items(): - # data[key] = value - with LockFile(self._filepath): - with atomic_writer(self._filepath, 'wb') as file_obj: - json.dump(data, file_obj, sort_keys=True, indent=2, + + with LockFile(self._filepath, 0.5): + with atomic_writer(self._filepath, 'wb') as fp: + json.dump(data, fp, sort_keys=True, indent=2, encoding='utf-8') # dict methods @@ -1586,9 +1388,12 @@ def logger(self): return self._logger # Initialise new logger and optionally handlers - logger = logging.getLogger('workflow') + logger = logging.getLogger('') - if not len(logger.handlers): # Only add one set of handlers + # Only add one set of handlers + # Exclude from coverage, as pytest will have configured the + # root logger already + if not len(logger.handlers): # pragma: no cover fmt = logging.Formatter( '%(asctime)s %(filename)s:%(lineno)s' @@ -1959,10 +1764,8 @@ def filter(self, query, items, key=lambda x: x, ascending=False, ``query`` is case-insensitive. Any item that does not contain the entirety of ``query`` is rejected. - .. warning:: - - If ``query`` is an empty string or contains only whitespace, - a :class:`ValueError` will be raised. + If ``query`` is an empty string or contains only whitespace, + all items will match. :param query: query to test items against :type query: ``unicode`` @@ -2055,13 +1858,13 @@ def filter(self, query, items, key=lambda x: x, ascending=False, """ if not query: - raise ValueError('Empty `query`') + return items # Remove preceding/trailing spaces query = query.strip() if not query: - raise ValueError('`query` contains only whitespace') + return items # Use user override if there is one fold_diacritics = self.settings.get('__workflow_diacritic_folding', @@ -2241,18 +2044,22 @@ def run(self, func, text_errors=False): """ start = time.time() + # Write to debugger to ensure "real" output starts on a new line + print('.', file=sys.stderr) + # Call workflow's entry function/method within a try-except block # to catch any errors and display an error message in Alfred try: - if self.version: - self.logger.debug('workflow version: %s', self.version) + self.logger.debug('---------- %s (%s) ----------', + self.name, self.version) + else: + self.logger.debug('---------- %s ----------', self.name) # Run update check if configured for self-updates. # This call has to go in the `run` try-except block, as it will # initialise `self.settings`, which will raise an exception # if `settings.json` isn't valid. - if self._update_settings: self.check_update() @@ -2275,7 +2082,7 @@ def run(self, func, text_errors=False): self._items = [] if self._name: name = self._name - elif self._bundleid: + elif self._bundleid: # pragma: no cover name = self._bundleid else: # pragma: no cover name = os.path.dirname(__file__) @@ -2286,7 +2093,7 @@ def run(self, func, text_errors=False): return 1 finally: - self.logger.debug('workflow finished in %0.3f seconds', + self.logger.debug('---------- finished in %0.3fs ----------', time.time() - start) return 0 @@ -2524,12 +2331,12 @@ def check_update(self, force=False): if self.prereleases: cmd.append('--prereleases') - self.logger.info('Checking for update ...') + self.logger.info('checking for update ...') run_in_background('__workflow_update_check', cmd) else: - self.logger.debug('Update check not due') + self.logger.debug('update check not due') def start_update(self): """Check for update and download and install new workflow file. @@ -2564,7 +2371,7 @@ def start_update(self): if self.prereleases: cmd.append('--prereleases') - self.logger.debug('Downloading update ...') + self.logger.debug('downloading update ...') run_in_background('__workflow_update_install', cmd) return True @@ -2598,14 +2405,14 @@ def save_password(self, account, password, service=None): try: self._call_security('add-generic-password', service, account, '-w', password) - self.logger.debug('Saved password : %s:%s', service, account) + self.logger.debug('saved password : %s:%s', service, account) except PasswordExists: - self.logger.debug('Password exists : %s:%s', service, account) + self.logger.debug('password exists : %s:%s', service, account) current_password = self.get_password(account, service) if current_password == password: - self.logger.debug('Password unchanged') + self.logger.debug('password unchanged') else: self.delete_password(account, service) @@ -2648,7 +2455,7 @@ def get_password(self, account, service=None): if h: password = unicode(binascii.unhexlify(h), 'utf-8') - self.logger.debug('Got password : %s:%s', service, account) + self.logger.debug('got password : %s:%s', service, account) return password @@ -2670,7 +2477,7 @@ def delete_password(self, account, service=None): self._call_security('delete-generic-password', service, account) - self.logger.debug('Deleted password : %s:%s', service, account) + self.logger.debug('deleted password : %s:%s', service, account) #################################################################### # Methods for workflow:* magic args @@ -2773,7 +2580,7 @@ def list_magic(): for name in sorted(self.magic_arguments.keys()): if name == 'magic': continue - arg = '{0}{1}'.format(self.magic_prefix, name) + arg = self.magic_prefix + name self.logger.debug(arg) if not isatty: @@ -2814,7 +2621,7 @@ def clear_settings(self): """Delete workflow's :attr:`settings_path`.""" if os.path.exists(self.settings_path): os.unlink(self.settings_path) - self.logger.debug('Deleted : %r', self.settings_path) + self.logger.debug('deleted : %r', self.settings_path) def reset(self): """Delete workflow settings, cache and data. @@ -2951,7 +2758,7 @@ def _delete_directory_contents(self, dirpath, filter_func): shutil.rmtree(path) else: os.unlink(path) - self.logger.debug('Deleted : %r', path) + self.logger.debug('deleted : %r', path) def _load_info_plist(self): """Load workflow info from ``info.plist``.""" diff --git a/workflow/workflow3.py b/workflow/workflow3.py old mode 100644 new mode 100755 index cfd580f..3ffd95b --- a/workflow/workflow3.py +++ b/workflow/workflow3.py @@ -29,7 +29,7 @@ import os import sys -from .workflow import Workflow +from .workflow import ICON_WARNING, Workflow class Variables(dict): @@ -255,14 +255,14 @@ class Item3(object): Generates Alfred-compliant JSON for a single item. Don't use this class directly (as it then won't be associated with - any :class:`Workflow3` object), but rather use + any :class:`Workflow3 ` object), but rather use :meth:`Workflow3.add_item() `. See :meth:`~workflow.Workflow3.add_item` for details of arguments. """ def __init__(self, title, subtitle='', arg=None, autocomplete=None, - valid=False, uid=None, icon=None, icontype=None, + match=None, valid=False, uid=None, icon=None, icontype=None, type=None, largetext=None, copytext=None, quicklookurl=None): """Create a new :class:`Item3` object. @@ -276,6 +276,7 @@ def __init__(self, title, subtitle='', arg=None, autocomplete=None, self.subtitle = subtitle self.arg = arg self.autocomplete = autocomplete + self.match = match self.valid = valid self.uid = uid self.icon = icon @@ -333,8 +334,8 @@ def add_modifier(self, key, subtitle=None, arg=None, valid=None, icon=None, """ mod = Modifier(key, subtitle, arg, valid, icon, icontype) - for k in self.variables: - mod.setvar(k, self.variables[k]) + # Add Item variables to Modifier + mod.variables.update(self.variables) self.modifiers[key] = mod @@ -362,6 +363,9 @@ def obj(self): if self.autocomplete is not None: o['autocomplete'] = self.autocomplete + if self.match is not None: + o['match'] = self.match + if self.uid is not None: o['uid'] = self.uid @@ -445,8 +449,8 @@ def _modifiers(self): class Workflow3(Workflow): """Workflow class that generates Alfred 3 feedback. - ``Workflow3`` is a subclass of :class:`~workflow.Workflow` and - most of its methods are documented there. + It is a subclass of :class:`~workflow.Workflow` and most of its + methods are documented there. Attributes: item_class (class): Class used to generate feedback items. @@ -465,7 +469,10 @@ def __init__(self, **kwargs): Workflow.__init__(self, **kwargs) self.variables = {} self._rerun = 0 - self._session_id = None + # Get session ID from environment if present + self._session_id = os.getenv('_WF_SESSION_ID') or None + if self._session_id: + self.setvar('_WF_SESSION_ID', self._session_id) @property def _default_cachedir(self): @@ -509,13 +516,9 @@ def session_id(self): """ if not self._session_id: - sid = os.getenv('_WF_SESSION_ID') - if not sid: - from uuid import uuid4 - sid = uuid4().hex - self.setvar('_WF_SESSION_ID', sid) - - self._session_id = sid + from uuid import uuid4 + self._session_id = uuid4().hex + self.setvar('_WF_SESSION_ID', self._session_id) return self._session_id @@ -548,12 +551,17 @@ def getvar(self, name, default=None): return self.variables.get(name, default) def add_item(self, title, subtitle='', arg=None, autocomplete=None, - valid=False, uid=None, icon=None, icontype=None, - type=None, largetext=None, copytext=None, quicklookurl=None): + valid=False, uid=None, icon=None, icontype=None, type=None, + largetext=None, copytext=None, quicklookurl=None, match=None): """Add an item to be output to Alfred. - See :meth:`Workflow.add_item() ` for the - main documentation. + Args: + match (unicode, optional): If you have "Alfred filters results" + turned on for your Script Filter, Alfred (version 3.5 and + above) will filter against this field, not ``title``. + + See :meth:`Workflow.add_item() ` for + the main documentation and other parameters. The key difference is that this method does not support the ``modifier_subtitles`` argument. Use the :meth:`~Item3.add_modifier()` @@ -563,10 +571,13 @@ def add_item(self, title, subtitle='', arg=None, autocomplete=None, Item3: Alfred feedback item. """ - item = self.item_class(title, subtitle, arg, - autocomplete, valid, uid, icon, icontype, type, + item = self.item_class(title, subtitle, arg, autocomplete, + match, valid, uid, icon, icontype, type, largetext, copytext, quicklookurl) + # Add variables to child item + item.variables.update(self.variables) + self._items.append(item) return item @@ -577,7 +588,7 @@ def _session_prefix(self): def _mk_session_name(self, name): """New cache name/key based on session ID.""" - return '{0}{1}'.format(self._session_prefix, name) + return self._session_prefix + name def cache_data(self, name, data, session=False): """Cache API with session-scoped expiry. @@ -670,6 +681,31 @@ def obj(self): o['rerun'] = self.rerun return o + def warn_empty(self, title, subtitle=u'', icon=None): + """Add a warning to feedback if there are no items. + + .. versionadded:: 1.31 + + Add a "warning" item to Alfred feedback if no other items + have been added. This is a handy shortcut to prevent Alfred + from showing its fallback searches, which is does if no + items are returned. + + Args: + title (unicode): Title of feedback item. + subtitle (unicode, optional): Subtitle of feedback item. + icon (str, optional): Icon for feedback item. If not + specified, ``ICON_WARNING`` is used. + + Returns: + Item3: Newly-created item. + """ + if len(self._items): + return + + icon = icon or ICON_WARNING + return self.add_item(title, subtitle, icon=icon) + def send_feedback(self): """Print stored items to console/Alfred as JSON.""" json.dump(self.obj, sys.stdout) diff --git a/youdao.py b/youdao.py index e34e2a2..826df5c 100755 --- a/youdao.py +++ b/youdao.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from workflow import Workflow3, ICON_WEB, web - +import json import sys reload(sys) sys.setdefaultencoding('utf8') @@ -17,21 +17,29 @@ 1947745089, 1947745090) ERRORCODE_DICT = { - "50": "有道翻译的API Key错误", "101": "缺少必填的参数,出现这个情况还可能是et的值和实际加密方式不对应", - "102": "不支持的语言类型", "103": "翻译文本过长", - "104": "不支持的API类型", "105": "不支持的签名类型", - "106": "不支持的响应类型", "107": "不支持的传输加密类型", - "108": "appKey无效( 注意不是应用密钥)", + "102": "不支持的语言类型", + "103": "翻译文本过长", + "104": "不支持的API类型", + "105": "不支持的签名类型", + "106": "不支持的响应类型", + "107": "不支持的传输加密类型", + "108": "appKey无效,注意不是应用密钥", "109": "batchLog格式不正确", "110": "无相关服务的有效实例", - "111": "开发者账号无效,可能是账号为欠费状态", + "111": "开发者账号无效", + "113": "q不能为空", "201": "解密失败,可能为DES,BASE64,URLDecode的错误", - "202": "签名检验失败", "203": "访问IP地址不在可访问IP列表", - "301": "辞典查询失败", "302": "翻译查询失败", + "202": "签名检验失败", + "203": "访问IP地址不在可访问IP列表", + "205": "请求的接口与应用的平台类型不一致", + "301": "辞典查询失败", + "302": "翻译查询失败", "303": "服务端的其它异常", - "401": "账户已经欠费停", - "500": "有道翻译的API Key使用频率过高" + "401": "账户已经欠费", + "411": "访问频率受限,请稍后访问", + "412": "长请求过于频繁,请稍后访问", + "500": "有道翻译失败" } ICON_DEFAULT = 'icon.png' @@ -82,11 +90,11 @@ def set_youdao_new_url_from(query, zhiyun_id, zhiyun_key): sign = hashlib.md5(zhiyun_id + query + salt + zhiyun_key).hexdigest() query = urllib.quote(str(query)) - url = 'http://openapi.youdao.com/api?appKey=' + str(zhiyun_id) + \ + url = 'https://openapi.youdao.com/api' + \ + '?appKey=' + str(zhiyun_id) + \ '&salt=' + str(salt) + \ '&sign=' + str(sign) + \ '&q=' + query - return url @@ -106,6 +114,22 @@ def get_web_data(query): return rt +def save_history_data(query, title, arg, ICON_DEFAULT): + jsonData = '{"title": "%s", "subtitle": "%s", "arg": "%s", \ + "icon": "%s"}\n' % (query, title, arg, ICON_DEFAULT) + with open('history.log', 'a') as file: + file.write(jsonData) + + +def get_history_data(): + with open('history.log', 'r') as file: + for line in file.readlines()[-1:-10:-1]: + line = json.loads(line) + wf.add_item( + title=line['title'], subtitle=line['subtitle'], + arg=line['arg'], valid=True, icon=line['icon']) + + def check_Update(): # 检查更新 if wf.update_available: @@ -119,7 +143,7 @@ def check_Update(): def check_English(query): - # 检查英文翻译中午 + # 检查英文翻译中文 import re if re.search(ur"[\u4e00-\u9fa5]+", query): @@ -135,7 +159,9 @@ def get_translation(query, isEnglish, rt): arg = [query, title, query, '', ''] if isEnglish else [ query, title, title, '', ''] arg = '$%'.join(arg) - # print arg + + save_history_data(query, title, arg, ICON_DEFAULT) + wf.add_item( title=title, subtitle=subtitle, arg=arg, valid=True, icon=ICON_DEFAULT) @@ -204,35 +230,39 @@ def main(wf): check_Update() wf.send_feedback() - rt = get_web_data(query) - errorCode = str(rt.get("errorCode")) - - if ERRORCODE_DICT.has_key(errorCode): - arg = ['', '', '', '', 'error'] - arg = '$%'.join(arg) - wf.add_item( - title=errorCode+" "+ERRORCODE_DICT[errorCode], - subtitle='', arg=arg, - valid=True, icon=ICON_ERROR) - - elif errorCode == "0": - isEnglish = check_English(query) - get_translation(query, isEnglish, rt) - get_phonetic(query, isEnglish, rt) - get_explains(query, isEnglish, rt) - get_web_translation(query, isEnglish, rt) - + if query == "*": + get_history_data() else: - title = '有道也翻译不出来了' - subtitle = '尝试一下去网站搜索' - arg = [query, ' ', ' ', ' '] - arg = '$%'.join(arg) - wf.add_item( - title=title, subtitle=subtitle, arg=arg, - valid=True, icon=ICON_DEFAULT) + rt = get_web_data(query) + errorCode = str(rt.get("errorCode")) + + if ERRORCODE_DICT.has_key(errorCode): + arg = ['', '', '', '', 'error'] + arg = '$%'.join(arg) + wf.add_item( + title=errorCode+" "+ERRORCODE_DICT[errorCode], + subtitle='', arg=arg, + valid=True, icon=ICON_ERROR) + + elif errorCode == "0": + isEnglish = check_English(query) + get_translation(query, isEnglish, rt) + get_phonetic(query, isEnglish, rt) + get_explains(query, isEnglish, rt) + get_web_translation(query, isEnglish, rt) + + else: + title = '有道也翻译不出来了' + subtitle = '尝试一下去网站搜索' + arg = [query, ' ', ' ', ' '] + arg = '$%'.join(arg) + wf.add_item( + title=title, subtitle=subtitle, arg=arg, + valid=True, icon=ICON_DEFAULT) wf.send_feedback() + if __name__ == '__main__': wf = Workflow3(update_settings={ 'github_slug': 'liszd/whyliam.workflows.youdao',