/Awaken

一个基于WebDAV的全平台EPUB阅读器,支持笔记、进度、书签同步,支持Kindle笔记导入。

Primary LanguageTypeScriptGNU Lesser General Public License v3.0LGPL-3.0

Awaken

一个多端同步阅读软件:

  1. 支持桌面(Windows、macOS、理论Linux)和移动端(安卓、iOS)。
  2. 基于WebDAV的书籍管理,支持进度、笔记、书签同步,并且支持从Kindle导入笔记。
  3. 仅支持EPUB电子书,其他的可以自行转换,例如一键批量下载 Kindle 全部电子书工具 + 移除 DRM 解密插件 + 格式转换教程 (开源免费)

本项目不接任何需求,但是欢迎任何BUG修复或功能性的PR,当然那种什么代码不符合你的审美改改格式、改改先进的构建工具之类的还是算了,恕我懒得处理

技术教程见:

Awaken-基于Hybrid方案和WebDAV的全平台开源阅读软件

功能展示见视频:

应用包

详见Change Log

开发

前置需求:

  1. NodeJS v16以及以上
  2. Rust环境

首先Clone整个仓库,初始化项目:

npm run init

需要用其他包管理工具的注意加上--force,赖得处理UIKit的React版本冲突了...

接着运行开发指令:

npm run dev

然后查到本机IP地址,记DEV_URL = ${IP}:8888,分平台处理:

桌面端

在对应的操作系统上,执行一句命令即可:

npm run dev-desktop

但注意需要在非虚拟机包括WSL环境执行。

安卓端

用最新的Android Studio打开platform/android下的工程,然后修改MainActivity.kt中的字段:

private val host: String = "http://${DEV_URL}"

接着连上设备调试即可。

iOS端

XCode打开platform/ios下的工程,然后修改ContentView.swift中的字段:

let host: String = "http://${DEV_URL}"

接着连上设备调试即可。

测试

测试很简单,如果实在桌面端,需要你一开始选择一个空目录作为本地书籍存储,可以选择test/client目录,接着在主界面的设定中,填入以下配置:

  1. 地址:http://${IP}:8889/dav/
  2. 用户名:dtysky
  3. 密码:114514

确认后即连接到本地调试服务器,接下来你可以在test目录中找到一些测试用书籍,来测试添加、删除、阅读等等功能。本地测试服务器的文件落在了test/server/dav下。

发布

发布首先要执行指令:

npm run build

然后分平台处理:

桌面端

直接执行:

npm run release-desktop

即可,但同样需要在非虚拟机包括WSL环境执行。如果只发布桌面端,也可以直接执行:

npm run release

产物在platforms/desktop/target/release/bundle中。

安卓端

打开项目工程,在Build -> Select Build Variants窗口,设置选择为release模式,然后Build -> Generate Signed Build or APK即可,可能需要重新生成签名文件。

产物在platforms/android/app/release中。

iOS端

打开项目工程,构建的schema选择release即可。

todo

  1. 移动端,默认选择文本后的弹窗行为。
  2. 书籍列表分页。
  3. 书籍列表搜索。

Copyright

Copyright © 2022, 戴天宇, Tianyu Dai (dtysky < dtysky@outlook.com >). All Rights Reserved.
This project is free software and released under the GNU Lesser General Public License (LGPL).