Skip to content

背单词神器。 输入一个英语或双语文章的网址,本工具将自动提取文章中所有单词及其所在句子,并计算词汇总数。它还能去除重复的单词,并允许你排除那些你已经认识的单词。

License

Notifications You must be signed in to change notification settings

greenflute/vito-go-mywords

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mywords

  1. 输入一个英语或双语文章的网址,本工具将自动提取文章中所有单词及其所在句子,并计算词汇总数。它还能去除重复的单词,并允许你排除那些你已经认识的单词。
  2. 为单词打上标签,分为“0:陌生”,“1:了解”,“2:认识”,“3:熟悉”,以帮助跟踪学习进度。一旦标记完成,单词将自动被加入你的词库中。
  3. 对已解析的文章单词进行筛选,根据标记等级进行。例如,选择“0”将显示所有“陌生”的单词。
  4. 本工具支持安卓(Android)、Linux和Windows平台上的使用。不同设备之间的数据可以进行相互同步。
  5. 推荐使用以下英语学习资源:The New York Times 中英文版,以获取优质的英文阅读材料。

Getting Started

  • 请选择对应的目标平台,进行编译,
    • 安卓: make build-android
    • linux: make build-linux
    • windows: make build-windows
  • 编译的文件安装包将出现在bin文件夹中。

Project Tree

├── bin
├── mywords-go
├── mywords-flutter
├── makefile
└── readme.md
  • bin: the compiled result of the project. .apk for android,.deb for linux, and -windows.zip for windows.
  • mywords-flutter: the flutter source code of the file share server.
  • mywords-go: the go source code of the file share server.
  • makefile: the makefile of the project.
  • readme.md: the readme file of the project.

Dependencies

Preview

添加词典

  • 由于词典数据库文件过大,无法上传至此,下面是详细的制作步骤。

  • 同时,对学习英语感兴趣的朋友,如果不清楚的地方也可以添加我的WeChat(vitogo-chat)进行沟通。

  • 词典库源文件应当是一个zip压缩文件,压缩文件包含:

├── data
├── html
├── *.css
├── *.js
└── word_html_map.json

// data: 文件夹,用于存放字典资源文件,包含图片、声音等
// html: 文件夹,用于存放单词释义页面的html文件
// *.js,*.css: 文件,html文件夹下的html文件需要引用的资源,文件名应当包含.html后缀
// word_html_map.json: 文件,用于存放单词和html文件名的映射关系,是一个map,key是单词,value是html文件名(不包含.html后缀),例如:
  {
  "applauses": "179677",
  "applausive": "179678",
  "applausively": "179679",
  "apple": "769680"
  ...
  }

以上zip文件的制作, 可以下载 mdx/mdd格式词典文件,如mdict词典包/牛津高阶英汉双解词典(第10版)V3, 然后进行提取制作。解析、提取mdx/mdd词典资源请参考下载python代码: https://bitbucket.org/xwang/mdict-analysis/src/master/

  1. 提取制作html文件及word_html_map.jso:
# coding: utf-8
import hashlib
import json
import os
from readmdict import MDX, MDD
def str_encrypt(bytes):
    """
    使用sha1加密算法,返回str加密后的字符串
     # string.encode('utf-8')
    """
    sha1 = hashlib.sha1()
    sha1.update(bytes)
    return sha1.hexdigest()
 
def makeHtml():
    mdx = MDX('<.mdx文件路径>')
    os.makedirs("html",exist_ok=True)
    i=0
    wordsHtmlSha1Map={}
    items=mdx.items()
    for key,value in items:
        i+=1
        word=key.decode(encoding='utf-8')
        sa1Str=str_encrypt(value)
        dir=sa1Str[:2]
        fName=dir+str(i)
        wordsHtmlSha1Map[word]=fName
        df = open("html/"+fName+".html", 'wb')
        df.write(value)
        df.close()
    b = json.dumps(wordsHtmlSha1Map,sort_keys=True,separators=None,indent="  ",ensure_ascii=False,)
    f2 = open('word_html_map.json', 'w')
    f2.write(b)
    f2.close()
    print(i,"exit with 0")

if __name__ == '__main__':
    makeHtml()
  

  1. 提取图片、声音资源文件(data 文件夹):
   python readmdict.py -x <.mdd文件>
  1. 制作zip词典数据库压缩文件:
   zip -q -r -9 mydict.zip data/ html/ *.css *.js word_html_map.json
  1. 将以上词典数据库文件添加设置为词典数据库文件
  • 加载本地词典数据库文件--开始解析

TODO

  • 暗黑主题色

About

背单词神器。 输入一个英语或双语文章的网址,本工具将自动提取文章中所有单词及其所在句子,并计算词汇总数。它还能去除重复的单词,并允许你排除那些你已经认识的单词。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 47.5%
  • Go 39.6%
  • C++ 5.6%
  • CMake 4.6%
  • Makefile 1.5%
  • Swift 0.6%
  • Other 0.6%