From e0fd0af02eacd4f126aab3f7853d296f45658f7d Mon Sep 17 00:00:00 2001 From: Kralot Date: Mon, 27 Apr 2026 16:41:39 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20player.html=20est=C3=A1tico,=20corri?= =?UTF-8?q?ge=20Pure=20mode=20e=20desativa=20translate=20no=20Chromium?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- - Criado `public/player.html` como arquivo estático verdadeiro (servido pelo Next.js sem processamento, equivalente ao nginx), com HLS.js, tentativa direta ao MediaMTX em `:8888`, fallback para proxy, e integração silenciosa com `WebOSServiceBridge` para supressão do screensaver WebOS; - Pure mode "Run HTML" atualizado para apontar a `/player.html?id={id}` em vez de rota dinâmica; rewrite removido do `next.config.ts`; - Toggles "Pure mode" e "Open in new tab" no menu do card corrigidos: toggle agora à esquerda e texto à direita, alinhados com os demais itens; - Adicionado `TranslateEnabled: false` na managed policy do Chromium no `Dockerfile`, solução definitiva para suprimir o popup de tradução do Google; --- --- docker/Dockerfile | 4 +- next.config.ts | 8 ---- public/player.html | 81 +++++++++++++++++++++++++++++++++++ src/components/StreamCard.tsx | 6 +-- 4 files changed, 86 insertions(+), 13 deletions(-) create mode 100644 public/player.html diff --git a/docker/Dockerfile b/docker/Dockerfile index fc627cb..8d0ddb0 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -46,9 +46,9 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ && apt-get clean \ && find /usr/lib/chromium/locales -name '*.pak' ! -name 'en-US.pak' -delete 2>/dev/null || true \ \ - # Chromium managed policy: disable password manager and autofill save prompts + # Chromium managed policy: disable password manager, autofill and translate && mkdir -p /etc/chromium/policies/managed \ - && printf '{"PasswordManagerEnabled":false,"AutofillAddressEnabled":false,"AutofillCreditCardEnabled":false}' \ + && printf '{"PasswordManagerEnabled":false,"AutofillAddressEnabled":false,"AutofillCreditCardEnabled":false,"TranslateEnabled":false}' \ > /etc/chromium/policies/managed/policy.json \ \ && rm -rf \ diff --git a/next.config.ts b/next.config.ts index eab337e..de2d453 100644 --- a/next.config.ts +++ b/next.config.ts @@ -2,14 +2,6 @@ import type { NextConfig } from "next"; const nextConfig: NextConfig = { output: "standalone", - async rewrites() { - return [ - { - source: "/player/:id.html", - destination: "/api/player-html/:id", - }, - ] - }, }; export default nextConfig; \ No newline at end of file diff --git a/public/player.html b/public/player.html new file mode 100644 index 0000000..c7147ea --- /dev/null +++ b/public/player.html @@ -0,0 +1,81 @@ + + + + + + + + +
+ + + + diff --git a/src/components/StreamCard.tsx b/src/components/StreamCard.tsx index b886dac..79e4f1a 100644 --- a/src/components/StreamCard.tsx +++ b/src/components/StreamCard.tsx @@ -174,7 +174,7 @@ export function StreamCard({ stream, status, localStatus, cardSize = "md", onRef function handleRunHtml() { navigate(prefs.pureMode - ? `/player/${stream.id}.html` + ? `/player.html?id=${stream.id}` : `/static/${stream.id}`) } @@ -298,12 +298,12 @@ const playBtn = `w-full flex items-center rounded border border-border bg-muted