# -*- coding:utf-8 -*-
import urllib.parse
import urllib.request
import json
import unicodedata
q = "{query}" # 검색어를 여기에 넣습니다.
q2 = unicodedata.normalize('NFC', q)
q3 = urllib.parse.quote(q2.encode('utf-8'))
url = f'https://ac-dict.naver.com/enko/ac?q={q3}&q_enc=utf-8&st=11&r_format=json&r_enc=utf-8&r_lt=11&r_unicode=0&r_escape=1'
with urllib.request.urlopen(url) as response:
unparsed = response.read()
obj = json.loads(unparsed)
elems = []
i = 0
if 'items' in obj and obj['items'][0]:
for item_group in obj['items']:
for item in item_group:
if len(item) < 3:
continue
en = item[0][0]
ko = item[2][0]
ko = ko.replace('<b>', '').replace('</b>', '')
word = f'{en}: {ko}'
s = f'<item uid="{en}_{i}" arg="{en}"><title>{word}</title><subtitle>네이버 영어 사전에서 "{en}" 검색</subtitle><icon>icon.png</icon></item>'
elems.append(s)
i += 1
if len(elems) == 0:
s = f'<item uid="{q3}_0" arg="{q3}"><title>{q3}</title><subtitle>네이버 영어 사전에서 "{q3}" 검색</subtitle><icon>icon.png</icon></item>'
elems.append(s)
print("<items>")
for elem in elems:
print(elem)
print("</items>")
원래 이 워크플로우는 초기에 내가 만든게 아니라, 다른 분이 만든 코드를 계속 변경하였습니다.
기존 코드 베이스가 python2 였는데, python3 코드로 바꾸면서, 계속 뭔가 동작을 하지 않길래, 보니까
네이버 영어사전 쪽 자동완성 API 주소가 바뀌었더라... 그래서 다시 수정 했습니다.
아무튼 코드는 위와 같고, alfred 쓰는 분들을 위해서 첨부파일로도 첨부 합니다.
원본 주인장께서 수정을 안해주셔서 내가 바꿈..
반응형
'Tool' 카테고리의 다른 글
퍼플렉시티 AI 검색의 지평 (0) | 2024.06.21 |
---|---|
ChatGPT - MacOS 프로그램 (0) | 2024.06.04 |
Conventional commit plugin 추천 - commit prefix 자동화를 하자. (0) | 2024.03.28 |
Jetbrains tool이 실행 안될때, Cannot connect to already running IDE instance (0) | 2023.10.26 |
Intellij가 업데이트 이후 안켜질때 (Internal error. Please refer to https://jb.gg/ide/critical-startup-errors) (0) | 2023.08.11 |