티스토리 뷰
발생일: 2018.10.20
키워드: alfred workflow, 알프레드 워크플로우
문제:
파이썬으로 알프레드 워크플로우 만들기 :)
해결책:
파이썬으로 워크플로우를 쉽게 만들 수 있게 부트스트랩 라이브러리를 만들어둔 저장소가 있다.
아래는 간단 튜토리얼.
논의:
# 부트스트랩 라이브러리 설치
알프레드 워크플로우를 생성한 후에, 해당 디렉토리에서 아래처럼 설치할 수 있다. (설치 가이드 참고)
$ pip install --target ./workflow Alfred-Workflow
----
# 한글 이슈
알프레드는 맥의 기본 버전인 파이썬 2.7 버전을 사용하기 때문에, 고질적인 유니코드 문제가 있다.
unicodedata 모듈로 아래와 같이 노멀라이징하면 스크립트 필터에서 전달하는 한글 이슈를 해결할 수 있다.
import sys
import unicodedata
reload(sys)
sys.setdefaultencoding("utf-8")
query = unicodedata.normalize('NFC', query)
위에서 언급한 workflow 모듈의 인스턴스의 args 변수에 실행 스크립트로 전달한 인자가 저장되며,
이미 유니코드로 노멀라이즈 되어 있어서 바로 사용해도 된다.
query = wf.args[0]
다만, 디버깅 용도로 print()로 한글을 출력하려면 기본 인코딩을 지정해줘야 한다.
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
query = wf.args[0]
----
# 서드파티 라이브러리 추가 (third-party library)
먼저, pip로 별도 라이브러리에 서드파티 라이브러리를 설치한다.
예를 들어, lib 디렉토리에 click 이란 패키지를 설치하려면 아래와 같이 실행하면 된다.
$ pip install --target=./lib click
스크립트에서 직접 가져오려면 __init__.py 를 만들어줘야 한다.
$ touch ./lib/__init__.py
from lib import click
wf 인스턴스에서 바로 가져오는 방법도 있다.
def main(wf):
import requests
...
if __name__ == '__main__':
wf = Workflow3(libraries=['./lib'])
sys.exit(wf.run(main))
----
# 꿀벌개발일지 검색용 워크플로우
아래와 같이 검색하는 간단한 워크플로우이다.
코드는 아래 gist에서 확인하면 된다.
다운로드해 참고해보면 쉽게 다른 워크플로우를 만들 수 있을 것이다. :D
반응형
댓글
공지사항