fix(twitch): token partagé + timeouts + fan-out réduit sur Home/Explore
CI / build-and-test (push) Successful in 14m10s
CI / build-and-test (push) Successful in 14m10s
This commit is contained in:
@@ -219,15 +219,33 @@ export class ThemePageComponent {
|
||||
if (block.provider === 'twitch') {
|
||||
const raw = tokens.join(' ').trim();
|
||||
const q = (raw.split(/[^A-Za-z0-9à-ÿ]+/).filter(w => w.length >= 3)[0] || raw).trim();
|
||||
const show = (items: Video[]) => {
|
||||
block.items = (items || []).slice(0, max);
|
||||
block.loading = false;
|
||||
if (!block.items.length) console.info('[ThemePage] Empty block page', { provider: block.provider, theme: slug, query: q });
|
||||
this.blocks.update(a => [...a]);
|
||||
};
|
||||
const fail = () => { block.error = 'Erreur de chargement'; block.loading = false; this.blocks.update(a => [...a]); };
|
||||
const call = q ? this.api.searchTwitchThemePage(q, null) : this.api.getTwitchTopStreamsPage(null);
|
||||
call.subscribe({
|
||||
next: res => {
|
||||
block.items = (res.items || []).slice(0, max);
|
||||
block.loading = false;
|
||||
if (!block.items.length) console.info('[ThemePage] Empty block page', { provider: block.provider, theme: slug, query: q });
|
||||
this.blocks.update(a => [...a]);
|
||||
// Thème vide malgré les replis : dernière chance top streams live.
|
||||
if (!(res.items || []).length && q) {
|
||||
this.api.getTwitchTopStreamsPage(null).subscribe({
|
||||
next: top => show(top.items || []),
|
||||
error: () => fail(),
|
||||
});
|
||||
return;
|
||||
}
|
||||
show(res.items || []);
|
||||
},
|
||||
error: () => { block.error = 'Erreur de chargement'; block.loading = false; this.blocks.update(a => [...a]); }
|
||||
error: () => {
|
||||
// Erreur (timeout 30 s…) : une tentative top streams avant l'erreur.
|
||||
this.api.getTwitchTopStreamsPage(null).subscribe({
|
||||
next: top => { if ((top.items || []).length) show(top.items || []); else fail(); },
|
||||
error: () => fail(),
|
||||
});
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user