mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 09:16:38 +00:00
Remove "authSig" from media player source (#11394)
This commit is contained in:
parent
fb2a24d11e
commit
049c3caadd
@ -333,3 +333,12 @@ export const formatMediaTime = (seconds: number): string => {
|
|||||||
: secondsString.substring(14, 19);
|
: secondsString.substring(14, 19);
|
||||||
return secondsString.replace(/^0+/, "").padStart(4, "0");
|
return secondsString.replace(/^0+/, "").padStart(4, "0");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const cleanupMediaTitle = (title?: string): string | undefined => {
|
||||||
|
if (!title) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
const index = title.indexOf("?authSig=");
|
||||||
|
return index > 0 ? title.slice(0, index) : title;
|
||||||
|
};
|
||||||
|
@ -24,6 +24,7 @@ import "../../../components/ha-state-icon";
|
|||||||
import { showMediaBrowserDialog } from "../../../components/media-player/show-media-browser-dialog";
|
import { showMediaBrowserDialog } from "../../../components/media-player/show-media-browser-dialog";
|
||||||
import { UNAVAILABLE_STATES } from "../../../data/entity";
|
import { UNAVAILABLE_STATES } from "../../../data/entity";
|
||||||
import {
|
import {
|
||||||
|
cleanupMediaTitle,
|
||||||
computeMediaControls,
|
computeMediaControls,
|
||||||
computeMediaDescription,
|
computeMediaDescription,
|
||||||
getCurrentProgress,
|
getCurrentProgress,
|
||||||
@ -182,6 +183,7 @@ export class HuiMediaControlCard extends LitElement implements LovelaceCard {
|
|||||||
entityState === "on");
|
entityState === "on");
|
||||||
|
|
||||||
const mediaDescription = computeMediaDescription(stateObj);
|
const mediaDescription = computeMediaDescription(stateObj);
|
||||||
|
const mediaTitleClean = cleanupMediaTitle(stateObj.attributes.media_title);
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<ha-card>
|
<ha-card>
|
||||||
@ -244,24 +246,21 @@ export class HuiMediaControlCard extends LitElement implements LovelaceCard {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
${!isUnavailable &&
|
${!isUnavailable &&
|
||||||
(mediaDescription || stateObj.attributes.media_title || showControls)
|
(mediaDescription || mediaTitleClean || showControls)
|
||||||
? html`
|
? html`
|
||||||
<div>
|
<div>
|
||||||
<div class="title-controls">
|
<div class="title-controls">
|
||||||
${!mediaDescription && !stateObj.attributes.media_title
|
${!mediaDescription && !mediaTitleClean
|
||||||
? ""
|
? ""
|
||||||
: html`
|
: html`
|
||||||
<div class="media-info">
|
<div class="media-info">
|
||||||
<hui-marquee
|
<hui-marquee
|
||||||
.text=${stateObj.attributes.media_title ||
|
.text=${mediaTitleClean || mediaDescription}
|
||||||
mediaDescription}
|
|
||||||
.active=${this._marqueeActive}
|
.active=${this._marqueeActive}
|
||||||
@mouseover=${this._marqueeMouseOver}
|
@mouseover=${this._marqueeMouseOver}
|
||||||
@mouseleave=${this._marqueeMouseLeave}
|
@mouseleave=${this._marqueeMouseLeave}
|
||||||
></hui-marquee>
|
></hui-marquee>
|
||||||
${!stateObj.attributes.media_title
|
${!mediaTitleClean ? "" : mediaDescription}
|
||||||
? ""
|
|
||||||
: mediaDescription}
|
|
||||||
</div>
|
</div>
|
||||||
`}
|
`}
|
||||||
${!showControls
|
${!showControls
|
||||||
|
@ -30,6 +30,7 @@ import "../../components/ha-icon-button";
|
|||||||
import { UNAVAILABLE_STATES } from "../../data/entity";
|
import { UNAVAILABLE_STATES } from "../../data/entity";
|
||||||
import {
|
import {
|
||||||
BROWSER_PLAYER,
|
BROWSER_PLAYER,
|
||||||
|
cleanupMediaTitle,
|
||||||
computeMediaControls,
|
computeMediaControls,
|
||||||
computeMediaDescription,
|
computeMediaDescription,
|
||||||
formatMediaTime,
|
formatMediaTime,
|
||||||
@ -185,6 +186,7 @@ class BarMediaPlayer extends LitElement {
|
|||||||
: [{}];
|
: [{}];
|
||||||
const mediaDescription = computeMediaDescription(stateObj);
|
const mediaDescription = computeMediaDescription(stateObj);
|
||||||
const mediaDuration = formatMediaTime(stateObj!.attributes.media_duration!);
|
const mediaDuration = formatMediaTime(stateObj!.attributes.media_duration!);
|
||||||
|
const mediaTitleClean = cleanupMediaTitle(stateObj.attributes.media_title);
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<div class="info">
|
<div class="info">
|
||||||
@ -195,7 +197,7 @@ class BarMediaPlayer extends LitElement {
|
|||||||
: ""}
|
: ""}
|
||||||
<div class="media-info">
|
<div class="media-info">
|
||||||
<hui-marquee
|
<hui-marquee
|
||||||
.text=${stateObj.attributes.media_title ||
|
.text=${mediaTitleClean ||
|
||||||
mediaDescription ||
|
mediaDescription ||
|
||||||
this.hass.localize(`ui.card.media_player.nothing_playing`)}
|
this.hass.localize(`ui.card.media_player.nothing_playing`)}
|
||||||
.active=${this._marqueeActive}
|
.active=${this._marqueeActive}
|
||||||
@ -203,7 +205,7 @@ class BarMediaPlayer extends LitElement {
|
|||||||
@mouseleave=${this._marqueeMouseLeave}
|
@mouseleave=${this._marqueeMouseLeave}
|
||||||
></hui-marquee>
|
></hui-marquee>
|
||||||
<span class="secondary">
|
<span class="secondary">
|
||||||
${stateObj.attributes.media_title ? mediaDescription : ""}
|
${mediaTitleClean ? mediaDescription : ""}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { supportsFeature } from "../common/entity/supports-feature";
|
import { supportsFeature } from "../common/entity/supports-feature";
|
||||||
|
import { cleanupMediaTitle } from "../data/media-player";
|
||||||
|
|
||||||
export default class MediaPlayerEntity {
|
export default class MediaPlayerEntity {
|
||||||
constructor(hass, stateObj) {
|
constructor(hass, stateObj) {
|
||||||
@ -115,7 +116,7 @@ export default class MediaPlayerEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get primaryTitle() {
|
get primaryTitle() {
|
||||||
return this._attr.media_title;
|
return cleanupMediaTitle(this._attr.media_title);
|
||||||
}
|
}
|
||||||
|
|
||||||
get secondaryTitle() {
|
get secondaryTitle() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user