From 760220ea06c209c32de1b25edfde7679cf1c0343 Mon Sep 17 00:00:00 2001 From: Percy Date: Thu, 8 Apr 2021 10:05:34 +0800 Subject: [PATCH] add word 'async' & code formatting (#318) * add word 'async' & code formatting * Update the wrong pronunciation of 'async' Co-authored-by: Yishuai Li Co-authored-by: Yishuai Li --- README.md | 1 + tools/addword.py | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f0db147..5bc401f 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ | array | [🔊](https://dict.youdao.com/dictvoice?audio=array&type=1) /ə'rei/ | [🔊](https://dict.youdao.com/dictvoice?audio=array&type=2) /əˈreɪ/ | ❌ /æ'rei/ | | ASCII | [🔊](https://dict.youdao.com/dictvoice?audio=ascii&type=1) /'æski/ | [🔊](https://dict.youdao.com/dictvoice?audio=ascii&type=2) /ˈæski/ | ❌ /ɑːsk/ | | aspect | [🔊](https://dict.youdao.com/dictvoice?audio=aspect&type=1) /'æspekt/ | [🔊](https://dict.youdao.com/dictvoice?audio=aspect&type=2) /ˈæspekt/ | ❌ /ə'spekt/ | +| async | [🔊](https://dict.youdao.com/dictvoice?audio=async&type=1) /əˈsɪŋk/ | [🔊](https://dict.youdao.com/dictvoice?audio=async&type=2) /æˈsɪŋk/ | ❌ /'æsɪŋk/ | | avatar | [🔊](https://dict.youdao.com/dictvoice?audio=avatar&type=1) /'ævətɑː/ | [🔊](https://dict.youdao.com/dictvoice?audio=avatar&type=2) /ˈævətɑːr/ | ❌ /ə'vʌtɑ/ | | Azure | [🔊](https://dict.youdao.com/dictvoice?audio=azure&type=1) /'æʒə/ | [🔊](https://dict.youdao.com/dictvoice?audio=azure&type=2) /ˈæʒər/ | ❌ /ˈæzʊʒə/ | | bind | [🔊](https://dict.youdao.com/dictvoice?audio=bind&type=1) /baɪnd/ | [🔊](https://dict.youdao.com/dictvoice?audio=bind&type=2) /baɪnd/ | ❌ /bɪnd/ | diff --git a/tools/addword.py b/tools/addword.py index d96ae32..21a0050 100755 --- a/tools/addword.py +++ b/tools/addword.py @@ -4,11 +4,12 @@ Create the description for a word to be added to the word list Usage: addword.py """ -import sys import re +import sys import urllib.request from bs4 import BeautifulSoup + def main(): """Generate the information with pronunciations for a word to be added to the word list""" if len(sys.argv) != 2: @@ -16,34 +17,36 @@ def main(): sys.exit(1) word = sys.argv[1] pronunciations = get_pronunciations(word) - britsh_en = '[🔊](' + pronunciations[0][0] +')' + ' ' + '/' + pronunciations[0][1] + '/' - american_en = '[🔊](' + pronunciations[1][0] +')' + ' ' + '/' + pronunciations[1][1] + '/' + britsh_en = '[🔊](' + pronunciations[0][0] + ')' + ' ' + '/' + pronunciations[0][1] + '/' + american_en = '[🔊](' + pronunciations[1][0] + ')' + ' ' + '/' + pronunciations[1][1] + '/' line = '| ' + word + ' | ' + britsh_en + ' | ' + american_en + ' | ' + ' ' + '|' print(line) + def get_pronunciations(word): """Return the word's pronouciation URLs and phonetic transcriptions from youdao.com if available""" word = word.strip() - word_url = "https://dict.youdao.com/w/en/"+word - pron_url = "https://dict.youdao.com/dictvoice?audio="+word+"&" + word_url = 'https://dict.youdao.com/w/en/' + word + pron_url = 'https://dict.youdao.com/dictvoice?audio='+ word + '&' britsh_en = [" ", " "] - american_en = [" "," "] + american_en = [" ", " "] try: response = urllib.request.urlopen(word_url).read() - soup = BeautifulSoup(response, "html.parser") - spans = soup.find_all('span', {'class' : 'pronounce'}) + soup = BeautifulSoup(response, 'html.parser') + spans = soup.find_all('span', {'class': 'pronounce'}) lines = [span.get_text() for span in spans] match = re.findall(r'\[.+\]', lines[0]) - britsh_en[0] = pron_url + "type=1" + britsh_en[0] = pron_url + 'type=1' britsh_en[1] = match[0].replace('[', '').replace(']', '') match = re.findall(r'\[.+\]', lines[1]) - american_en[0] = pron_url + "type=2" + american_en[0] = pron_url + 'type=2' american_en[1] = match[0].replace('[', '').replace(']', '') except: return britsh_en, american_en return britsh_en, american_en + if __name__ == '__main__': main()