# -*- 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 쓰는 분들을 위해서 첨부파일로도 첨부 합니다.
네이버 영어 사전.alfredworkflow
0.01MB
원본 주인장께서 수정을 안해주셔서 내가 바꿈..
반응형
'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 |