How mrfeng007/legado works
Legado is an Android novel-reading app: users discover or import sources and books, retrieve chapters, read or listen, and manage their library. The README also documents RSS subscriptions, local TXT/EPUB reading, content replacement, and Web/Content Provider APIs, so these appear as separate capabilities. Source excerpts confirm selected API, cache, cookie, export, and TTS behavior; other links are limited to capabilities and paths established by the tree and README.
Main entry points: ui Library and reader UI · AppDatabase.kt App database · BookController.kt Book API controller · WebBook.kt Online book workflow
Components 23
Library and import
- Library and reader UI
app/src/main/java/io/legado/app/ui - Import and association
app/src/main/java/io/legado/app/ui/association - Book models
app/src/main/java/io/legado/app/data/entities/Book.kt
Sources and content
- Local book parsing
app/src/main/java/io/legado/app/model/localBook - Online book workflow
app/src/main/java/io/legado/app/model/webBook/WebBook.kt - Rule analysis
app/src/main/java/io/legado/app/model/analyzeRule/RuleAnalyzer.kt - HTTP and cookies
app/src/main/java/io/legado/app/help/http/HttpHelper.kt - RSS subscriptions
app/src/main/java/io/legado/app/model/rss/Rss.kt - Content replacement
app/src/main/java/io/legado/app/help/ReplaceAnalyzer.kt - Content processing
app/src/main/java/io/legado/app/help/book/ContentProcessor.kt
Reading and playback
- Reading state
app/src/main/java/io/legado/app/model/ReadBook.kt - Read-aloud service
app/src/main/java/io/legado/app/service/BaseReadAloudService.kt - Audio playback
app/src/main/java/io/legado/app/service/AudioPlayService.kt - Book export
app/src/main/java/io/legado/app/service/ExportBookService.kt - TTS engine config
app/src/main/java/io/legado/app/ui/book/read/config/SpeakEngineViewModel.kt
Persistence and APIs
- App database
app/src/main/java/io/legado/app/data/AppDatabase.kt - Cache manager
app/src/main/java/io/legado/app/help/CacheManager.kt - Web and provider APIs
app/src/main/java/io/legado/app/api/ReaderProvider.kt - Book API controller
app/src/main/java/io/legado/app/api/controller/BookController.kt
Other components
- Reader user
- Book websites
- Web client
- Android TTS
Connections 32
- Reader user → Library and reader UI: browses and reads
- Reader user → Import and association: imports sources
- Import and association → App database: stores imports
- Library and reader UI → Online book workflow: searches and opens
- Online book workflow → Rule analysis: applies source rules
- Online book workflow → HTTP and cookies: requests pages
- HTTP and cookies → Book websites: fetches content
- Online book workflow → App database: stores book data
- Library and reader UI → Local book parsing: opens local books
- Local book parsing → Book models: produces book content
- Library and reader UI → RSS subscriptions: browses subscriptions
- RSS subscriptions → Rule analysis: parses by rules
- Library and reader UI → Content processing: prepares chapter
- Content processing → Content replacement: applies replacements
- Library and reader UI → Reading state: tracks reading
- Reading state → App database: persists progress
- Library and reader UI → Read-aloud service: starts narration
- Read-aloud service → Reading state: advances chapters
- TTS engine config → App database: reads and saves engines
- TTS engine config → Android TTS: lists system engines
- Library and reader UI → Audio playback: controls playback
- Audio playback → HTTP and cookies: loads remote audio
- Library and reader UI → Book export: exports books
- Book export → App database: reads book chapters
- Web and provider APIs → Book API controller: dispatches book calls
- Web client → Web and provider APIs: calls API
- Book API controller → App database: reads and writes books
- Book API controller → Online book workflow: retrieves missing content
- Book API controller → Content processing: processes chapter text
- Book API controller → Cache manager: stores web config
- Cache manager → App database: persists cache entries
- HTTP and cookies → App database: persists cookies