Fork: rename package and applicationId
This commit is contained in:
parent
b0ab7d320a
commit
ad821faecd
577 changed files with 2463 additions and 2379 deletions
84
AGENTS.md
Normal file
84
AGENTS.md
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
# Book's Story — Bookshelf Fork
|
||||
|
||||
> Форк `Acclorite/book-story` под Bookshelf: audiobookshelf + bookshelf-api + TTS + offline.
|
||||
|
||||
## Stack
|
||||
|
||||
- **Язык:** Kotlin 100%
|
||||
- **UI:** Jetpack Compose + Material3
|
||||
- **DI:** Dagger Hilt
|
||||
- **БД:** Room
|
||||
- **Настройки:** DataStore
|
||||
- **Сеть:** Retrofit + OkHttp + Kotlinx Serialization
|
||||
- **Аудио:** ExoPlayer (Media3) + MediaSession
|
||||
- **Фоновые задачи:** WorkManager
|
||||
- **Читалка:** собственная Book's Story (jsoup, pdfbox, commonmark)
|
||||
- **minSdk:** 26 (план — поднять до 31 позже)
|
||||
- **compileSdk/targetSdk:** 36
|
||||
|
||||
## Goal
|
||||
|
||||
- Сохранить Material You reader Book's Story.
|
||||
- Добавить поддержку bookshelf-api: библиотеки, поиск, TTS, подкасты, Яндекс/YouTube.
|
||||
- Добавить аудиоплеер для аудиокниг из Audiobookshelf.
|
||||
- Добавить offline-кэш и синхронизацию прогресса.
|
||||
|
||||
## Layout
|
||||
|
||||
- `app/src/main/java/org/dueattendant149/bookshelf/` — основной код
|
||||
- `core/` — crash handler, typealias, commonmark parser
|
||||
- `data/` — repository, Room, DataStore, mappers, parsers, DI
|
||||
- `domain/` — models, use cases, repository interfaces
|
||||
- `presentation/` — ViewModels, MVI screens, navigator
|
||||
- `ui/` — Compose UI
|
||||
- `bookshelf-api` backend находится в `~/bookshelf/bookshelf-api/` (отдельный проект)
|
||||
- Lissen (который дорабатывается параллельно) — `~/bookshelf/lissen/`
|
||||
|
||||
## API endpoints
|
||||
|
||||
- **bookshelf-api:** `http://bookshelf-api:8073` (или `https://tts.dueattendant149.org` после DNS)
|
||||
- `GET /api/v1/books/libraries`
|
||||
- `GET /api/v1/books/{item_id}`
|
||||
- `GET /api/v1/books/library/{id}/search?q=...`
|
||||
- `POST /api/v1/search`
|
||||
- `POST /api/v1/tts`, `GET /api/v1/tts/{job_id}`, `GET /api/v1/tts/{job_id}/download`
|
||||
- `GET /api/v1/tts/engines`, `GET /api/v1/tts/voices`
|
||||
- `POST /api/v1/download`, `GET /api/v1/download/list`
|
||||
- `POST /api/v1/podcasts`, `POST /api/v1/sources/yandex`
|
||||
- **Audiobookshelf (напрямую):** для аудио файлов и обложек
|
||||
- `GET /api/items/{id}/file/{ino}`
|
||||
- `GET /api/items/{id}/download`
|
||||
- `GET /api/items/{id}/cover`
|
||||
|
||||
## Git
|
||||
|
||||
- **origin:** `https://git.dueattendant149.org/Atte149/book-story.git` (Forgejo)
|
||||
- **upstream:** `https://github.com/Acclorite/book-story.git`
|
||||
- **Лицензия:** GPL-3.0-only (как у оригинала)
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
./gradlew :app:assembleDebug
|
||||
```
|
||||
|
||||
## Current Status
|
||||
|
||||
- Phase 1: fork + package rename completed.
|
||||
- Next: Phase 2 — network layer (Retrofit + bookshelf-api client).
|
||||
|
||||
## WARNs
|
||||
|
||||
- **Не пушить в `upstream` (Acclorite/book-story).** Только в `origin` (Forgejo).
|
||||
- **Lissen остаётся живым проектом.** Book's Story fork — отдельная ветка развития.
|
||||
- **Секреты** (ABS token, API keys) хранить только в `.env` / `credentials.json` / DataStore, никогда в коде.
|
||||
- **Package:** `org.dueattendant149.bookshelf`. Все ссылки на `ua.acclorite.book_story` в коде заменены; README оставлен с оригинальными F-Droid ссылками.
|
||||
|
||||
## Typical tasks
|
||||
|
||||
- Добавить новый endpoint bookshelf-api
|
||||
- Расширить `Book` / `BookEntity` для remote полей
|
||||
- Добавить аудиоплеер экран
|
||||
- Добавить TTS экран
|
||||
- Поднять minSdk, добавить новые разрешения
|
||||
- Обновить AGENTS.md при существенных изменениях архитектуры
|
||||
Loading…
Add table
Add a link
Reference in a new issue