fix(history): recherche et filtres fonctionnels sur les 3 onglets
CI / build-and-test (push) Successful in 14m0s

- distinctUntilChanged() sur Subject<void> avalait toutes les frappes
  apres la premiere : barre de recherche morte sur les 3 onglets.
- Filtre provider recherches : ids courts stockes (yt, dm) vs filtre
  long (youtube) -> zero resultat. Match court+long cote serveur.
- LIKE echappes (%, _, \\) sur q des 3 onglets.
- Watch/transcripts : provider normalise (court+long), lang
  insensible a la casse avec prefixe (fr -> fr, fr-ca).
- Ecriture watch canonique (nom long). Test test:history.
This commit is contained in:
2026-09-27 21:34:40 -04:00
parent a57bc0f7ae
commit 71278eb0b1
5 changed files with 174 additions and 26 deletions
+4 -2
View File
@@ -199,15 +199,17 @@ Responses typically include: `{ user: {id, username, email}, accessToken, sessio
- PATCH `/user/preferences` → { language?, defaultProvider?, theme?, videoQuality?, region? }
### History
- GET `/user/history/search?limit=&before=`
- GET `/user/history/search?limit=&before=&q=&provider=` (provider court `yt` ou long `youtube`, LIKE échappés)
- POST `/user/history/search` → { query, filters? }
- DELETE `/user/history/search/:id` | `/user/history/search?all=1`
- GET `/user/history/watch?limit=&before=`
- GET `/user/history/watch?limit=&before=&q=&provider=` (titre/provider/video_id, LIKE échappés, provider normalisé)
- POST `/user/history/watch` → { provider, videoId, title?, watchedAt, progressSeconds?, durationSeconds? }
- PATCH `/user/history/watch/:id` → { progressSeconds?, lastPositionSeconds? }
- DELETE `/user/history/watch/:id` | `/user/history/watch?all=1`
- GET `/user/history/transcripts?limit=&before=&q=&provider=&lang=` (`lang=fr` matche `fr` + `fr-ca`, insensible à la casse ; `q` cherche aussi dans le texte conservé)
### Subscriptions & Categories
- GET `/user/subscriptions?category=&provider=`
- POST `/user/subscriptions` → { provider, channelId, channelName?, notify? }