From 6c9cfed49fae5a0414c860ffbb4ca0e20c79d170 Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Wed, 4 Dec 2024 07:52:53 +0100 Subject: [PATCH] Explicitly set file name for camera snapshot (#23124) * Explicitly set file name for camera snapshot * Process code review --- src/dialogs/more-info/controls/more-info-camera.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/dialogs/more-info/controls/more-info-camera.ts b/src/dialogs/more-info/controls/more-info-camera.ts index 7b339db519..0a9a6e6339 100644 --- a/src/dialogs/more-info/controls/more-info-camera.ts +++ b/src/dialogs/more-info/controls/more-info-camera.ts @@ -8,6 +8,7 @@ import "../../../components/buttons/ha-progress-button"; import { UNAVAILABLE } from "../../../data/entity"; import { fileDownload } from "../../../util/file_download"; import { showToast } from "../../../util/toast"; +import { slugify } from "../../../common/string/slugify"; class MoreInfoCamera extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; @@ -69,9 +70,14 @@ class MoreInfoCamera extends LitElement { throw new Error("No response from API"); } + const contentType = result.headers.get("content-type"); + const ext = contentType === "image/png" ? "png" : "jpg"; + const date = new Date().toLocaleString(); + const filename = `snapshot_${slugify(this.stateObj!.entity_id)}_${date}.${ext}`; + const blob = await result.blob(); const url = window.URL.createObjectURL(blob); - fileDownload(url); + fileDownload(url, filename); } catch (err) { this._waiting = false; button.actionError();