fix: restore Laya language analysis and stream variants
Run Local AI language detection during full rebuilds after identity classification and restore variant expansion with a visible playing stream indicator. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -891,13 +891,25 @@ class ChannelList {
|
||||
const languageDescription = language.code === 'unknown'
|
||||
? 'Unknown language'
|
||||
: `${language.label} — ${language.confidence}% confidence`;
|
||||
return `<button class="channel-variant ${hidden ? 'is-hidden' : ''}" type="button"
|
||||
const variantKey = `${variant.sourceId}:${variant.id}`;
|
||||
const playerVariant = window.app?.player?.currentChannel;
|
||||
const currentVariant = this.currentChannel?.preferredVariant;
|
||||
const playingKeys = new Set([
|
||||
channel.selectedVariantId,
|
||||
playerVariant?.sourceId !== undefined && playerVariant?.id !== undefined
|
||||
? `${playerVariant.sourceId}:${playerVariant.id}` : '',
|
||||
currentVariant?.sourceId !== undefined && currentVariant?.id !== undefined
|
||||
? `${currentVariant.sourceId}:${currentVariant.id}` : ''
|
||||
].filter(Boolean).map(String));
|
||||
const isPlaying = playingKeys.has(variantKey);
|
||||
return `<button class="channel-variant ${hidden ? 'is-hidden' : ''} ${isPlaying ? 'is-playing' : ''}" type="button"
|
||||
data-logical-id="${this.escapeHtml(channel.fingerprint)}" data-variant-id="${this.escapeHtml(String(variant.id))}"
|
||||
data-source-id="${variant.sourceId}" data-render-id="${renderId}" data-render-group="${this.escapeHtml(renderGroup)}">
|
||||
<span class="variant-quality">${ChannelVariantGrouping.getQuality(variant)}</span>
|
||||
<span class="variant-language" title="${this.escapeHtml(languageDescription)}" aria-label="${this.escapeHtml(languageDescription)}">${languageLabel}</span>
|
||||
<span class="variant-source">${this.escapeHtml(source?.name || variant.sourceType)}</span>
|
||||
<span class="variant-name">${this.escapeHtml(variant.name)}</span>
|
||||
${isPlaying ? '<span class="variant-playing-badge">Playing</span>' : ''}
|
||||
</button>`;
|
||||
}).join('') : '';
|
||||
const variantCount = Number(channel.variantCount) || channel.variants.length;
|
||||
@ -930,7 +942,7 @@ class ChannelList {
|
||||
const current = this.variantPages.get(logicalId);
|
||||
if (!append && current?.loaded) return;
|
||||
const offset = append ? (current?.page?.nextOffset || 0) : 0;
|
||||
const response = await API.live.getChannelVariants(logicalId, {
|
||||
const response = await API.live.getChannelVariants(channel.logicalChannelId || logicalId, {
|
||||
includeHidden: Boolean(this.showHiddenCheckbox?.checked),
|
||||
limit: 100,
|
||||
offset
|
||||
|
||||
Reference in New Issue
Block a user