본문

웨일 북마크 워크플로우 개발 - 2

도입

지난 포스팅(2020/02/17 - [컴퓨터/Mac] - 웨일 북마크 워크플로우 개발 - 1)에 이어 웨일 워크 플로우 개발에 대해 정리할 예정이다.
직접 워크 플로우를 개발하기로 결정했지만 막연하다. 

Alfred에서 몇가지 예를 제공하고 있어 이리저리 살펴봤다.

support workflow example

 


힌트 및 구상

Alfred는 Chrome, safari만 제공, 그렇다면 다음으로 많이 사용하는 firefox를 지원하는 workflow는 있을 것이라 생각했다.
그리고 확인한 결과, 존재! 🤩

 

Workflow: Firefox Bookmarks — deanishe.net

Add Vorspann 1ca1981 2020-01-11 08:06:27 +0100 +0100

www.deanishe.net

여기서 알 수 있는 것은

  1. bookmark는 특정 폴더에 json 형식으로 저장되어 존재
  2. script 언어로 json 파싱 후 alfred에 전달

이 정도 정보를 알 수 있다.


문제 직면

1. script 언어에 익숙하지 않음
script언어는 makefile 만들 때 shell script 정도다. 그럼 이번에 해봐야겠다.


코드 파악

python으로 구현되어 있네 python으로 구현해봐야겠다. 그런데 python 안해봤는데??!
래도 코드 파악은 가능하다. 코드 내용은 간단히 주석을 추가했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
def main():
    """Run Script Filter."""
    log('.')
    # Step1. Get my profile
    with timed('load profile'):
        profile = get_profile()
    path = os.path.join(profile.path, 'bookmarks.html')
    log('profile=%r', profile)
 
    # Step2. Parse data from the json file
    with timed('load bookmarks'):
        bookmarks = Parser.read(path)
 
    # Step3. Create data for alfred
    items = []
    for bm in bookmarks:
        match = bm.title
        domain = urldomain(bm.url)
        if domain:
            match += ' ' + domain
        items.append(dict(
            title=bm.title,
            subtitle=bm.url,
            match=match,
            arg=bm.url,
            uid=bm.url,
            valid=True,
        ))
 
    log('%d bookmark(s) in profile "%s"'len(items), profile.name)
 
    # Step4. Pass data to alfred
    send_items(*items)
    return 0
cs

 

그러나... 마음대로 개발되지 않는데....

 

 

#웨일 #북마크 #알프레드 #워크플로우 #alfred #workflow

'컴퓨터 > Mac' 카테고리의 다른 글

웨일 북마크 워크플로우 개발 - 3  (2) 2020.02.22
웨일 북마크 워크플로우 개발 - 1  (0) 2020.02.17
Alfred 접근 권한 설정  (0) 2020.02.16

공유

댓글