mirror of
https://github.com/Glitchy-Sheep/boosty-downloader.git
synced 2026-10-14 21:33:23 +00:00
[PR #222] [MERGED] feat(application): reconcile stored posts and plan missing downloads #220
Labels
No labels
api-drift
bug
ci
documentation
enhancement
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Glitchy-Sheep/boosty-downloader#220
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Glitchy-Sheep/boosty-downloader/pull/222
Author: @Glitchy-Sheep
Created: 10/7/2026
Status: ✅ Merged
Merged: 10/7/2026
Merged by: @Glitchy-Sheep
Base:
main← Head:feat/reconcile-stored-posts📝 Commits (7)
6e5c28brefactor(application): keep a complete live post for reconciliationf4a0781feat(application): preserve media order and reserve file paths2057626feat(application): merge post content with retained media history1bed5b2feat(application): track saved media files from disk snapshots97d17c4refactor(application): share media names with file discovery80e4b0bfeat(application): recover media state from existing files027c83dfeat(application): reconcile posts and plan missing media downloads📊 Changes
35 files changed (+4004 additions, -108 deletions)
View changed files
📝
CHANGELOG.md(+1 -0)➕
boosty_downloader/application/_media_order.py(+30 -0)📝
boosty_downloader/application/filtering.py(+11 -0)📝
boosty_downloader/application/mappers/link_header_text.py(+4 -1)📝
boosty_downloader/application/mappers/list.py(+12 -6)➕
boosty_downloader/application/mappers/live_post.py(+292 -0)➕
boosty_downloader/application/media_paths.py(+258 -0)➕
boosty_downloader/application/reconcile.py(+289 -0)📝
boosty_downloader/cli/views/blog_overview.py(+31 -3)📝
boosty_downloader/domain/stored_post.py(+11 -3)📝
boosty_downloader/infrastructure/boosty_api/models/post/post_data_types/post_data_text.py(+3 -1)📝
boosty_downloader/infrastructure/file_downloader.py(+6 -7)📝
boosty_downloader/infrastructure/html_generator/renderer.py(+4 -1)📝
boosty_downloader/infrastructure/html_generator/templates/list.html(+0 -1)➕
boosty_downloader/infrastructure/media_filenames.py(+20 -0)📝
boosty_downloader/infrastructure/path_sanitizer.py(+25 -1)📝
boosty_downloader/infrastructure/post_caching/post_cache.py(+4 -1)📝
boosty_downloader/infrastructure/post_media_downloader.py(+2 -19)📝
scripts/api_schema/__main__.py(+22 -17)📝
scripts/api_schema/schema_changes.py(+17 -6)...and 15 more files
📄 Description
📝 Summary
Add the core needed to save a complete post across partial downloads: text and images today, then video later. It combines the saved record, the current post and a disk snapshot to update media state and list missing downloads.
🔧 What changes
The new mapper and reconciliation API currently have test callers only. The existing downloader already uses the shared filename helpers; dry-run and download execution will use reconciliation in later changes.
🧪 Tests
task cipassed: 693 unit and local HTTP e2e tests, Ruff, formatting, Pyright, import boundaries and package builds.main..env, and the new reconciliation API has no CLI entry point yet.⏭️ Next
Use reconciliation in
download_plan.pyto count exact missing media during a dry run. Later changes connect record persistence, download execution and full-page rendering.✅ Checklist
--helpand README if needed (no CLI interface changes)docs/if the download flow or dev process changed (neither changes in this PR)## Unreleasedin CHANGELOG.md (or theci/skip-changeloglabel if not user-facing)🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.