diff --git a/backup/bk.info.data b/backup/bk.info.data new file mode 100644 index 0000000..bd80496 --- /dev/null +++ b/backup/bk.info.data @@ -0,0 +1 @@ +{"\u4ece\u96f6\u5f00\u59cb\u5b66\u5199\u4f5c": {"link": "https://book.douban.com/subject/30266255", "bookname": "\u4ece\u96f6\u5f00\u59cb\u5b66\u5199\u4f5c", "img": "https://img1.doubanio.com/view/subject/s/public/s29811329.jpg", "rate": "7.8", "author": "\u5f18\u4e39"}, "24\u5802\u8d22\u5bcc\u8bfe": {"link": "https://book.douban.com/subject/3845101", "bookname": "24\u5802\u8d22\u5bcc\u8bfe", "img": "https://img9.doubanio.com/view/subject/s/public/s29357535.jpg", "rate": "7.8", "author": "\u9648\u5fd7\u6b66"}, "\u859b\u5146\u4e30\u7ecf\u6d4e\u5b66\u8bb2\u4e49": {"link": "https://book.douban.com/subject/30280804", "bookname": "\u859b\u5146\u4e30\u7ecf\u6d4e\u5b66\u8bb2\u4e49", "img": "https://img9.doubanio.com/view/subject/s/public/s29841565.jpg", "rate": "8.4", "author": "\u859b\u5146\u4e30"}, "\u5e86\u4f59\u5e74": {"link": "https://book.douban.com/subject/25853071", "bookname": "\u5e86\u4f59\u5e74 \u7b2c\u4e00\u5b63", "img": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2575362797.jpg", "rate": "8.0", "author": "\u539f\u540d:\u5e86\u4f59\u5e74"}, "\u67aa\u70ae\u3001\u75c5\u83cc\u4e0e\u94a2\u94c1": {"link": "https://book.douban.com/subject/1813841", "bookname": "\u67aa\u70ae\u3001\u75c5\u83cc\u4e0e\u94a2\u94c1", "img": "https://img3.doubanio.com/view/subject/s/public/s1738643.jpg", "rate": "8.7", "author": "[\u7f8e]"}, "\u5982\u4f55\u5047\u88c5\u61c2\u97f3\u4e50": {"link": "https://book.douban.com/subject/34454494", "bookname": "\u5982\u4f55\u5047\u88c5\u61c2\u97f3\u4e50", "img": "https://img9.doubanio.com/view/subject/s/public/s33314966.jpg", "rate": "7.0", "author": "\u738b\u7855"}, "\u8d27\u5e01\u7684\u6559\u8bad": {"link": "https://book.douban.com/subject/10439662", "bookname": "\u8d27\u5e01\u7684\u6559\u8bad", "img": "https://img1.doubanio.com/view/subject/s/public/s7046197.jpg", "rate": "8.9", "author": "\u5468\u5176\u4ec1"}, "\u4e2d\u56fd\u53e4\u4ee3\u7b80\u53f2": {"link": "https://book.douban.com/subject/2246559", "bookname": "\u4e2d\u56fd\u53e4\u4ee3\u7b80\u53f2", "img": "https://img1.doubanio.com/view/subject/s/public/s2689149.jpg", "rate": "8.0", "author": "\u5f20\u5e06"}, "\u94b1\u4ece\u54ea\u91cc\u6765": {"link": "https://book.douban.com/subject/34925762", "bookname": "\u94b1\u4ece\u54ea\u91cc\u6765", "img": "https://img3.doubanio.com/view/subject/s/public/s33551591.jpg", "rate": "7.0", "author": "\u5510\u6daf"}, "\u5e02\u573a\u7684\u903b\u8f91": {"link": "https://book.douban.com/subject/4893663", "bookname": "\u5e02\u573a\u7684\u903b\u8f91", "img": "https://img1.doubanio.com/view/subject/s/public/s4397638.jpg", "rate": "8.2", "author": "\u5f20\u7ef4\u8fce"}, "\u7f57\u9a6c\u4eba\u7684\u6545\u4e8b": {"link": "https://book.douban.com/subject/7055441", "bookname": "\u7f57\u9a6c\u4eba\u7684\u6545\u4e8b1", "img": "https://img1.doubanio.com/view/subject/s/public/s8488837.jpg", "rate": "8.8", "author": "\u76d0\u91ce\u4e03\u751f"}, "\u4e2d\u56fd\u56fd\u5bb6\u6cbb\u7406\u7684\u5236\u5ea6\u903b\u8f91": {"link": "https://book.douban.com/subject/26901114", "bookname": "\u4e2d\u56fd\u56fd\u5bb6\u6cbb\u7406\u7684\u5236\u5ea6\u903b\u8f91", "img": "https://img3.doubanio.com/view/subject/s/public/s29399593.jpg", "rate": "9.2", "author": "\u5468\u96ea\u5149"}, "\u6295\u8d44\u4e2d\u6700\u7b80\u5355\u7684\u4e8b": {"link": "https://book.douban.com/subject/26163553", "bookname": "\u6295\u8d44\u4e2d\u6700\u7b80\u5355\u7684\u4e8b", "img": "https://img9.doubanio.com/view/subject/s/public/s27653114.jpg", "rate": "8.7", "author": "\u90b1\u56fd\u9e6d"}, "\u5c11\u5e74\u51ef\u6b4c": {"link": "https://book.douban.com/subject/1091203", "bookname": "\u5c11\u5e74\u51ef\u6b4c", "img": "https://img1.doubanio.com/view/subject/s/public/s24399718.jpg", "rate": "9.2", "author": "\u9648\u51ef\u6b4c"}, "\u4e2d\u592e\u5e1d\u56fd\u7684\u54f2\u5b66\u5bc6\u7801": {"link": "https://book.douban.com/subject/30276702", "bookname": "\u4e2d\u592e\u5e1d\u56fd\u7684\u54f2\u5b66\u5bc6\u7801", "img": "https://img9.doubanio.com/view/subject/s/public/s29879195.jpg", "rate": "8.1", "author": "\u90ed\u5efa\u9f99"}, "\u7532\u9aa8\u6587": {"link": "https://book.douban.com/subject/6539859", "bookname": "\u7532\u9aa8\u6587", "img": "https://img1.doubanio.com/view/subject/s/public/s6979148.jpg", "rate": "9.3", "author": "\u4f55\u5049"}, "\u5386\u53f2\u7684\u5de8\u955c": {"link": "https://book.douban.com/subject/26591910", "bookname": "\u5386\u53f2\u7684\u5de8\u955c", "img": "https://img3.doubanio.com/view/subject/s/public/s28283792.jpg", "rate": "9.1", "author": "\u91d1\u89c2\u6d9b"}, "\u65b0\u7f16\u8bf4\u6587\u89e3\u5b57\u5927\u5168\u96c6": {"link": "https://book.douban.com/subject/1032967", "bookname": "\u8bf4\u6587\u89e3\u5b57", "img": "https://img9.doubanio.com/view/subject/s/public/s1026024.jpg", "rate": "9.2", "author": "[\u6c49]"}, "\u5546\u541b\u4e66": {"link": "https://book.douban.com/subject/4090803", "bookname": "\u5546\u541b\u4e66", "img": "https://img1.doubanio.com/view/subject/s/public/s4052388.jpg", "rate": "8.4", "author": "\u77f3\u78ca"}, "\u6539\u53d8\u5fc3\u7406\u5b66\u768440\u9879\u7814\u7a76": {"link": "https://book.douban.com/subject/5248516", "bookname": "\u6539\u53d8\u5fc3\u7406\u5b66\u768440\u9879\u7814\u7a76", "img": "https://img3.doubanio.com/view/subject/s/public/s27276912.jpg", "rate": "9.2", "author": "\u7f57\u6770\u2022\u970d\u514b"}, "\u6768\u4f2f\u5cfb": {"link": "https://book.douban.com/subject/1000888", "bookname": "\u8ad6\u8a9e\u8b6f\u8a3b", "img": "https://img1.doubanio.com/view/subject/s/public/s1670329.jpg", "rate": "9.0", "author": "\u694a\u4f2f\u5cfb"}, "\u4e2d\u56fd\u4e3a\u4ec0\u4e48\u6709\u524d\u9014": {"link": "https://book.douban.com/subject/4873444", "bookname": "\u4e2d\u56fd\u4e3a\u4ec0\u4e48\u6709\u524d\u9014", "img": "https://img1.doubanio.com/view/subject/s/public/s4386858.jpg", "rate": "7.1", "author": "\u7fdf\u4e1c\u5347"}, "\u7ba1\u5b50": {"link": "https://book.douban.com/subject/3661571", "bookname": "\u7ba1\u5b50", "img": "https://img9.doubanio.com/view/subject/s/public/s3948396.jpg", "rate": "8.3", "author": "\u674e\u5c71"}, "\u767d\u9c7c\u89e3\u5b57": {"link": "https://book.douban.com/subject/21649772", "bookname": "\u767d\u9c7c\u89e3\u5b57", "img": "https://img9.doubanio.com/view/subject/s/public/s26303695.jpg", "rate": "9.0", "author": "\u6d41\u6c99\u6cb3"}, "\u6295\u8d44\u8981\u4e49": {"link": "https://book.douban.com/subject/27173829", "bookname": "\u6295\u8d44\u8981\u4e49", "img": "https://img9.doubanio.com/view/subject/s/public/s29581756.jpg", "rate": "8.4", "author": "\u5218\u8bda\uff08\u5fae\u5149\u7834\u6653\uff09"}, "\u82cf\u4e16\u6c11": {"link": "https://book.douban.com/subject/34952676", "bookname": "\u82cf\u4e16\u6c11\uff1a\u6211\u7684\u7ecf\u9a8c\u4e0e\u6559\u8bad", "img": "https://img1.doubanio.com/view/subject/s/public/s33587329.jpg", "rate": "8.3", "author": "[\u7f8e]"}, "\u5c0f\u7a97\u5e7d\u8bb0": {"link": "https://book.douban.com/subject/1491630", "bookname": "\u5c0f\u7a97\u5e7d\u8bb0", "img": "https://img9.doubanio.com/view/subject/s/public/s5641654.jpg", "rate": "8.5", "author": "\u9648\u7ee7\u5112"}, "\u91d1\u878d\u7684\u672c\u8d28": {"link": "https://book.douban.com/subject/25843334", "bookname": "\u91d1\u878d\u7684\u672c\u8d28", "img": "https://img9.doubanio.com/view/subject/s/public/s27246465.jpg", "rate": "8.2", "author": "\u3010\u7f8e\u3011\u4f2f\u5357\u514b"}, "\u65e5\u672c\u7684\u4e16\u754c\u89c2": {"link": "https://book.douban.com/subject/34937365", "bookname": "\u65e5\u672c\u7684\u4e16\u754c\u89c2", "img": "https://img1.doubanio.com/view/subject/s/public/s33559469.jpg", "rate": "7.9", "author": "[\u7f8e]\u9a6c\u91cc\u4e4c\u65af\u00b7\u8a79\u68ee"}} \ No newline at end of file diff --git a/backup/bk.info.data.bk b/backup/bk.info.data.bk new file mode 100644 index 0000000..4d3b0b1 --- /dev/null +++ b/backup/bk.info.data.bk @@ -0,0 +1 @@ +{"\u859b\u5146\u4e30\u7ecf\u6d4e\u5b66\u8bb2\u4e49": {"link": "https://book.douban.com/subject/30280804", "bookname": "\u859b\u5146\u4e30\u7ecf\u6d4e\u5b66\u8bb2\u4e49", "img": "https://img9.doubanio.com/view/subject/s/public/s29841565.jpg", "rate": "8.4", "author": "\u859b\u5146\u4e30"}, "\u5e86\u4f59\u5e74": {"link": "https://book.douban.com/subject/25853071", "bookname": "\u5e86\u4f59\u5e74 \u7b2c\u4e00\u5b63", "img": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2575362797.jpg", "rate": "8.0", "author": "\u539f\u540d:\u5e86\u4f59\u5e74"}, "\u67aa\u70ae\u3001\u75c5\u83cc\u4e0e\u94a2\u94c1": {"link": "https://book.douban.com/subject/1813841", "bookname": "\u67aa\u70ae\u3001\u75c5\u83cc\u4e0e\u94a2\u94c1", "img": "https://img3.doubanio.com/view/subject/s/public/s1738643.jpg", "rate": "8.7", "author": "[\u7f8e]"}, "\u5982\u4f55\u5047\u88c5\u61c2\u97f3\u4e50": {"link": "https://book.douban.com/subject/34454494", "bookname": "\u5982\u4f55\u5047\u88c5\u61c2\u97f3\u4e50", "img": "https://img9.doubanio.com/view/subject/s/public/s33314966.jpg", "rate": "7.0", "author": "\u738b\u7855"}, "\u8d27\u5e01\u7684\u6559\u8bad": {"link": "https://book.douban.com/subject/10439662", "bookname": "\u8d27\u5e01\u7684\u6559\u8bad", "img": "https://img1.doubanio.com/view/subject/s/public/s7046197.jpg", "rate": "8.9", "author": "\u5468\u5176\u4ec1"}, "\u4e2d\u56fd\u53e4\u4ee3\u7b80\u53f2": {"link": "https://book.douban.com/subject/2246559", "bookname": "\u4e2d\u56fd\u53e4\u4ee3\u7b80\u53f2", "img": "https://img1.doubanio.com/view/subject/s/public/s2689149.jpg", "rate": "8.0", "author": "\u5f20\u5e06"}, "\u94b1\u4ece\u54ea\u91cc\u6765": {"link": "https://book.douban.com/subject/34925762", "bookname": "\u94b1\u4ece\u54ea\u91cc\u6765", "img": "https://img3.doubanio.com/view/subject/s/public/s33551591.jpg", "rate": "7.0", "author": "\u5510\u6daf"}, "\u5e02\u573a\u7684\u903b\u8f91": {"link": "https://book.douban.com/subject/4893663", "bookname": "\u5e02\u573a\u7684\u903b\u8f91", "img": "https://img1.doubanio.com/view/subject/s/public/s4397638.jpg", "rate": "8.2", "author": "\u5f20\u7ef4\u8fce"}, "\u7f57\u9a6c\u4eba\u7684\u6545\u4e8b": {"link": "https://book.douban.com/subject/7055441", "bookname": "\u7f57\u9a6c\u4eba\u7684\u6545\u4e8b1", "img": "https://img1.doubanio.com/view/subject/s/public/s8488837.jpg", "rate": "8.8", "author": "\u76d0\u91ce\u4e03\u751f"}, "\u4e2d\u56fd\u56fd\u5bb6\u6cbb\u7406\u7684\u5236\u5ea6\u903b\u8f91": {"link": "https://book.douban.com/subject/26901114", "bookname": "\u4e2d\u56fd\u56fd\u5bb6\u6cbb\u7406\u7684\u5236\u5ea6\u903b\u8f91", "img": "https://img3.doubanio.com/view/subject/s/public/s29399593.jpg", "rate": "9.2", "author": "\u5468\u96ea\u5149"}, "\u6295\u8d44\u4e2d\u6700\u7b80\u5355\u7684\u4e8b": {"link": "https://book.douban.com/subject/26163553", "bookname": "\u6295\u8d44\u4e2d\u6700\u7b80\u5355\u7684\u4e8b", "img": "https://img9.doubanio.com/view/subject/s/public/s27653114.jpg", "rate": "8.7", "author": "\u90b1\u56fd\u9e6d"}, "\u5c11\u5e74\u51ef\u6b4c": {"link": "https://book.douban.com/subject/1091203", "bookname": "\u5c11\u5e74\u51ef\u6b4c", "img": "https://img1.doubanio.com/view/subject/s/public/s24399718.jpg", "rate": "9.2", "author": "\u9648\u51ef\u6b4c"}, "\u4e2d\u592e\u5e1d\u56fd\u7684\u54f2\u5b66\u5bc6\u7801": {"link": "https://book.douban.com/subject/30276702", "bookname": "\u4e2d\u592e\u5e1d\u56fd\u7684\u54f2\u5b66\u5bc6\u7801", "img": "https://img9.doubanio.com/view/subject/s/public/s29879195.jpg", "rate": "8.1", "author": "\u90ed\u5efa\u9f99"}, "\u7532\u9aa8\u6587": {"link": "https://book.douban.com/subject/6539859", "bookname": "\u7532\u9aa8\u6587", "img": "https://img1.doubanio.com/view/subject/s/public/s6979148.jpg", "rate": "9.3", "author": "\u4f55\u5049"}, "\u5386\u53f2\u7684\u5de8\u955c": {"link": "https://book.douban.com/subject/26591910", "bookname": "\u5386\u53f2\u7684\u5de8\u955c", "img": "https://img3.doubanio.com/view/subject/s/public/s28283792.jpg", "rate": "9.1", "author": "\u91d1\u89c2\u6d9b"}, "\u65b0\u7f16\u8bf4\u6587\u89e3\u5b57\u5927\u5168\u96c6": {"link": "https://book.douban.com/subject/1032967", "bookname": "\u8bf4\u6587\u89e3\u5b57", "img": "https://img9.doubanio.com/view/subject/s/public/s1026024.jpg", "rate": "9.2", "author": "[\u6c49]"}, "\u5546\u541b\u4e66": {"link": "https://book.douban.com/subject/4090803", "bookname": "\u5546\u541b\u4e66", "img": "https://img1.doubanio.com/view/subject/s/public/s4052388.jpg", "rate": "8.4", "author": "\u77f3\u78ca"}, "\u6539\u53d8\u5fc3\u7406\u5b66\u768440\u9879\u7814\u7a76": {"link": "https://book.douban.com/subject/5248516", "bookname": "\u6539\u53d8\u5fc3\u7406\u5b66\u768440\u9879\u7814\u7a76", "img": "https://img3.doubanio.com/view/subject/s/public/s27276912.jpg", "rate": "9.2", "author": "\u7f57\u6770\u2022\u970d\u514b"}, "\u6768\u4f2f\u5cfb": {"link": "https://book.douban.com/subject/1000888", "bookname": "\u8ad6\u8a9e\u8b6f\u8a3b", "img": "https://img1.doubanio.com/view/subject/s/public/s1670329.jpg", "rate": "9.0", "author": "\u694a\u4f2f\u5cfb"}, "\u4e2d\u56fd\u4e3a\u4ec0\u4e48\u6709\u524d\u9014": {"link": "https://book.douban.com/subject/4873444", "bookname": "\u4e2d\u56fd\u4e3a\u4ec0\u4e48\u6709\u524d\u9014", "img": "https://img1.doubanio.com/view/subject/s/public/s4386858.jpg", "rate": "7.1", "author": "\u7fdf\u4e1c\u5347"}, "\u7ba1\u5b50": {"link": "https://book.douban.com/subject/3661571", "bookname": "\u7ba1\u5b50", "img": "https://img9.doubanio.com/view/subject/s/public/s3948396.jpg", "rate": "8.3", "author": "\u674e\u5c71"}, "\u767d\u9c7c\u89e3\u5b57": {"link": "https://book.douban.com/subject/21649772", "bookname": "\u767d\u9c7c\u89e3\u5b57", "img": "https://img9.doubanio.com/view/subject/s/public/s26303695.jpg", "rate": "9.0", "author": "\u6d41\u6c99\u6cb3"}, "\u6295\u8d44\u8981\u4e49": {"link": "https://book.douban.com/subject/27173829", "bookname": "\u6295\u8d44\u8981\u4e49", "img": "https://img9.doubanio.com/view/subject/s/public/s29581756.jpg", "rate": "8.4", "author": "\u5218\u8bda\uff08\u5fae\u5149\u7834\u6653\uff09"}, "\u82cf\u4e16\u6c11": {"link": "https://book.douban.com/subject/34952676", "bookname": "\u82cf\u4e16\u6c11\uff1a\u6211\u7684\u7ecf\u9a8c\u4e0e\u6559\u8bad", "img": "https://img1.doubanio.com/view/subject/s/public/s33587329.jpg", "rate": "8.3", "author": "[\u7f8e]"}, "\u5c0f\u7a97\u5e7d\u8bb0": {"link": "https://book.douban.com/subject/1491630", "bookname": "\u5c0f\u7a97\u5e7d\u8bb0", "img": "https://img9.doubanio.com/view/subject/s/public/s5641654.jpg", "rate": "8.5", "author": "\u9648\u7ee7\u5112"}, "\u91d1\u878d\u7684\u672c\u8d28": {"link": "https://book.douban.com/subject/25843334", "bookname": "\u91d1\u878d\u7684\u672c\u8d28", "img": "https://img9.doubanio.com/view/subject/s/public/s27246465.jpg", "rate": "8.2", "author": "\u3010\u7f8e\u3011\u4f2f\u5357\u514b"}, "\u65e5\u672c\u7684\u4e16\u754c\u89c2": {"link": "https://book.douban.com/subject/34937365", "bookname": "\u65e5\u672c\u7684\u4e16\u754c\u89c2", "img": "https://img1.doubanio.com/view/subject/s/public/s33559469.jpg", "rate": "7.9", "author": "[\u7f8e]\u9a6c\u91cc\u4e4c\u65af\u00b7\u8a79\u68ee"}} \ No newline at end of file diff --git a/changelog.md b/changelog.md index abc149a..787175a 100644 --- a/changelog.md +++ b/changelog.md @@ -84,10 +84,12 @@ b['1']['2'] = {'3':1} # OK ## learn lesson +--- + # feature list - first abstract from kindle hard / local directory for different OS **done** - add GUI use QT **done** -- use thread to check kindle connection status **XXXX** +- use thread to check kindle connection status **done** - import function: - local **done** - kindle **done** @@ -101,7 +103,7 @@ b['1']['2'] = {'3':1} # OK - onenote - txt **done** - markdown **done** -- easily coly filter notes to clipboard +- easily copy filter notes to clipboard - implement command line based on [argparse](https://www.jianshu.com/p/a41fbd4919f8) - mobi / epub reader **XXXX** - import .azw3/.epub/.mobi file to kindle @@ -117,3 +119,4 @@ b['1']['2'] = {'3':1} # OK - sync modify to kindle device - compare parse html info with xpath & beautisoap & regex + diff --git a/downimg/71GBLkJWDTL._AC_UY218_.jpg b/downimg/71GBLkJWDTL._AC_UY218_.jpg deleted file mode 100644 index b2aa876..0000000 Binary files a/downimg/71GBLkJWDTL._AC_UY218_.jpg and /dev/null differ diff --git a/downimg/71Zs1nSJrgL._AC_UY218_.jpg b/downimg/71Zs1nSJrgL._AC_UY218_.jpg deleted file mode 100644 index 7add045..0000000 Binary files a/downimg/71Zs1nSJrgL._AC_UY218_.jpg and /dev/null differ diff --git a/kman.py b/kman.py index 6cb767c..dbeba0e 100644 --- a/kman.py +++ b/kman.py @@ -71,8 +71,9 @@ DEBUG = 1 # 0 - INFO; 1 - DEBUG LOG2FILE = 1 # 0 - to stdio; 1 - to file LOGFILE = 'log' DELIMITER= '|' -BACKUPNOTEFN = './backup/bk.note.data' -BACKUPWORDFN = './backup/bk.word.data' +BACKUPNOTEFN = './backup/bk.note.data' # kindle notes +BACKUPWORDFN = './backup/bk.word.data' # kindle words +BACKUPINFOFN = './backup/bk.info.data' # book information from douban/amazon #HEADER = {0:'type',1:'bookname',2:'author',3:'position',4:'date',5:'content'} # log info diff --git a/kmanapp.py b/kmanapp.py index 70afb9b..de8c532 100644 --- a/kmanapp.py +++ b/kmanapp.py @@ -89,6 +89,29 @@ class kmanWindow(QMainWindow): [self.filter_books, self.filter_list] = self.km.filter_clips(self.books_data) #self.filter_list = self.km.filter_words(self.words_data) + # initial books information which grab from douban or amazon + # if the information exist in backup file, initial with this file, + # and grap new book's information from douban + # else grap all book information from douban + self.books_info = defaultdict(dict) + try: + if os.path.exists(BACKUPINFOFN): + self.books_info = self.km.json2dict(BACKUPINFOFN) + increase_book_list = self.check_increase_books(self.books_data, self.books_info) + if len(increase_book_list) > 0: + trd = threading.Thread(target=self.grab_books_info, args=(increase_book_list,)) + trd.setDaemon(True) + trd.start() + else: + booklist = list(self.books_data.keys()) + trd = threading.Thread(target=self.grab_books_info, args=(book_list,)) + trd.setDaemon(True) + trd.start() + except Exception as e: + print(e) + finally: + pass + self.fill_treeview() self.refresh_ui_component(comp=1) @@ -126,6 +149,20 @@ class kmanWindow(QMainWindow): ui.tableView.verticalHeader().hide() ui.tableView.setModel(self.ui.tablemodel) + def check_increase_books(self, bks, bksinfo): + new_list = list(bks.keys()) # kindle's books with note + new_list = [re.split(r'[\((\-\::_\s]',nn.strip())[0] for nn in new_list] + last_list = list(bksinfo.keys()) # grab book information last time + increase_list = [] + for nn in new_list: + flag = 0 + for gg in last_list: + if nn in gg: flag = 1 + if flag == 0: + increase_list.append(nn) + + return increase_list + def add_ui_component(self): self.ui.searchComboBox.addItems([u'ALL',u'BOOKNAME',u'CONTENT',u'AUTHOR']) self.ui.treeView.resize(200,200) @@ -514,26 +551,32 @@ class kmanWindow(QMainWindow): r = msgBox.exec() # backup file when kman closed - # read backup file when kman start + # so we can read backup file when kman start def closeEvent(self, e): with open(BACKUPNOTEFN, 'w', encoding='utf8', errors='ignore') as fw: fw.write(self.km.dict2json(self.books_data)) with open(BACKUPWORDFN, 'w', encoding='utf8', errors='ignore') as fw: fw.write(self.km.dict2json(self.words_data)) + with open(BACKUPINFOFN, 'w', encoding='utf8', errors='ignore') as fw: + fw.write(self.km.dict2json(self.books_info)) # stop check thread self.flag = False - def grab_all_book_info(self): + def grab_books_info(self, booklist): - for bkname in self.books_data.keys(): + bks_info = {} + for bkname in booklist: bkname = re.split(r'[\((\-\::_\s]',bkname.strip())[0] print(bkname) bkinfo = self.spide.grab_book_info(bkname) filter_bkinfo = self.spide.filter_spide_book(bkinfo) + bks_info.update(filter_bkinfo) if filter_bkinfo: self.spide.down_book_img(filter_bkinfo) + return self.books_info.update(bks_info) + # thanks Martin Fitzpatrick ^_^ # https://www.learnpyqt.com/courses/model-views/qtableview-modelviews-numpy-pandas/ class nTableModel(QAbstractTableModel): @@ -576,9 +619,19 @@ if __name__ == "__main__": #kmw.showFullScreen() kmw.show() - trd = threading.Thread(target=kmw.grab_all_book_info) - trd.setDaemon(True) - trd.start() + """ + # move to __init__() + try: + booklist = self.books_data.keys() + trd = threading.Thread(target=kmw.grab_books_info, args=(booklist,)) + trd.setDaemon(True) + trd.start() + except Exception as e: + print(e) + pass + finally: + pass + """ # loop check kindle is connected or not # BUG to be implement XXXX diff --git a/parseweb.py b/parseweb.py index 3e91cdc..6c0eb6a 100644 --- a/parseweb.py +++ b/parseweb.py @@ -182,20 +182,17 @@ class bookInfoSpide(): mparams['k'] = mbkn try: - s = requests.Session() - s.header = mheaders - s.params = mparams - r = s.get(murl) + session = requests.Session() + session.header = mheaders + session.params = mparams + r = session.get( url=murl, headers=mheaders, params=mparams) #r = requests.get( url=murl, headers=mheaders, params=mparams) - except requests.exceptions.ConnectionError: print('ConnectionError -- please wait 3 seconds') time.sleep(3) - except requests.exceptions.ChunkedEncodingError: print('ChunkedEncodingError -- please wait 3 seconds') time.sleep(3) - except: print('Unfortunitely -- An Unknow Error Happened, Please wait 3 seconds') time.sleep(3) @@ -361,7 +358,6 @@ class bookInfoSpide(): except Exception as e: print(e) - if __name__ == '__main__': spide = bookInfoSpide()