# Change Log ## 1.1.1 (20200626) ### feature - remove pandas 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",
always show:
"LSOpenURLsWithRole() failed with error -10810 for the file /Users/mark/penv/kman/Release/kmanapp.app."
which spend me a great mount of time,
and I baidu/bing/google all about discuss try to solve it,
but problem still here! :cry: :cry: :cry:
- 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 - [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 - [ ] duokan - [ ] amazon - [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 - [ ] easily copy filter notes to clipboard - [ ] 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
- [ ] .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