Commit Graph

63 Commits

Author SHA1 Message Date
004243dcbb fix: use embed=true for serde bool compat
Some checks failed
CI / Check / Test (push) Failing after 6m35s
2026-06-03 10:17:43 +02:00
c18d4eebc1 fix: use array instead of vec for clippy 2026-06-03 10:14:20 +02:00
3f6e01ed65 feat: add embed snippet to profile settings 2026-06-03 10:09:38 +02:00
fad73a9fab feat: add embed_profile.html template 2026-06-03 10:07:45 +02:00
627db45a56 feat: add embed_base.html template shell 2026-06-03 10:07:43 +02:00
976d872eed feat: add EmbedProfileTemplate struct 2026-06-03 10:07:41 +02:00
857896f057 feat: add video download link to wrapup HTML page
Some checks failed
CI / Check / Test (push) Failing after 41s
2026-06-03 01:06:11 +02:00
83103e5eb5 feat: redesign wrapup HTML with glass cards, ranked lists, better layout
Some checks failed
CI / Check / Test (push) Failing after 42s
2026-06-03 01:00:50 +02:00
45d6183ea4 fix: reverse rating bar order to 5★→1★
Some checks failed
CI / Check / Test (push) Failing after 41s
2026-06-03 00:54:59 +02:00
f00a2cbbb8 feat: HTML wrap-up page with Askama template 2026-06-02 22:28:28 +02:00
ac7edd6953 WIP: federation + integrations
Some checks failed
CI / Check / Test (push) Failing after 5m56s
2026-06-02 19:50:19 +02:00
aadad3cfb0 feat: Jellyfin/Plex auto-import via watch queue
Some checks failed
CI / Check / Test (push) Failing after 6m5s
Webhook ingestion from media servers — movies land in a pending
watch queue, user rates and confirms to create diary entries.

- domain: WatchEvent, WebhookToken models, MediaServerParser port
- adapters: jellyfin + plex parser crates, SQLite + Postgres repos
- application: ingest/confirm/dismiss/cleanup use cases, token mgmt
- presentation: webhook endpoints (bearer + query param auth),
  watch queue + integrations settings HTML pages, OpenAPI docs
- worker: WatchEventCleanupJob (daily, 30d retention)

Movie resolution deferred to confirm — single canonical path
through log_review for enrichment, poster fetch, federation.
2026-06-02 17:34:16 +02:00
e41d85bd7e feat: show user avatars on /users page
All checks were successful
CI / Check / Test / Build (push) Successful in 24m46s
2026-05-13 23:45:19 +02:00
19171806b9 fmt
Some checks failed
CI / Check / Test / Build (push) Has been cancelled
2026-05-13 23:38:57 +02:00
25cd6c9294 fix: handle absolute poster URLs from federated instances in templates 2026-05-13 23:32:08 +02:00
5edac78add fix: redirect to user-specific following list after follow action 2026-05-13 23:23:47 +02:00
815178e6a4 feat(ap): ActivityPub spec compliance and profile completeness
Phase 1 — spec compliance:
- Add AS_PUBLIC constant; add to/cc fields to CreateActivity, DeleteActivity,
  UpdateActivity, AddActivity; populate on all broadcast call sites
- Add @context to outbox CreateActivity items
- Set manuallyApprovesFollowers: true to match actual Pending follow flow
- Gate PermissiveVerifier behind FEDERATION_DEBUG env var
- Add updated timestamp to Person actor JSON
- Improve actor update delivery logging

Phase 2a Batch 1 — AP layer:
- Add /inbox shared inbox route; add endpoints.sharedInbox to Person
- Paginate followers and following collections (20/page, OrderedCollectionPage)

Phase 2a Batch 2 — profile completeness:
- DB migrations: banner_path, also_known_as columns; user_profile_fields table
- ProfileField value object; UserProfileFieldsRepository port
- Banner image upload (stored via image-converter, surfaced as image in Person)
- alsoKnownAs field in Person (account migration support)
- Custom profile fields (up to 4 PropertyValue attachments in Person)
- Profile settings UI: banner preview/upload, alsoKnownAs input, fields form
- PUT /api/v1/profile/fields API endpoint
2026-05-13 22:21:41 +02:00
bc6c767c29 feat: follow-by-handle form on following and users pages 2026-05-13 01:35:54 +02:00
53df90ab1f feat: MovieDto enrichment, movie detail page, PWA, watchlist, watchlist federation 2026-05-13 00:23:45 +02:00
00218366da Revert "feat: rename product to Screened, add PRODUCT_NAME constant to domain"
This reverts commit f2e3a876dc.
2026-05-12 16:26:42 +02:00
f2e3a876dc feat: rename product to Screened, add PRODUCT_NAME constant to domain 2026-05-12 15:42:24 +02:00
99ce81efe5 refactor: deps cleanup, split openapi, extract api-types crate 2026-05-12 11:54:00 +02:00
6eeba2cf57 feat: review delete/update AP propagation, remote actor avatars, OpenAPI updates
- Send Delete activity when a review is deleted
- Send Update(Note) activity when a review is edited
- Remote actor avatars shown in followers/following pages
- OpenAPI spec updated with profile, blocked domains, blocked actor endpoints
- Fix: worker wire() call missing allow_registration argument
2026-05-12 02:02:41 +02:00
8cd90624bb feat: move Settings/Blocked/Admin links to profile page own-account section 2026-05-12 01:14:43 +02:00
40c0f634d4 feat: add Settings, Blocked, and Admin nav links; add is_admin to HtmlPageContext 2026-05-12 01:12:16 +02:00
f0620f5aa1 feat: discoverability (NodeInfo, hashtags) and moderation (domain/actor blocking)
- NodeInfo at /.well-known/nodeinfo + /nodeinfo/2.0
- Hashtags #MoviesDiary + #MovieTitle on review posts; /tags/{tag} redirect
- Domain blocking: blocked_domains table, admin API + HTML, inbox enforcement
- Per-actor blocking: blocked_actors table, user API + HTML, BlockActivity send/receive
- Delivery filter excludes blocked actors and blocked-domain inboxes
2026-05-12 01:05:46 +02:00
80f620c840 feat: image storage generalization, user profile, and federation polish
- Replace PosterStorage with generic ImageStorage port (IMAGE_STORAGE_BACKEND/PATH env vars)
- Rename poster-storage crate to image-storage; serve at /images/{*key}
- Add bio and avatar_path to User model (migration 0009_user_profile)
- update_profile use case with avatar upload, mime validation, old avatar cleanup
- GET/PUT /api/v1/profile and GET/POST /settings/profile HTML page
- Enrich AP Person actor with summary, icon, url, discoverable fields
- Store remote actor avatar_url (migration 0010_ap_remote_actor_avatar)
- Shared inbox delivery via collect_inboxes deduplication
- Broadcast Update(Person) to followers on UserUpdated event
- Paginated outbox: OrderedCollection + OrderedCollectionPage with cursor
- Announce/boost tracking in ap_announces table (migration 0011_ap_announces)
2026-05-11 22:59:52 +02:00
b2a2aa4262 movie detail page + importer architecture fix 2026-05-10 23:59:26 +02:00
f2f1317660 importer feature 2026-05-10 21:23:56 +02:00
be30a1d77c feat: show profile RSS in footer when viewing another user's profile 2026-05-10 00:46:51 +02:00
66f9ef887e feat: ux improvements 2026-05-10 00:41:43 +02:00
9f894ebdf2 feat: feed ux improvements 2026-05-10 00:16:29 +02:00
d89d373a91 feat: implement CSRF protection across forms and routes 2026-05-09 22:09:19 +02:00
dcfc17f542 export feature 2026-05-09 20:51:29 +02:00
69f6587623 federation improvements 2026-05-09 15:45:08 +02:00
470b29c9e1 federation refinement 2026-05-09 13:53:45 +02:00
df71748897 activity-pub implementation 2026-05-08 21:26:50 +02:00
940c33047c feat: add favicon to the base template 2026-05-08 14:23:15 +02:00
06b3761401 fix: windowed pagination — show 1…current±2…last instead of all pages 2026-05-08 13:47:34 +02:00
a282539151 fix: profile delete redirect and open redirect via // 2026-05-08 13:33:59 +02:00
5f8eba9f84 fix: guard total_pages division in render_diary_page 2026-05-08 13:28:04 +02:00
e335b6ea9b feat: add page-number navigation to paginated views 2026-05-08 13:20:06 +02:00
8919c36ef6 feat: preserve pagination offset after review delete 2026-05-08 13:15:47 +02:00
53b7ac2e41 feat: accept date-only watched_at in review form 2026-05-08 13:12:56 +02:00
b5cd932bfb feat: per-page titles, OG/SEO tags, HOST/PORT env vars, BASE_URL in config 2026-05-04 22:38:58 +02:00
2934a3c3fd fix: use pixel bar heights and show avg rating values in trends chart 2026-05-04 21:22:47 +02:00
549b0bbe09 feat: add rss_url to HtmlPageContext, use it in nav 2026-05-04 20:55:31 +02:00
6565ec6e66 fix: derive heatmap color from primary instead of hardcoded blue 2026-05-04 20:38:13 +02:00
1ad0684249 fix: remove email from top bar nav 2026-05-04 20:13:14 +02:00
6bd1ce8c4a fix: pagination underflow, remove |safe, move bar_height_pct to adapter 2026-05-04 19:09:28 +02:00