Files
kman/changelog.md
2021-08-25 17:58:31 +08:00

156 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Change Log
## 1.1.1 (20200626)
### feature
- remove pandas library because it will make the package too large,
I write mTable calss to operate table data structure
- add sort function in nTableModel class which
make table can be sort by clicking table header!! cheer!!
- make installer package by pyistaller, but run "open kmanapp.app",<br>
always show:<br>
**LSOpenURLsWithRole() failed with error -10810 for the file /Users/mark/penv/kman/Release/kmanapp.app.**<br>
which spend me a great mount of time,<br>
and I baidu/bing/google all about discuss try to solve it,<br>
but problem still here! :cry: :cry: :cry:<br>
- modify some bugs let application more stabler
### learn lesson
- how to write a iterable object
## 1.1.0 (20200617)
### feature
- book information grabbed from douban / amazon
## 1.0.5 (20200613)
### feature
- backup clips after kman closed, check and read backup file when kman started
- import words from kindle, export filtered words to MD/CSV
### learn lesson
- create virtual envirement
```
> mkvirtualenv kmanenv
> workon kmanenv
virtual env lib in ~/.virtualenvs/kmanenv/
```
## 1.0.4 (20200604)
### feature
- refactoring kman.py
- creat constant class for all constant
- creat config dialog to do some constant configuration
- creat xman class for all clipping manipulation
- design config dialog & statusbar information
### learn lesson
- generate ui source(.py) use pyqtuic will 'import kmanapp\_rc',
so I need to use resouce file(.qrc) to manage resouce(icons),
and generator rcc binnay file, must kmanapp\_rc.py
command: pyside2-rcc -binary kmanapp.qrc -o kmanapp\_rc.py
- use QTime to check kindle kindle is connected or not
- implement table model which inherited from QAbstractTableModel, so
we can use **panda data structure**
## 1.0.3 (20200603)
### feature
- design GUI with qdesigner
- define toolbar action's slots
## 1.0.2 (20200530)
### feature
- remove duplication
- refactor some code
- optimize search feature
## learn lesson
- change dict keys between iteration, will throw RuntimeError:
dictionary changed size during iteration
- reference - http://www.cocoachina.com/articles/89748
- pyQt5 reference - https://www.learnpyqt.com/
## 1.0.1 (20200528)
### feature
- add search clip and some functions
### learn lesson
- assign value to a not exist key, will throw KeyError, too inflexible!!! perl much better
- use defaultdict to solve obove problem, note, defaultdict only create two layer key auto
```
a=defaultdict(dict)
a['1']['2'] = 1
b=defaultdict(dict)
b['1']['2']['3'] = 1 # ERROR
b['1']['2'] = {'3':1} # OK
```
- logging, file io, very strict indent!
- re.X(VERBOSE), different regular express between vim & python
- no c like i=x<0?m:n => python - i=m if x<0 else n
- json dict convert
- pylint check code, but most of suggest is unacceptable for me :smile:
- no c/c++/java/perl switch-case, not use two much if-elif-elif, use this to simplify:
```
suff = {'MD':'.md','CSV':'.csv','JSON':'.json'}
op = OUTPREF+suff[ft]
```
- assign value style is pithiness
```
(authinfo, dateinfo, content) = (s[0], s[1], s[2] if len(s)==3 else None)
```
- unittest error line number is not collect, **unitest bug**?
- **unitest testcase execution sequence is disorder, so must create test data for each case**
## 1.0.0 (20200526)
### create
- unittest
- abstract note/bookmark/highlight from kindle clipping
- formatter output to special file
---
# feature list (keep update / 20200625)
- [x] first abstract from kindle hard / local directory for different OS
- [x] add GUI use QT
- [x] use thread to check kindle connection status
- import function:
- [x] local
- [x] kindle
- [x] duokan
- [x] amazon **not test**
- [x] link to douban and amazon
- export function:
- [ ] to [evernote](https://github.com/benhorvath/kindle2evernote/blob/master/kindle2evernote.py)
- [ ] to web html format
- [ ] pdf
- [ ] onenote
- [x] txt
- [x] markdown
- [ ] implement command line based on [argparse](https://www.jianshu.com/p/a41fbd4919f8)
- :x: mobi / epub reader
- [ ] import .azw3/.epub/.mobi file to kindle
- [ ] [convert](https://github.com/jianyun8023/convert-ebook) .epub -> .mobi <br>
- [ ] .azw3 -> .mobi
- [ ] .md -> .mobi
- [x] parse /Volumes/Kindle/system/vocabulary/vocab.db
- [ ] [hotkey](https://toolinbox.net/Klib/)
- [ ] write [tutorial](https://help.knotesapp.com/docs/tutorial/)
- [ ] search word in online dictionary
- [ ] chrome extension
- [ ] clean (sdr)
- [ ] sync modify to kindle device
- [ ] compare parse html info with xpath & beautisoap & regex
- [x] save export markdown file name with book name(treeview's item name),<br>
such as **<<印度漂浮的次大陆.md>>**
- [x] easily copy filter notes to clipboard
- [x] add right click menu for book info treeview item, so I can copy book info by select menu, format:<br>
1| :book: | [存在主义咖啡馆](href) | 作者/出版社/出版时间/阅读时间 书评
- [ ] sync to gitee/github
- [ ] write and manage notes
- [ ] save export file to specific directory(config dialog)
- [ ] 解析mobi电子书把标记与章节目录匹配可导出为笔记