From 2ca58eca98d4cad8a49386b9baf5d63c9f3266d2 Mon Sep 17 00:00:00 2001 From: Linkjie <52249559+Linkjie-11@users.noreply.github.com> Date: Fri, 23 Feb 2024 17:15:22 +0800 Subject: [PATCH] App/reader (#923) * Add reader --------- Co-authored-by: qiulinjie0327 <52249559+qiulinjie0327@users.noreply.github.com> --- reader/README.md | 15 +++++++ reader/data.yml | 13 ++++++ reader/latest/data.yml | 73 +++++++++++++++++++++++++++++++ reader/latest/docker-compose.yml | 25 +++++++++++ reader/logo.png | Bin 0 -> 24912 bytes 5 files changed, 126 insertions(+) create mode 100644 reader/README.md create mode 100644 reader/data.yml create mode 100644 reader/latest/data.yml create mode 100644 reader/latest/docker-compose.yml create mode 100644 reader/logo.png diff --git a/reader/README.md b/reader/README.md new file mode 100644 index 00000000..37975676 --- /dev/null +++ b/reader/README.md @@ -0,0 +1,15 @@ +# 免责声明(Disclaimer) + +*阅读是一款提供网络文学搜索的工具,为广大网络文学爱好者提供一种方便、快捷舒适的试读体验。 +*当您搜索一本书的时,阅读会将该书的书名以关键词的形式提交到各个第三方网络文学网站。各第三方网站返回的内容与阅读无关,阅读对其概不负责,亦不承担任何法律责任。任何通过使用阅读而链接到的第三方网页均系他人制作或提供,您可能从第三方网页上获得其他服务,阅读对其合法性概不负责,亦不承担任何法律责任。第三方搜索引擎结果根据您提交的书名自动搜索获得并提供试读,不代表阅读赞成或被搜索链接到的第三方网页上的内容或立场。您应该对使用搜索引擎的结果自行承担风险。 + +## TODO: + + - 定时更新书架书籍章节 + - 多源并发搜索书籍 + - 并发更新书架章节 + - 并发搜索书籍来源 + - WebDav同步 + - 导入本地书籍,支持epub + - 阅读3核心兼容。已最大可能兼容,支持使用webview,支持使用javascript。 + - 支持RSS订阅 diff --git a/reader/data.yml b/reader/data.yml new file mode 100644 index 00000000..ce55837d --- /dev/null +++ b/reader/data.yml @@ -0,0 +1,13 @@ +additionalProperties: + key: reader + name: reader + tags: + - Tool + shortDescZh: 阅读3服务器版 + shortDescEn: reader-server + type: tool + crossVersionUpdate: true + limit: 0 + website: https://github.com/hectorqin/reader + github: https://github.com/hectorqin/reader + document: https://github.com/hectorqin/reader/blob/master/doc.md \ No newline at end of file diff --git a/reader/latest/data.yml b/reader/latest/data.yml new file mode 100644 index 00000000..6f8abd88 --- /dev/null +++ b/reader/latest/data.yml @@ -0,0 +1,73 @@ +additionalProperties: + formFields: + - default: '4396' + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: 'hectorqin/reader和hectorqin/reader:openj9-latest' + edit: true + envKey: READER_IMAGE + labelEn: reader:openj9-latest:arm64:This image is preferred for arm64 architecture or small memory machines + labelZh: reader:openj9-latest:arm64架构或小内存机器优先使用此镜像 + required: true + type: text + - default: '/home/reader/logs' + edit: true + envKey: READER_LOGS_PATH + labelEn: Logs Path + labelZh: 日志路径 + required: true + type: text + - default: '/home/reader/storage' + edit: true + envKey: READER_STORAGE_PATH + labelEn: Storage Path + labelZh: 存储路径 + required: true + type: text + - default: '50' + edit: true + envKey: READER_APP_USERLIMIT + labelEn: User Limit + labelZh: 用户上限 + required: true + type: number + - default: '200' + edit: true + envKey: READER_APP_USERBOOKLIMIT + labelEn: User Book Limit + labelZh: 用户书籍上限 + required: true + type: number + - default: 'true' + edit: true + envKey: READER_APP_CACHECHAPTERCONTENT + labelEn: Cache Chapter Content + labelZh: 开启缓存章节内容 V2.0 + required: true + type: text + - default: 'true' + edit: true + envKey: READER_APP_SECURE + labelEn: Enable Login Authentication + labelZh: 开启登录鉴权,开启后将支持多用户模式 + required: true + type: text + - default: 'adminpwd' + edit: true + envKey: READER_APP_SECUREKEY + labelEn: Admin Password + labelZh: 管理员密码 + required: true + type: text + - default: 'registercode' + edit: true + envKey: READER_APP_INVITECODE + labelEn: Invite Code + labelZh: 注册邀请码 + required: true + type: text diff --git a/reader/latest/docker-compose.yml b/reader/latest/docker-compose.yml new file mode 100644 index 00000000..a891cb27 --- /dev/null +++ b/reader/latest/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3.1' +services: + reader: + image: "${READER_IMAGE}" + container_name: ${CONTAINER_NAME} + restart: always + ports: + - "${PANEL_APP_PORT_HTTP}:8080" #4396端口映射可自行修改 + networks: + - share_net + volumes: + - "${READER_LOGS_PATH}:/logs" #log映射目录 /home/reader/logs 映射目录可自行修改 + - "${READER_STORAGE_PATH}:/storage" #数据映射目录 /home/reader/storage 映射目录可自行修改 + environment: + - SPRING_PROFILES_ACTIVE=prod + - "READER_APP_USERLIMIT=${READER_APP_USERLIMIT}" #用户上限,默认50 + - "READER_APP_USERBOOKLIMIT=${READER_APP_USERBOOKLIMIT}" #用户书籍上限,默认200 + - "READER_APP_CACHECHAPTERCONTENT=${READER_APP_CACHECHAPTERCONTENT}" #开启缓存章节内容 V2.0 + # 下面都是多用户模式配置 + - "READER_APP_SECURE=${READER_APP_SECURE}" #开启登录鉴权,开启后将支持多用户模式 + - "READER_APP_SECUREKEY=${READER_APP_SECUREKEY}" #管理员密码 建议修改 + - "READER_APP_INVITECODE=${READER_APP_INVITECODE}" #注册邀请码 建议修改,如不需要可注释或删除 +networks: + share_net: + driver: bridge diff --git a/reader/logo.png b/reader/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..930f00a9a148a595063aa057f2c143df64b282ff GIT binary patch literal 24912 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 )K@@NB3y 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