fix(twitch,rumble,shorts): replis serveur, embed Rumble autoritaire, refonte UX Shorts
CI / build-and-test (push) Successful in 14m15s
CI / build-and-test (push) Successful in 14m15s
This commit is contained in:
@@ -353,11 +353,23 @@ export class ProviderThemePageComponent implements OnDestroy {
|
||||
if (r['clip']) this.twitchCursors.clip = r['clip'].nextCursor || null;
|
||||
if (r['channel']) this.twitchCursors.channel = r['channel'].nextCursor || null;
|
||||
const items = Object.values(r).flatMap(x => x?.items || []);
|
||||
// Filet de sécurité : si VODs+clips vides et aucun live, compléter par top streams.
|
||||
// Filets de sécurité : si VODs+clips vides et aucun live, compléter
|
||||
// par top streams (repli serveur inclus), puis par la recherche
|
||||
// serveur unifiée (/api/search?providers=tw).
|
||||
const hasContent = items.length > 0;
|
||||
if (!hasContent && firstPage) {
|
||||
this.api.getTwitchTopStreamsPage(null).subscribe({
|
||||
next: (top) => finish([...items, ...(top.items || [])], top.nextCursor || null),
|
||||
next: (top) => {
|
||||
const all = [...items, ...(top.items || [])];
|
||||
if (all.length) {
|
||||
finish(all, top.nextCursor || null);
|
||||
return;
|
||||
}
|
||||
this.api.searchTwitchViaServer(query, 24).subscribe({
|
||||
next: (srv) => finish([...all, ...(srv.items || [])], srv.nextCursor || null),
|
||||
error: () => finish(all, null),
|
||||
});
|
||||
},
|
||||
error: () => finish(items, null),
|
||||
});
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user