mirror of
https://github.com/lrnselfreliance/wrolpi.git
synced 2026-10-26 02:48:38 -04:00
* Track how far the user is through a file, kept in recently_viewed.yaml FileGroup gains `progress` (0.0 to 1.0, 1.0 is finished) and `position` (where to resume: a time, a page, or an EPUB CFI). Both are returned with the file, including by POST /api/files/file. POST /api/files/progress records progress and is also a view. A file 95% through is finished and keeps no position; one barely started (under 10 s, the first page, under 1%) is not worth resuming. The write happens before the response, so the next request sees it. POST /api/files/progress/clear starts a file over. Both refuse files outside the media directory. recently_viewed.yaml keeps the 1000 most recently viewed files so viewing history and positions survive a database rebuild. On import the newer `viewed` wins, so a file viewed while WROLPi was starting keeps its newer position. The config is saved when a file is opened, when progress is final (paused or closed), when it is cleared, and after refresh cleanup (moves, renames, deletes); heartbeats during playback only write the database. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Progress: write as a writer, confine and merge the import, keep FTS on downgrade - The progress endpoints begin as writers (request.ctx.db.write()), so a heartbeat during a refresh waits instead of failing a lock upgrade. The config switch fires after the commit. - `..` is collapsed before the ignored-directory check. Clear only resets an existing FileGroup; it never indexes a file. - Import confines config paths to the media directory. A newer plain view keeps its `viewed` but takes the config's position; only progress written after the config wins. Files are globbed before the write transaction. - The dump skips a row outside the media directory instead of failing. - The downgrade drops the columns with ALTER TABLE, which keeps file_group's FTS triggers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 2026_07_10_1350_sqlite_baseline.py | ||
| 2026_07_14_0900_browse_covering_index.py | ||
| 2026_09_16_1200_file_group_stem.py | ||
| 2026_09_18_1200_unique_directory_stem.py | ||
| 2026_09_20_1200_drop_file_group_idempotency.py | ||
| 2026_09_27_1200_domain_collection_summary.py | ||
| 2026_09_28_1200_collection_listing_indexes.py | ||
| 2026_10_05_1200_markdown_mimetype.py | ||
| 2026_10_06_1200_repository.py | ||
| 2026_10_06_1300_repository_search.py | ||
| 2026_10_06_1400_repository_submodules.py | ||
| 2026_10_06_1500_repository_clone_token.py | ||
| 2026_10_08_1200_file_group_progress.py | ||