{"id":13457364,"url":"https://github.com/dtysky/Awaken","last_synced_at":"2025-03-24T12:31:33.669Z","repository":{"id":65254780,"uuid":"535188466","full_name":"dtysky/Awaken","owner":"dtysky","description":"一个基于WebDAV的全平台EPUB阅读器，支持笔记、进度、书签同步，支持Kindle笔记导入。","archived":false,"fork":false,"pushed_at":"2023-01-18T04:52:31.000Z","size":8695,"stargazers_count":610,"open_issues_count":11,"forks_count":35,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-07-31T08:19:22.765Z","etag":null,"topics":["epub","hybrid","kindle","webdav"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dtysky.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-11T04:19:06.000Z","updated_at":"2024-07-27T12:28:36.000Z","dependencies_parsed_at":"2023-02-10T13:16:08.395Z","dependency_job_id":null,"html_url":"https://github.com/dtysky/Awaken","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtysky%2FAwaken","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtysky%2FAwaken/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtysky%2FAwaken/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dtysky%2FAwaken/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dtysky","download_url":"https://codeload.github.com/dtysky/Awaken/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221967447,"owners_count":16909106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["epub","hybrid","kindle","webdav"],"created_at":"2024-07-31T08:01:41.392Z","updated_at":"2024-10-29T01:31:07.474Z","avatar_url":"https://github.com/dtysky.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Awaken\r\n\r\n![](./src/frontend/assets/logo.png)\r\n\r\n一个多端同步阅读软件：\r\n\r\n1. 支持桌面（Windows、macOS、理论Linux）和移动端（安卓、iOS）。\r\n2. 基于**WebDAV**的书籍管理，支持进度、笔记、书签同步，并且支持从**Kindle**导入笔记。\r\n3. 仅支持**EPUB**电子书，其他的可以自行转换，例如[一键批量下载 Kindle 全部电子书工具 + 移除 DRM 解密插件 + 格式转换教程 (开源免费)](https://www.iplaysoft.com/kindle-download-dedrm.html)。\r\n\r\n**本项目不接任何需求，但是欢迎任何BUG修复或功能性的PR，当然那种什么代码不符合你的审美改改格式、改改先进的构建工具之类的还是算了，恕我懒得处理**。\r\n\r\n技术教程见：\r\n\r\n[Awaken-基于Hybrid方案和WebDAV的全平台开源阅读软件](https://zhuanlan.zhihu.com/p/594798266)\r\n\r\n功能展示见视频：\r\n\r\n[![](./cover.jpg)](https://www.bilibili.com/video/BV1uD4y1j79i/)\r\n\r\n## 应用包\r\n\r\n详见[Change Log](./CHANGELOG.md)。\r\n\r\n## 开发\r\n\r\n前置需求：\r\n\r\n1. NodeJS v16以及以上\r\n2. Rust环境\r\n\r\n首先`Clone`整个仓库，初始化项目：\r\n\r\n```sh\r\nnpm run init\r\n```\r\n\r\n\u003e需要用其他包管理工具的注意加上`--force`，赖得处理UIKit的React版本冲突了...\r\n\r\n接着运行开发指令：\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\n然后查到**本机IP地址**，记`DEV_URL = ${IP}:8888`，分平台处理：\r\n\r\n### 桌面端\r\n\r\n在对应的操作系统上，执行一句命令即可：\r\n\r\n```sh\r\nnpm run dev-desktop\r\n```\r\n\r\n但注意需要在**非虚拟机包括WSL**环境执行。\r\n\r\n### 安卓端\r\n\r\n用最新的**Android Studio**打开**platform/android**下的工程，然后修改`MainActivity.kt`中的字段：\r\n\r\n```kotlin\r\nprivate val host: String = \"http://${DEV_URL}\"\r\n```\r\n\r\n接着连上设备调试即可。\r\n\r\n### iOS端\r\n\r\n用**XCode**打开**platform/ios**下的工程，然后修改`ContentView.swift`中的字段：\r\n\r\n```kotlin\r\nlet host: String = \"http://${DEV_URL}\"\r\n```\r\n\r\n接着连上设备调试即可。\r\n\r\n## 测试\r\n\r\n测试很简单，如果实在桌面端，需要你一开始选择一个空目录作为本地书籍存储，可以选择**test/client**目录，接着在主界面的**设定**中，填入以下配置：\r\n\r\n1. 地址：http://${IP}:8889/dav/\r\n2. 用户名：dtysky\r\n3. 密码：114514\r\n\r\n确认后即连接到本地调试服务器，接下来你可以在**test**目录中找到一些测试用书籍，来测试添加、删除、阅读等等功能。本地测试服务器的文件落在了**test/server/dav**下。\r\n\r\n## 发布\r\n\r\n发布首先要执行指令：\r\n\r\n```sh\r\nnpm run build\r\n```\r\n\r\n然后分平台处理：\r\n\r\n### 桌面端\r\n\r\n直接执行：\r\n\r\n```sh\r\nnpm run release-desktop\r\n```\r\n\r\n即可，但同样需要在**非虚拟机包括WSL**环境执行。如果只发布桌面端，也可以直接执行：\r\n\r\n```sh\r\nnpm run release\r\n```\r\n\r\n产物在`platforms/desktop/target/release/bundle`中。\r\n\r\n### 安卓端\r\n\r\n打开项目工程，在`Build` -\u003e `Select Build Variants`窗口，设置选择为`release`模式，然后`Build` -\u003e `Generate Signed Build or APK`即可，可能需要重新生成签名文件。\r\n\r\n产物在`platforms/android/app/release`中。\r\n\r\n### iOS端\r\n\r\n打开项目工程，构建的`schema`选择`release`即可。\r\n\r\n## todo\r\n\r\n1. 移动端，默认选择文本后的弹窗行为。\r\n2. 书籍列表分页。\r\n3. 书籍列表搜索。\r\n\r\n## Copyright\r\n\r\n**Copyright © 2022, 戴天宇, Tianyu Dai (dtysky \u003c dtysky@outlook.com \u003e). All Rights Reserved.**  \r\n**This project is free software and released under the** [GNU Lesser General Public License (LGPL)](https://www.gnu.org/licenses/lgpl-3.0.en.html).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdtysky%2FAwaken","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdtysky%2FAwaken","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdtysky%2FAwaken/lists"}