fix(channel): titre/URL Dailymotion + playlists et pagination YouTube
- channel-registry DM: retire le champ invalide avatar_url (400 sur toute la requete -> titre null), URL officielle /user/<username> - channel-content YT: ne plus envoyer pageToken=undefined (400 -> playlists vides); cache de pageTokens opaques pour la pagination videos/shorts/live/playlists - channel-content.service: stoppe l'infinite scroll quand une page n'apporte rien de nouveau
This commit is contained in:
@@ -86,20 +86,23 @@ async function fetchYoutubeChannel(externalId) {
|
||||
|
||||
async function fetchDailymotionChannel(externalId) {
|
||||
try {
|
||||
// NOTE : `avatar_url` n'est pas un champ valide de l'API user (400 sur
|
||||
// toute la requête) — seuls avatar_720_url / avatar_medium_url le sont.
|
||||
const params = new URLSearchParams({
|
||||
fields: 'id,username,screenname,avatar_720_url,avatar_medium_url,avatar_url,url,followers_total,verified',
|
||||
fields: 'id,username,screenname,avatar_720_url,avatar_medium_url,url,followers_total,verified',
|
||||
});
|
||||
const data = await fetchWithTimeout(`https://api.dailymotion.com/user/${externalId}?${params.toString()}`);
|
||||
const username = data.username || externalId;
|
||||
return safeMeta({
|
||||
title: data.screenname || data.username,
|
||||
handle: data.username ? `@${data.username}` : undefined,
|
||||
avatarUrl: data.avatar_720_url || data.avatar_medium_url || data.avatar_url,
|
||||
url: data.url,
|
||||
avatarUrl: data.avatar_720_url || data.avatar_medium_url,
|
||||
url: `https://www.dailymotion.com/user/${username}`,
|
||||
subsCount: typeof data.followers_total === 'number' ? data.followers_total : undefined,
|
||||
verified: Boolean(data.verified),
|
||||
}, { provider: 'dm', externalId, url: `https://www.dailymotion.com/${externalId}` });
|
||||
}, { provider: 'dm', externalId, url: `https://www.dailymotion.com/user/${externalId}` });
|
||||
} catch {
|
||||
return { provider: 'dm', externalId, url: `https://www.dailymotion.com/${externalId}` };
|
||||
return { provider: 'dm', externalId, url: `https://www.dailymotion.com/user/${externalId}` };
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user