首页 技术 正文
技术 2022年11月11日
0 收藏 721 点赞 5,042 浏览 944 个字

代码 github 地址:https://github.com/JackonYang/bookhub

初稿:

bookhub — 扁平化本地电子书管理与分享工具  bookhub — 扁平化本地电子书管理与分享工具

1. 关键功能点

  1. 扫描本地电子书(扩展名 pdf/epub 等),将不重复的复制到特定目录(图书仓库)下。          — 电子书去重
  2. 把书的名字、大小等信息写入数据库,与豆瓣关联,建立个人图书信息库。                          — 为后续扩展提供基础
  3. 浏览、搜索、打开。基于图书信息库,搜索/浏览的维度更灵活。                                       — 比全盘搜索 + 资源管理器方便很多
  4. 分享个人图书信息库。github 上开个仓库。可以自由参考、合并他人仓库。                         — 扫一下硬盘,索要图书、勾搭同伴、发现好书
  5. 记录并分析阅读行为。数据存在本地,可以像图书信息一样分享。                                      — 优化个人读书习惯,反思阅读过程更容易
  6. 如果把扩展名改成 avi/rmvb/ed2k 呢?                                                                     — 敢分享者,真英雄。

第 2 条是内部的实现方式,也是后续第 3-5 条功能的实现基础。

bookhub — 扁平化本地电子书管理与分享工具

2. 架构

GUI 提供基本的本地电子书管理功能。书籍的详细信息管理、分享等,通过 Web 页面实现。

GUI 与 Web 共用一个数据库。

先只做 GUI,实现以下功能:

1. 扫描电子书

2. 浏览/搜索/打开 电子书

3. 操作日志

2.1 UI 层

FrameOverView 和 Scanner 是 2 个用户可见的界面。

其中,Scanner 暂时只支持命令行完成导入操作。

后续提供 FrameScan 调用 Scanner,实现界面操作。

Scanner 依赖于 Model 层 MediaRepo 的 add_file 方法,扫描到目标文件后,通过 add_file 方法加入仓库中。

FrameOverView 使用 ObjectListView 实现,直接依赖于 Model 层的 BookMeta

2.2 BookMeta

类 ORM 的一个 Model,主要提供单条数据 getter/setter 的封装。

MediaRepo 作为 BookMeta 的 Manager,封装数据库的查询/更新、文件系统的打开文件操作。

2.3 MediaRepo

管理数据库连接和文件系统。

封装基本的增删改查操作。

2.4 Logger

记录详细操作信息,写入数据库。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,967
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,487
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,332
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,115
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,748
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,783