2025-09-18 17:08:03 +08:00
2025-09-18 17:02:40 +08:00
2021-08-25 17:58:31 +08:00
2024-04-03 15:08:22 +08:00
2021-08-25 17:58:31 +08:00
2020-06-16 17:50:09 +08:00
2024-04-03 15:08:22 +08:00
2020-06-16 09:50:09 +08:00
2025-09-18 17:02:40 +08:00
2025-09-18 17:08:03 +08:00
2021-08-25 17:58:31 +08:00
2020-06-30 08:31:21 +08:00
2025-09-18 17:02:40 +08:00
2021-08-25 17:58:31 +08:00
2020-06-10 09:11:34 +08:00
2020-06-30 12:58:59 +08:00
2020-06-30 12:06:07 +08:00
2025-09-18 17:02:40 +08:00
2020-06-19 14:13:36 +08:00
2021-08-25 17:58:31 +08:00
2020-06-26 11:26:19 +08:00
2025-09-18 17:02:40 +08:00
2020-06-05 14:44:24 +08:00
2020-08-14 08:38:29 +08:00
2020-06-29 17:01:30 +08:00
2025-09-18 17:02:40 +08:00
2020-06-30 12:06:07 +08:00
2021-08-25 17:58:31 +08:00
2020-05-28 09:11:38 +08:00
2025-09-18 17:02:40 +08:00
2025-09-18 17:02:40 +08:00
2021-08-25 17:58:31 +08:00
2020-08-14 08:38:29 +08:00
2020-06-23 14:38:36 +08:00
2020-06-30 08:31:21 +08:00
2020-09-22 12:53:42 +08:00
2021-08-25 17:58:31 +08:00
2020-07-06 13:00:52 +08:00
2020-07-06 13:00:52 +08:00
2021-08-25 17:58:31 +08:00
2025-09-18 17:02:40 +08:00
2025-09-18 17:02:40 +08:00
2020-06-07 10:21:02 +08:00
2020-06-30 08:31:21 +08:00
2020-06-12 23:33:35 +08:00
2020-06-12 23:33:35 +08:00
2025-09-18 17:02:40 +08:00

Kindle Manager


找不到好用的APP本意自写自用兼练手零星写了几天觉得还趁手

后端 python, 前端GUI PySide2

关于打包

研究了一个周末python打包工具试用了py2apppyinstaller问题始终没有解决艰难放弃 -- 20200621

解决MAC打包和移植问题, 各种查询和试错,前后花的时间应该超过写这个软件的时间 参见总结 -- 20200705

CHANGE LOG

ChangeLog 这里记录迭代过程,及过程中记录的一些功能的想法, 以及python使用中的一些问题lession learning

软件下载

使用说明

大体功能:

  1. 连kindle后会自动识别设备
  2. 读取kindle/本地笔记,获取标注和剪贴文章。一键导入/刷新/同步
  3. 会对笔记做一些去重及备注匹配等修正动作。
  4. 按书本标题作者搜索默认模糊搜索并导出markdown等格式标注
  5. 一些导入导出及回写等功能,回写/修改暂未做,自己不太喜欢,担心存储内容会乱
  6. 写的过程中临时想到的一些功能,比如在线获取豆瓣/amazon信息关联

mainwindow mainwindow1 mainwindow2

版权等问题

  1. 对于自己笔记涉及的书会去douban/amazon爬取少量bookinfo不知算不算侵权

  2. 图标来自findicons,不知有没有版权

  3. 所有code系本人码出如有借用会在注释中以refrence说明

  4. 其他问题,望告知, gavin's mail address

  5. 所有内容解析都采用正则实现没有使用xpathbeautifulsoap。据说regexp更快, 当然对我来说生产效率的原因有兴趣可以看代码。补充关于regexp&xpath&beautifulsoap效率分析本人做了对比结果很出我的意料参见

  6. 不得不说python的数据结构比perl难用一些不过defaultdict用趁手了也还可以

类图

class_map.JPG

GUI Design

main_window.JPG main_window_toolbar.JPG book_info_view.JPG word_view.JPG config_dialog.JPG

格式说明

3种类型

书签

格式为:

庆余年(精校版) (猫腻)^M
- 您在位置 #33260 的书签 | 添加于 2020年1月12日星期日 下午10:37:10^M
^M
^M

标注

格式为:

<feff>薛兆丰经济学讲义 (薛兆丰)^M
- 您在位置 #1408-1410的标注 | 添加于 2020年1月13日星期一 上午8:11:05^M
^M
么到底什么叫边际?边际就是“新增”带来的“新增”。 例如,边际成本就是每新增一个单位产品所需要付出的新增成本;边际收入是每多卖一个产品能够带来的新增收入;边际产量是每新增一份投入所带来的新增产量;边际效用是每消耗一个单位的商品所能带来>的新增享受。^M 

笔记

笔记比较特殊,笔记是与标注连在一起的。表示该笔记是在该标注上完成的。

<feff>薛兆丰经济学讲义 (薛兆丰)^M
- 您在位置 #4284-4286的标注 | 添加于 2020年1月30日星期四 上午10:23:58^M
^M
一个国家很大,贫富有差距,并非每个学校和家长都能负担得起这样标准的校车。标准太高,就会逼着很多学校,尤其是农村的学校放弃提供校车,家长们就只能使用安全性能更低的交通工具,比如自己骑自行车或雇用黑车等,结果是孩子们享受到的安全保障反而降低了。^M
==========^M
<feff>薛兆丰经济学讲义 (薛兆丰)^M
- 您在位置 #4286 的笔记 | 添加于 2020年1月30日星期四 上午10:26:10^M
^M
是山寨 假货 问题^M
==========^M
<feff>薛兆丰经济学讲义 (薛兆丰)^M
- 您在位置 #4286 的笔记 | 添加于 2020年1月30日星期四 上午10:26:31^M
^M
山寨 假货 问题^M

剪贴文章

    Book Title\n
    - 剪贴文章 位置N | 已添加至 sometime\n
    \n
    剪贴文章内容\n

每一个摘录都用`==========\n`分割开。

内容提取

书名

<feff>薛兆丰经济学讲义 (薛兆丰)^M
vi re:
^.\([^(]\+\)(

作者

庆余年(精校版) (猫腻)^M
vi re:
([^()]\{-})^M$

位置/页码/添加时间

- 您在位置 #4286 的笔记 | 添加于 2020年1月30日星期四 上午10:26:31^M
vi re:
#\(\d\+-\{0,1}\d\+\).\+\(\d\{4}年\d\{1,2}月\d\{1,2}日\)\(星期.\) \(..\)\(\d\{1,2}:\d\{1,2}:\d\{1,2}\)
 group1 - 页码
 group2 - xxxx年xx月xx日
 group3 - 星期
 group4 - 上下午
 group5 - 时间

数据结构

dict data structure

book data structure

book =
{
    "bookname_xxx": {
        "author": "李",
        "section1636": {
            "content": "张",
            "day": "2020年4月3日",
            "meridiem": "下午",
            "position": "311-311",
            "time": "3:00:53",
            "type": "HL",
            "week": "星期五"
        },
        "section1651": {
            "content": "治",
            "day": "2020年4月3日",
            "meridiem": "下午",
            "position": "514",
            "time": "3:43:50",
            "type": "NT",
            "week": "星期五"
        },
        "section1814": {
            "content": null,
            "day": "2020年4月12日",
            "meridiem": "下午",
            "position": "5186",
            "time": "2:20:12",
            "type": "BM",
            "week": "星期日"
        },
        ...
    },
    ...
}
words datastructure achieved from database **sqlite2**
/Volumes/Kindle/system/vocabulary/vocab.db

table: BOOK_INFO

  id         - book key, CR!NYRVJ9BT315PKFRS9B9KVB0XF213:6F1EB741
  asin       x
  guid       x
  lang       x zh/en
  title      - bookname
  authors    - author

table: LOOKUPS

  id         x lookups key, CR!NYRVJ9BT315PKFRS9B9KVB0XF213:6F1EB741:xxx
  word_key   - zh:当
  book_key   - book key, like CR!NYRVJ9BT315PKFRS9B9KVB0XF213:6F1EB741
  dict_key   x
  pos        - position, like AYkJAAAAAAAA:28781, 115907
  usage      - usage
  timestamp  - 1566738399454

table: WORDS

  id         - zh:当
  word       x 当
  stem       x
  lang       - zh/en
  category   - 0 learning, 100 mastered
  timestamp  x 1591141963703
  profileid  x
words_data = [bookinfo, words, lookups]
bookinfo = { 'book_key': {
             'bookname':'bookname_xxx',
             'author':'author_xxx'},}
   words = { 'word_id': {
             'word':'xxx',
             'category':0},
            }
 lookups = [['id','word_key','book_key','pos','usage','timestamp'],
            ['id','word_key','book_key','pos','usage','timestamp'],]
book information grabed from douban
{
"25853071": { # sid
    "link":"https://....xxxxx"
    "bookname": "庆余年",
    "img": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2575362797.jpg",
    "rate": "8.0",
    "author": "猫腻"
},...}

Markdown文本

TYPE | bookname | author | marktime | content
--|--|--|--|--
xx|xx|xx|xx|xx

haveaniceday1.jpg

Description
kindle笔记管理 找不到好用的APP,本意自写自用兼练手,零星写了几天觉得还趁手
https://biboer.cn
Readme 383 MiB
Languages
Python 56%
HTML 42.6%
CSS 1.4%