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 000000000..37975676e --- /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 000000000..ce55837dc --- /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 000000000..6f8abd889 --- /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 000000000..a891cb274 --- /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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 literal 0 HcmV?d00001