PC color set

This commit is contained in:
2026-06-07 23:01:30 +05:30
parent 412f59a902
commit 1e7ba08af8

View File

@@ -2411,19 +2411,60 @@
return String(value || '').replace(/\s+/g, ' ').trim(); return String(value || '').replace(/\s+/g, ' ').trim();
} }
function getPoliticTalkDominantSpeakerRoleMetadata(videospace, tiles) { function normalizePoliticTalkDisplayName(value) {
return String(value || '')
.replace(/\(you\)/ig, '')
.replace(/\bmoderator\b/ig, '')
.replace(/\s+/g, ' ')
.trim()
.toLowerCase();
}
function getPoliticTalkRoleMetadataForDisplayName(displayName, videospace, tiles, thumbnails) {
var normalizedName = normalizePoliticTalkDisplayName(displayName);
if (!normalizedName) {
return null;
}
var matchingRow = getPoliticTalkParticipantPaneRows().find(function(row) {
return normalizePoliticTalkDisplayName(getPoliticTalkParticipantPaneDisplayName(row)) === normalizedName;
});
if (matchingRow) {
return getPoliticTalkParticipantPaneRoleMetadata(matchingRow, videospace, tiles, thumbnails)
|| getPoliticTalkRoleMetadataFromElement(matchingRow);
}
var candidates = (thumbnails || []).concat(tiles || []);
var matchingCandidate = candidates.find(function(candidate) {
return normalizePoliticTalkDisplayName(getPoliticTalkVisibleDisplayName(candidate)) === normalizedName;
});
if (matchingCandidate) {
return getPoliticTalkTileRoleMetadata(matchingCandidate)
|| getPoliticTalkRoleMetadataFromElement(matchingCandidate);
}
return null;
}
function getPoliticTalkDominantSpeakerRoleMetadata(videospace, tiles, thumbnails) {
var dominantName = getPoliticTalkVisibleDisplayName( var dominantName = getPoliticTalkVisibleDisplayName(
videospace.querySelector('[data-testid="stage-display-name"]') videospace.querySelector('[data-testid="stage-display-name"]')
); );
var candidates = tiles || []; var candidates = (thumbnails || []).concat(tiles || []);
if (dominantName) { if (dominantName) {
var matchingTile = candidates.find(function(tile) { var matchingMetadata = getPoliticTalkRoleMetadataForDisplayName(
return getPoliticTalkVisibleDisplayName(tile) === dominantName; dominantName,
}); videospace,
tiles,
thumbnails
);
if (matchingTile) { if (matchingMetadata) {
return getPoliticTalkTileRoleMetadata(matchingTile) || getPoliticTalkGuestRoleMetadata(); return matchingMetadata;
} }
} }
@@ -2434,7 +2475,7 @@
return getPoliticTalkLocalRoleMetadata(); return getPoliticTalkLocalRoleMetadata();
} }
function applyPoliticTalkDominantSpeakerTheme(videospace, tiles, metadataOverride) { function applyPoliticTalkDominantSpeakerTheme(videospace, tiles, thumbnails, metadataOverride) {
var avatar = videospace.querySelector('#dominantSpeakerAvatar'); var avatar = videospace.querySelector('#dominantSpeakerAvatar');
var avatarContainer = videospace.querySelector('#dominantSpeakerAvatarContainer'); var avatarContainer = videospace.querySelector('#dominantSpeakerAvatarContainer');
@@ -2442,7 +2483,7 @@
return; return;
} }
var metadata = metadataOverride || getPoliticTalkDominantSpeakerRoleMetadata(videospace, tiles); var metadata = metadataOverride || getPoliticTalkDominantSpeakerRoleMetadata(videospace, tiles, thumbnails);
var roleWasApplied = applyPoliticTalkRoleToElement(avatar, metadata); var roleWasApplied = applyPoliticTalkRoleToElement(avatar, metadata);
addPoliticTalkClass(avatar, 'politictalk-avatar-themed'); addPoliticTalkClass(avatar, 'politictalk-avatar-themed');
@@ -2633,14 +2674,16 @@
var tiles = getPoliticTalkTileCandidates(videospace); var tiles = getPoliticTalkTileCandidates(videospace);
var thumbnails = getPoliticTalkThumbnailCandidates(videospace); var thumbnails = getPoliticTalkThumbnailCandidates(videospace);
applyPoliticTalkParticipantPaneAvatarTheme(videospace, tiles, thumbnails);
var dominantName = getPoliticTalkVisibleDisplayName( var dominantName = getPoliticTalkVisibleDisplayName(
videospace.querySelector('[data-testid="stage-display-name"]') videospace.querySelector('[data-testid="stage-display-name"]')
); );
var dominantMetadata = getPoliticTalkDominantSpeakerRoleMetadata(videospace, tiles); var dominantMetadata = getPoliticTalkDominantSpeakerRoleMetadata(videospace, tiles, thumbnails);
applyPoliticTalkLargeVideoLayout(videospace, tiles); applyPoliticTalkLargeVideoLayout(videospace, tiles);
applyPoliticTalkTileLayout(videospace, tiles); applyPoliticTalkTileLayout(videospace, tiles);
applyPoliticTalkDominantSpeakerTheme(videospace, tiles, dominantMetadata); applyPoliticTalkDominantSpeakerTheme(videospace, tiles, thumbnails, dominantMetadata);
tiles.forEach(function(tile) { tiles.forEach(function(tile) {
addPoliticTalkClass(tile, 'politictalk-themed-tile'); addPoliticTalkClass(tile, 'politictalk-themed-tile');