fix(auth,download): playlists/likes 401, suppression downloads, 429 formats
CI / build-and-test (push) Failing after 8m20s
CI / build-and-test (push) Failing after 8m20s
- likes + playlists: authMiddlewareCookieAware (cookies + Bearer) au lieu du Bearer seul -> corrige 401 Unauthorized meme connecte (creation playlist, ajout video, bouton J'aime) - add-to-playlist/like-button/search-box: retire HttpClientModule local qui court-circuitait les intercepteurs fonctionnels - intercepteur: refresh+retry sur 401 meme sans token en memoire (F5) - UserService: apiBase() au lieu de /proxy/api en dur (prod :4000) - J'aime: envoie titre/miniature, erreur visible au lieu de bouton mort - download: seaux separes (lectures 120/min, ecritures 30/min, formats 30/min) + reponses limiter en JSON rate_limited + Retry-After - formats: cache memoire 10 min + ytdlpNetOpts + retry front avec backoff - polling allege (downloads 5s, suivi job 4s, 429 transitoire non fatal) - erreurs FR precises (http-error.util): 401/403/404/410/429/quota/500 avec compte a rebours + bouton Reessayer
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, inject, signal, HostListener } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { HttpClientModule } from '@angular/common/http';
|
||||
import { PlaylistsService, Playlist } from '../../../../services/playlists.service';
|
||||
import { AuthService } from '../../../../services/auth.service';
|
||||
import { forkJoin } from 'rxjs';
|
||||
@@ -8,7 +7,10 @@ import { forkJoin } from 'rxjs';
|
||||
@Component({
|
||||
selector: 'app-add-to-playlist',
|
||||
standalone: true,
|
||||
imports: [CommonModule, HttpClientModule],
|
||||
// NOTE : ne pas importer HttpClientModule ici : fourni à la racine via
|
||||
// provideHttpClient(withInterceptors(...)), un import local créerait un
|
||||
// HttpClient sans intercepteurs (plus de Bearer/refresh -> 401).
|
||||
imports: [CommonModule],
|
||||
template: `
|
||||
<div class="relative inline-block text-left" (click)="$event.stopPropagation();">
|
||||
<button (click)="toggleOpen($event)"
|
||||
|
||||
@@ -2,13 +2,13 @@ import { ChangeDetectionStrategy, Component, Input, OnChanges, OnDestroy, OnInit
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { LikesService } from '../../../../services/likes.service';
|
||||
import { finalize } from 'rxjs';
|
||||
import { HttpClientModule } from '@angular/common/http';
|
||||
import { AuthService } from '../../../../services/auth.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-like-button',
|
||||
standalone: true,
|
||||
imports: [CommonModule, HttpClientModule],
|
||||
// NOTE : ne pas importer HttpClientModule ici (voir add-to-playlist).
|
||||
imports: [CommonModule],
|
||||
// Le service est déjà fourni via providedIn: 'root' dans le service
|
||||
template: `
|
||||
@if (isAuthenticated()) {
|
||||
|
||||
Reference in New Issue
Block a user