From ce4319ec256276f7d76d9728b7d530110b8c8637 Mon Sep 17 00:00:00 2001 From: truewhile <62226914+truewhile@users.noreply.github.com> Date: Thu, 1 Oct 2026 21:57:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=98=85=E8=AF=BB=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/index.html | 26 + docs/reader-plan.md | 6 +- docs/reader-ui-spec.md | 38 +- internal/handler/handler.go | 12 + internal/handler/reader_browser_test.go | 247 +++ internal/handler/reader_local_audio_test.go | 174 +++ internal/handler/reader_routes.go | 302 +++- internal/helper/http.go | 64 +- internal/helper/http_test.go | 73 + internal/model/reader.go | 13 + internal/repository/reader_repository.go | 29 +- internal/service/filemanager.go | 8 + internal/service/filemanager_test.go | 31 + internal/service/reader/audio_config_test.go | 44 + internal/service/reader/audio_transcode.go | 368 +++++ .../service/reader/audio_transcode_test.go | 257 ++++ internal/service/reader/book_type_test.go | 91 ++ internal/service/reader/bookshelf_test.go | 147 ++ internal/service/reader/browser_panel.go | 824 ++++++++++ internal/service/reader/browser_panel_test.go | 392 +++++ internal/service/reader/http_encoding_test.go | 119 ++ internal/service/reader/local.go | 1332 +++++++++++++++++ internal/service/reader/local_test.go | 957 ++++++++++++ internal/service/reader/login.go | 35 +- internal/service/reader/login_test.go | 17 +- internal/service/reader/reader.go | 355 ++++- internal/service/reader/rule/analyzer.go | 64 +- internal/service/reader/rule/bridge.go | 75 +- internal/service/reader/rule/browser.go | 227 +++ internal/service/reader/rule/browser_test.go | 305 ++++ internal/service/reader/rule/datauri.go | 81 + internal/service/reader/rule/datauri_test.go | 108 ++ internal/service/reader/rule/errors.go | 2 - internal/service/reader/rule/goja.go | 173 ++- internal/service/reader/rule/js_scope_test.go | 98 ++ internal/service/reader/rule/jsobjects.go | 79 + .../service/reader/rule/sample_source_test.go | 8 +- internal/service/reader/rule/state.go | 52 + .../reader/rule/testdata/sample_loginUrl.js | 22 + internal/service/reader/rule/url.go | 52 +- .../service/reader/rule/url_binding_test.go | 149 ++ internal/service/reader/search_query_test.go | 139 ++ internal/service/reader/state.go | 33 +- web/src/api/reader.ts | 87 +- web/src/components/Layout.tsx | 8 +- web/src/components/LayoutHeaderSections.tsx | 199 ++- web/src/components/LayoutReaderModeToggle.tsx | 37 + web/src/pages/HomePage.tsx | 4 +- web/src/pages/reader/BrowserPanel.tsx | 231 +++ web/src/pages/reader/ReaderAudioPanel.tsx | 702 ++++++++- web/src/pages/reader/ReaderHomeContent.tsx | 315 +++- web/src/pages/reader/ReaderSearchPage.tsx | 27 +- web/src/pages/reader/ReaderViewPage.tsx | 310 +++- .../pages/reader/ServerFilePickerDialog.tsx | 212 +++ web/src/pages/reader/SourceLoginDialog.tsx | 80 +- web/src/stores/readerSettings.ts | 25 + 56 files changed, 9511 insertions(+), 354 deletions(-) create mode 100644 dist/index.html create mode 100644 internal/handler/reader_browser_test.go create mode 100644 internal/handler/reader_local_audio_test.go create mode 100644 internal/helper/http_test.go create mode 100644 internal/service/reader/audio_config_test.go create mode 100644 internal/service/reader/audio_transcode.go create mode 100644 internal/service/reader/audio_transcode_test.go create mode 100644 internal/service/reader/book_type_test.go create mode 100644 internal/service/reader/bookshelf_test.go create mode 100644 internal/service/reader/browser_panel.go create mode 100644 internal/service/reader/browser_panel_test.go create mode 100644 internal/service/reader/http_encoding_test.go create mode 100644 internal/service/reader/local.go create mode 100644 internal/service/reader/local_test.go create mode 100644 internal/service/reader/rule/browser.go create mode 100644 internal/service/reader/rule/browser_test.go create mode 100644 internal/service/reader/rule/datauri.go create mode 100644 internal/service/reader/rule/datauri_test.go create mode 100644 internal/service/reader/rule/js_scope_test.go create mode 100644 internal/service/reader/rule/url_binding_test.go create mode 100644 internal/service/reader/search_query_test.go create mode 100644 web/src/components/LayoutReaderModeToggle.tsx create mode 100644 web/src/pages/reader/BrowserPanel.tsx create mode 100644 web/src/pages/reader/ServerFilePickerDialog.tsx diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..232bbe8 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,26 @@ + + +
+ + + + + + + + +