1
0
Fork 0
mirror of https://github.com/sussy-code/smov.git synced 2025-01-01 16:37:39 +01:00

Merge movie-web/dev

This commit is contained in:
Cooper Ransom 2024-03-10 23:05:36 -04:00
commit 0d1d889661
13 changed files with 69 additions and 11 deletions

View file

@ -1,6 +1,6 @@
{ {
"name": "sudo-flix", "name": "sudo-flix",
"version": "4.5.1", "version": "4.6.0",
"private": true, "private": true,
"homepage": "https://sudo-flix.lol", "homepage": "https://sudo-flix.lol",
"scripts": { "scripts": {

View file

@ -433,7 +433,7 @@
"confirmButton": "Elimina el compte", "confirmButton": "Elimina el compte",
"confirmDescription": "Segur que voleu eliminar el compte? Es perdran totes les dades!", "confirmDescription": "Segur que voleu eliminar el compte? Es perdran totes les dades!",
"confirmTitle": "Segur?", "confirmTitle": "Segur?",
"text": "esta acció és irreversible. Totes les dades s'eliminaran i no es podrà recuperar res.", "text": "Esta acció és irreversible. Totes les dades s'eliminaran i no es podrà recuperar res.",
"title": "Elimina el compte" "title": "Elimina el compte"
}, },
"title": "Accions" "title": "Accions"

View file

@ -577,6 +577,7 @@
}, },
"subtitles": { "subtitles": {
"backgroundLabel": "Background opacity", "backgroundLabel": "Background opacity",
"backgroundBlurLabel": "Background blur",
"colorLabel": "Color", "colorLabel": "Color",
"previewQuote": "Would you rather have a thot daughter or a gay son? 🤔", "previewQuote": "Would you rather have a thot daughter or a gay son? 🤔",
"textSizeLabel": "Text size", "textSizeLabel": "Text size",

View file

@ -12,7 +12,7 @@
}, },
"q3": { "q3": {
"body": "Nuestros resultados de búsqueda están alimentados por The Movie Database (TMDB) y se muestran independientemente de si nuestras fuentes realmente tienen el contenido.", "body": "Nuestros resultados de búsqueda están alimentados por The Movie Database (TMDB) y se muestran independientemente de si nuestras fuentes realmente tienen el contenido.",
"title": "Los resultados de búsqueda muestran la serie o película, ¿por qué no puedo reproducirla?" "title": "Los resultados de búsqueda muestran la serie o película, ¿Por qué no puedo reproducirla?"
}, },
"title": "Acerca de sudo-flix" "title": "Acerca de sudo-flix"
}, },
@ -177,7 +177,7 @@
"cancel": "Cancelar", "cancel": "Cancelar",
"confirm": "Usar configuración por defecto", "confirm": "Usar configuración por defecto",
"description": "La configuración predeterminada no tiene las mejores transmisiones y puede ser insoportablemente lenta.", "description": "La configuración predeterminada no tiene las mejores transmisiones y puede ser insoportablemente lenta.",
"title": "Estás seguro?" "title": "¿Estás seguro?"
}, },
"extension": { "extension": {
"back": "Volver atrás", "back": "Volver atrás",
@ -395,7 +395,7 @@
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
}, },
"turnstile": { "turnstile": {
"description": "Por favor, confirma que eres humano completando el Captcha. Esto es para mantener sudo-flix seguro!", "description": "Por favor, confirma que eres humano completando el Captcha. ¡Esto es para mantener sudo-flix seguro!",
"error": "Ha habido un error al verificar tu humanidad. Por favor, prueba de nuevo.", "error": "Ha habido un error al verificar tu humanidad. Por favor, prueba de nuevo.",
"title": "Necesitamos verificar que eres humano.", "title": "Necesitamos verificar que eres humano.",
"verifyingHumanity": "Verificando tu hunanidad…" "verifyingHumanity": "Verificando tu hunanidad…"
@ -490,7 +490,7 @@
"redoSetup": "Rehacer configuración", "redoSetup": "Rehacer configuración",
"successStatus": { "successStatus": {
"description": "Todo lo necesario está en su sitio para que empieces a ver tu contenido favorito.", "description": "Todo lo necesario está en su sitio para que empieces a ver tu contenido favorito.",
"title": "Todo está configurado!" "title": "¡Todo está configurado!"
}, },
"unsetStatus": { "unsetStatus": {
"description": "Haga clic en el botón a la derecha para iniciar el proceso de configuración.", "description": "Haga clic en el botón a la derecha para iniciar el proceso de configuración.",

View file

@ -57,6 +57,8 @@
}, },
"host": "Ühendate <0>{{hostname}}</0> - enne konto tegemist kinnitage, et usaldate seda", "host": "Ühendate <0>{{hostname}}</0> - enne konto tegemist kinnitage, et usaldate seda",
"no": "Tagasi", "no": "Tagasi",
"noHost": "Server ei ole konfigureeritud, seega ei saa kontot luua",
"noHostTitle": "Server ei ole konfigureeritud!",
"title": "Kas usaldate seda serverit?", "title": "Kas usaldate seda serverit?",
"yes": "Usaldan seda serverit" "yes": "Usaldan seda serverit"
}, },
@ -118,7 +120,12 @@
"noResults": "Me ei leidnud midagi!", "noResults": "Me ei leidnud midagi!",
"placeholder": { "placeholder": {
"default": "Mida tahate vaadata?", "default": "Mida tahate vaadata?",
"extra": [] "extra": [
"Mida soovite uurida?",
"Mis on teie nimekirjas?",
"Milline on teie lemmikfilm?",
"Milline on teie lemmiksari?"
]
}, },
"sectionTitle": "Otsingutulemused" "sectionTitle": "Otsingutulemused"
}, },
@ -241,6 +248,7 @@
}, },
"menus": { "menus": {
"downloads": { "downloads": {
"copyHlsPlaylist": "Kopeeri HLS esitusloendi link",
"disclaimer": "Allalaadimine toimub otse teenusepakkujalt. sudo-flix ei saa kontrollida, kuidas allalaadimine toimub.", "disclaimer": "Allalaadimine toimub otse teenusepakkujalt. sudo-flix ei saa kontrollida, kuidas allalaadimine toimub.",
"downloadSubtitle": "Laadige alla praegune subtiiter", "downloadSubtitle": "Laadige alla praegune subtiiter",
"downloadVideo": "Lae alla video", "downloadVideo": "Lae alla video",
@ -524,6 +532,7 @@
} }
}, },
"subtitles": { "subtitles": {
"backgroundBlurLabel": "Tausta hägusus",
"backgroundLabel": "Tausta läbipaistmatus", "backgroundLabel": "Tausta läbipaistmatus",
"colorLabel": "Värv", "colorLabel": "Värv",
"previewQuote": "Ma ei tohi karta. Hirm on meelemõrvar.", "previewQuote": "Ma ei tohi karta. Hirm on meelemõrvar.",

View file

@ -103,7 +103,7 @@
"dmca": "DMCA", "dmca": "DMCA",
"login": "Skrá inn", "login": "Skrá inn",
"onboarding": "Setja upp", "onboarding": "Setja upp",
"pagetitle": "{{title}} - movie-web", "pagetitle": "{{title}} - sudo-flix",
"register": "Skrá", "register": "Skrá",
"settings": "Stillingar" "settings": "Stillingar"
} }

View file

@ -57,6 +57,8 @@
}, },
"host": "<0>{{hostname}}</0>에 연결 중입니다 - 계정을 만들기 전에 신뢰하는지 확인해 주세요", "host": "<0>{{hostname}}</0>에 연결 중입니다 - 계정을 만들기 전에 신뢰하는지 확인해 주세요",
"no": "뒤로 가기", "no": "뒤로 가기",
"noHost": "서버가 구성되어 있지 않기 때문에 계정을 만들 수 없습니다",
"noHostTitle": "서버가 구성되지 않았습니다!",
"title": "이 서버를 신뢰하십니까?", "title": "이 서버를 신뢰하십니까?",
"yes": "네, 신뢰합니다" "yes": "네, 신뢰합니다"
}, },
@ -118,7 +120,12 @@
"noResults": "검색결과가 없습니다!", "noResults": "검색결과가 없습니다!",
"placeholder": { "placeholder": {
"default": "무엇을 보고 싶으신가요?", "default": "무엇을 보고 싶으신가요?",
"extra": [] "extra": [
"무엇을 탐험하고 싶으신가요?",
null,
"당신이 가장 좋아하는 영화는?",
"당신이 가장 좋아하는 시리즈는?"
]
}, },
"sectionTitle": "검색 결과" "sectionTitle": "검색 결과"
}, },
@ -241,6 +248,7 @@
}, },
"menus": { "menus": {
"downloads": { "downloads": {
"copyHlsPlaylist": "HLS 플레이리스트 링크 복사하기",
"disclaimer": "다운로드는 제공업체에서 직접 가져옵니다. sudo-flix은 다운로드 제공 방식을 통제할 수 없습니다.", "disclaimer": "다운로드는 제공업체에서 직접 가져옵니다. sudo-flix은 다운로드 제공 방식을 통제할 수 없습니다.",
"downloadSubtitle": "현재 자막 다운로드", "downloadSubtitle": "현재 자막 다운로드",
"downloadVideo": "영상 다운로드", "downloadVideo": "영상 다운로드",

View file

@ -525,6 +525,7 @@
}, },
"subtitles": { "subtitles": {
"backgroundLabel": "Krycie tła", "backgroundLabel": "Krycie tła",
"backgroundBlurLabel": "Rozmycie tła",
"colorLabel": "Kolor", "colorLabel": "Kolor",
"previewQuote": "Nie wolno mi się bać. Strach zabija myślenie.", "previewQuote": "Nie wolno mi się bać. Strach zabija myślenie.",
"textSizeLabel": "Rozmiar czcionki", "textSizeLabel": "Rozmiar czcionki",

View file

@ -57,6 +57,8 @@
}, },
"host": "Вы подключаетесь к <0>{{hostname}}</0> - пожалуйста, подтвердите, что вы доверяете ему, прежде чем создавать учётную запись", "host": "Вы подключаетесь к <0>{{hostname}}</0> - пожалуйста, подтвердите, что вы доверяете ему, прежде чем создавать учётную запись",
"no": "Вернуться назад", "no": "Вернуться назад",
"noHost": "Сервер не был настроен, поэтому вы не можете создать учётную запись",
"noHostTitle": "Сервер не настроен!",
"title": "Вы доверяете этому серверу?", "title": "Вы доверяете этому серверу?",
"yes": "Я доверяю этому серверу" "yes": "Я доверяю этому серверу"
}, },
@ -118,7 +120,12 @@
"noResults": "Мы ничего не нашли!", "noResults": "Мы ничего не нашли!",
"placeholder": { "placeholder": {
"default": "Что вы хотите посмотреть?", "default": "Что вы хотите посмотреть?",
"extra": [] "extra": [
"Что вы хотите исследовать?",
"Что в вашем списке?",
"Какой ваш любимый фильм?",
"Какой ваш любимый сериал?"
]
}, },
"sectionTitle": "Результаты поиска" "sectionTitle": "Результаты поиска"
}, },
@ -131,7 +138,9 @@
}, },
"morning": { "morning": {
"default": "Что бы вы хотели посмотреть этим утром?", "default": "Что бы вы хотели посмотреть этим утром?",
"extra": ["Слышали, что «Перед рассветом» отличный фильм"] "extra": [
"Слышали, что «Перед рассветом» отличный фильм"
]
}, },
"night": { "night": {
"default": "Что бы вы хотели посмотреть этим вечером?", "default": "Что бы вы хотели посмотреть этим вечером?",

View file

@ -262,6 +262,14 @@ export function CaptionSettingsView({ id }: { id: string }) {
value={styling.backgroundOpacity * 100} value={styling.backgroundOpacity * 100}
textTransformer={(s) => `${s}%`} textTransformer={(s) => `${s}%`}
/> />
<CaptionSetting
label={t("settings.subtitles.backgroundBlurLabel")}
max={100}
min={0}
onChange={(v) => updateStyling({ backgroundBlur: v / 100 })}
value={styling.backgroundBlur * 100}
textTransformer={(s) => `${s}%`}
/>
<CaptionSetting <CaptionSetting
label={t("settings.subtitles.textSizeLabel")} label={t("settings.subtitles.textSizeLabel")}
max={200} max={200}

View file

@ -55,6 +55,10 @@ export function CaptionCue({
color: styling.color, color: styling.color,
fontSize: `${(1.5 * styling.size).toFixed(2)}em`, fontSize: `${(1.5 * styling.size).toFixed(2)}em`,
backgroundColor: `rgba(0,0,0,${styling.backgroundOpacity.toFixed(2)})`, backgroundColor: `rgba(0,0,0,${styling.backgroundOpacity.toFixed(2)})`,
backdropFilter:
styling.backgroundBlur !== 0
? `blur(${Math.floor(styling.backgroundBlur * 64)}px)`
: "none",
}} }}
> >
<span <span

View file

@ -92,6 +92,16 @@ export function CaptionsPart(props: {
value={props.styling.backgroundOpacity * 100} value={props.styling.backgroundOpacity * 100}
textTransformer={(s) => `${s}%`} textTransformer={(s) => `${s}%`}
/> />
<CaptionSetting
label={t("settings.subtitles.backgroundBlurLabel")}
max={100}
min={0}
onChange={(v) =>
props.setStyling({ ...props.styling, backgroundBlur: v / 100 })
}
value={props.styling.backgroundBlur * 100}
textTransformer={(s) => `${s}%`}
/>
<CaptionSetting <CaptionSetting
label={t("settings.subtitles.textSizeLabel")} label={t("settings.subtitles.textSizeLabel")}
max={200} max={200}

View file

@ -17,6 +17,11 @@ export interface SubtitleStyling {
* background opacity, ranges between 0 and 1 * background opacity, ranges between 0 and 1
*/ */
backgroundOpacity: number; backgroundOpacity: number;
/**
* background blur, ranges between 0 and 1
*/
backgroundBlur: number;
} }
export interface SubtitleStore { export interface SubtitleStore {
@ -51,6 +56,7 @@ export const useSubtitleStore = create(
color: "#ffffff", color: "#ffffff",
backgroundOpacity: 0.5, backgroundOpacity: 0.5,
size: 1, size: 1,
backgroundBlur: 0.5,
}, },
resetSubtitleSpecificSettings() { resetSubtitleSpecificSettings() {
set((s) => { set((s) => {
@ -62,6 +68,8 @@ export const useSubtitleStore = create(
set((s) => { set((s) => {
if (newStyling.backgroundOpacity !== undefined) if (newStyling.backgroundOpacity !== undefined)
s.styling.backgroundOpacity = newStyling.backgroundOpacity; s.styling.backgroundOpacity = newStyling.backgroundOpacity;
if (newStyling.backgroundBlur !== undefined)
s.styling.backgroundBlur = newStyling.backgroundBlur;
if (newStyling.color !== undefined) if (newStyling.color !== undefined)
s.styling.color = newStyling.color.toLowerCase(); s.styling.color = newStyling.color.toLowerCase();
if (newStyling.size !== undefined) if (newStyling.size !== undefined)