bruno
|
ebfb39fec2
|
feat(groups): anti-bruit prénoms, 4 thèmes, persistance analyse, fix filtre provider
|
2026-09-27 14:34:47 -04:00 |
|
bruno
|
a2b4139887
|
feat(groups): ratissage élargi (3 lettres, sous-chaînes, singletons, plafond, copie inclassables)
|
2026-09-27 14:05:08 -04:00 |
|
bruno
|
63a2bddf47
|
fix(groups): assignation en lot 1 requête + trackBy (plus de wipe/429)
|
2026-09-27 13:52:20 -04:00 |
|
bruno
|
9b620aaab6
|
feat(groups): sujets émergents + analyse approfondie des chaînes
|
2026-09-27 13:30:11 -04:00 |
|
bruno
|
dde0747ba3
|
feat(groups): 216 icones N&B + fermeture auto menu + suggestions auto
|
2026-09-27 13:03:58 -04:00 |
|
bruno
|
856b38bbea
|
feat(groups): panneau groupe pro + 175 icones avec recherche
|
2026-09-27 12:33:56 -04:00 |
|
bruno
|
ecb4295a59
|
feat(oauth-ui): decouverte import Google/Twitch (sidebar, empty states, aide)
|
2026-09-26 20:21:27 -04:00 |
|
bruno
|
df53445efe
|
feat(oauth): import favoris/abos Google (YouTube) et Twitch vers abonnements/likes
- Backend: server/oauth.mjs (auth URL, echange code, refresh, fetch
subscriptions/likes Google, follows Twitch), table oauth_connections
+ migration, routes /api/oauth/:provider/{url,callback,preview,import},
/api/oauth/{status,connections}
- Front: /library/import (connect, preview, import), service
oauth-import, lien depuis Abonnements
- Config: GOOGLE_CLIENT_ID/SECRET/REDIRECT_URI, TWITCH_REDIRECT_URI,
OAUTH_APP_BASE_URL documentes (.env.example, docker-compose),
passthrough docker-compose.local.yml, roadmap README cochee
|
2026-09-26 18:47:02 -04:00 |
|
bruno
|
49c3b5dfdf
|
feat(subscriptions): gestion des abonnements par groupes façon PocketTube
CI / build-and-test (push) Failing after 8m18s
- Tables subscription_groups + subscription_group_members (migration + schema)
- API CRUD groupes, membres par groupe, groupes par abonnement
- Page Abonnements: onglets Groupes/Chaines, modale creation/edition (icone/couleur), assignation unitaire + lot, filtre par groupe + recherche
- Sidebar: section Groupes avec navigation directe (queryParams)
- i18n nav.groups FR/EN + 4 tests unitaires service
|
2026-09-26 10:45:34 -04:00 |
|
bruno
|
579354cdb3
|
feat(channel): identite chaine partagee cliquable partout + logos fiabilises
CI / build-and-test (push) Successful in 13m25s
- Nouveau app-channel-identity (avatar+nom -> /channel, fallback resolve /api/channels, initiales sinon)
- ProviderBadge: accepte les ids courts yt/dm/tw/pt/od/ru
- Search adapters yt/dm/pt/od: conservent channelExternalId/channelAvatarUrl (pt derive instance|channel)
- video-card/themes/watch/related/suggestions/subscriptions/channel-header uniformises sur l'identite partagee
|
2026-09-25 10:37:36 -04:00 |
|
bruno
|
97e5de74f5
|
feat(channel): page details chaine multi-providers avec onglets et infinite scroll
CI / build-and-test (push) Successful in 13m34s
- Strategy Pattern front: ChannelProviderInterface + 6 providers (yt/dm/tw/pt/od/ru) + factory (ids longs/courts)
- ChannelContentService: cache par onglet/tri/recherche (TTL 5min), pagination nextPage
- ChannelPage: header (banniere/avatar/subs/description ...plus), tabs dynamiques par capabilities, grilles videos/shorts 9:16/playlists/live, recherche debounced, tri recent/populaire, infinite scroll IntersectionObserver, skeletons/empty/error
- Backend: GET /api/channels/:provider/:id/content (videos/shorts/playlists/live) natif par provider
|
2026-09-25 10:15:12 -04:00 |
|
bruno
|
2866d74b32
|
first commit
|
2025-09-14 23:05:30 -04:00 |
|