Skip to content

Commit

Permalink
fix: added validation for set response lang by browser lang (#1072, #…
Browse files Browse the repository at this point in the history
  • Loading branch information
ilyhalight committed Jan 30, 2025
1 parent 77ab637 commit 4800cf9
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 40 deletions.
1 change: 1 addition & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- Исправлено возникновение ошибок на YouTube в GreasyMonkey (#1055)
- Исправлены слеты шрифта в меню на некоторых сайтах
- Исправлено некорректное отображение заполнения слайдера после включения опции "Расширенное увеличение громкости видео"
- Исправлена установка неподдерживаемого языка в качестве языка перевода, если он был установлен как основной язык браузера (#1072, #1078)
- Убран таймаут при загрузке аудио файла (#1074)
- Увеличено значение для таймаута при загрузке аудио плеером (#1074)
- ProtobufJS был заменен на `@bufbuild/protobuf`
Expand Down
28 changes: 14 additions & 14 deletions dist/vot-min.user.js

Large diffs are not rendered by default.

74 changes: 51 additions & 23 deletions dist/vot.user.js
Original file line number Diff line number Diff line change
Expand Up @@ -4816,13 +4816,59 @@ const votStorage = new (class {
}
})();

;// ./node_modules/@vot.js/shared/dist/data/consts.js
const availableLangs = [
"auto",
"ru",
"en",
"zh",
"ko",
"lt",
"lv",
"ar",
"fr",
"it",
"es",
"de",
"ja",
];
const availableTTS = ["ru", "en", "kk"];
const subtitlesFormats = ["srt", "vtt", "json"];


;// ./src/utils/utils.js





const userlang = navigator.language || navigator.userLanguage;
const MAX_SECS_FRACTION = 0.66;
const slavicLangs = [
"uk",
"be",
"bg",
"mk",
"sr",
"bs",
"hr",
"sl",
"pl",
"sk",
"cs",
];
const lang = userlang?.substring(0, 2).toLowerCase() || "en";
const calculatedResLang = (() => {
if (availableTTS.includes(lang)) {
return lang;
}

if (slavicLangs.includes(lang)) {
return "ru";
}

return "en";
})();

function secsToStrTime(secs) {
let minutes = Math.floor(secs / 60);
Expand Down Expand Up @@ -7996,26 +8042,6 @@ class NineGAGHelper extends BaseHelper {
}
}

;// ./node_modules/@vot.js/shared/dist/data/consts.js
const availableLangs = [
"auto",
"ru",
"en",
"zh",
"ko",
"lt",
"lv",
"ar",
"fr",
"it",
"es",
"de",
"ja",
];
const availableTTS = ["ru", "en", "kk"];
const subtitlesFormats = ["srt", "vtt", "json"];


;// ./node_modules/@vot.js/ext/dist/helpers/youtube.js


Expand Down Expand Up @@ -10789,7 +10815,7 @@ class VideoHandler {
*
* @type {import("./index").VideoHandler['translateToLang']}
*/
translateToLang = lang;
translateToLang = calculatedResLang;

/**
* @type {import("./index").VideoHandler['timer']}
Expand Down Expand Up @@ -11084,7 +11110,9 @@ class VideoHandler {

const dataPromises = {
autoTranslate: votStorage.get("autoTranslate", 0),
dontTranslateLanguage: votStorage.get("dontTranslateLanguage", [lang]),
dontTranslateLanguage: votStorage.get("dontTranslateLanguage", [
calculatedResLang,
]),
dontTranslateYourLang: votStorage.get("dontTranslateYourLang", 1),
autoSetVolumeYandexStyle: votStorage.get("autoSetVolumeYandexStyle", 1),
autoVolume: votStorage.get("autoVolume", defaultAutoVolume),
Expand All @@ -11098,7 +11126,7 @@ class VideoHandler {
subtitlesFontSize: votStorage.get("subtitlesFontSize", 20),
subtitlesOpacity: votStorage.get("subtitlesOpacity", 20),
subtitlesDownloadFormat: votStorage.get("subtitlesDownloadFormat", "srt"),
responseLanguage: votStorage.get("responseLanguage", lang),
responseLanguage: votStorage.get("responseLanguage", calculatedResLang),
defaultVolume: votStorage.get("defaultVolume", 100),
onlyBypassMediaCSP: votStorage.get(
"onlyBypassMediaCSP",
Expand Down
9 changes: 6 additions & 3 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import {
initHls,
isPiPAvailable,
lang,
calculatedResLang,
secsToStrTime,
downloadBlob,
clearFileName,
Expand Down Expand Up @@ -94,7 +95,7 @@ class VideoHandler {
*
* @type {import("./index").VideoHandler['translateToLang']}
*/
translateToLang = lang;
translateToLang = calculatedResLang;

/**
* @type {import("./index").VideoHandler['timer']}
Expand Down Expand Up @@ -389,7 +390,9 @@ class VideoHandler {

const dataPromises = {
autoTranslate: votStorage.get("autoTranslate", 0),
dontTranslateLanguage: votStorage.get("dontTranslateLanguage", [lang]),
dontTranslateLanguage: votStorage.get("dontTranslateLanguage", [
calculatedResLang,
]),
dontTranslateYourLang: votStorage.get("dontTranslateYourLang", 1),
autoSetVolumeYandexStyle: votStorage.get("autoSetVolumeYandexStyle", 1),
autoVolume: votStorage.get("autoVolume", defaultAutoVolume),
Expand All @@ -403,7 +406,7 @@ class VideoHandler {
subtitlesFontSize: votStorage.get("subtitlesFontSize", 20),
subtitlesOpacity: votStorage.get("subtitlesOpacity", 20),
subtitlesDownloadFormat: votStorage.get("subtitlesDownloadFormat", "srt"),
responseLanguage: votStorage.get("responseLanguage", lang),
responseLanguage: votStorage.get("responseLanguage", calculatedResLang),
defaultVolume: votStorage.get("defaultVolume", 100),
onlyBypassMediaCSP: votStorage.get(
"onlyBypassMediaCSP",
Expand Down
26 changes: 26 additions & 0 deletions src/utils/utils.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,35 @@
import { availableTTS } from "@vot.js/shared/consts";

import { localizationProvider } from "../localization/localizationProvider.js";
import debug from "./debug.ts";

const userlang = navigator.language || navigator.userLanguage;
const MAX_SECS_FRACTION = 0.66;
const slavicLangs = [
"uk",
"be",
"bg",
"mk",
"sr",
"bs",
"hr",
"sl",
"pl",
"sk",
"cs",
];
export const lang = userlang?.substring(0, 2).toLowerCase() || "en";
export const calculatedResLang = (() => {
if (availableTTS.includes(lang)) {
return lang;
}

if (slavicLangs.includes(lang)) {
return "ru";
}

return "en";
})();

function secsToStrTime(secs) {
let minutes = Math.floor(secs / 60);
Expand Down

0 comments on commit 4800cf9

Please sign in to comment.