Skip to content

Commit

Permalink
1.2.1 builded
Browse files Browse the repository at this point in the history
  • Loading branch information
ilyhalight committed May 23, 2023
1 parent d6eeaaf commit ccb089a
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 10 deletions.
34 changes: 29 additions & 5 deletions dist/vot-cloudflare.user.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// @name:ru [VOT Cloudflare] - Закадровый перевод видео
// @description A small extension that adds a Yandex Browser video translation to other browsers
// @description:ru Небольшое расширение, которое добавляет закадровый перевод видео из Яндекс Браузера в другие браузеры
// @version 1.2.0
// @version 1.2.1
// @author sodapng, mynovelhost, Toil
// @supportURL https://github.com/ilyhalight/voice-over-translation/issues
// @match *://*.youtube.com/*
Expand Down Expand Up @@ -61,6 +61,7 @@
// @match *://*.facebook.com/*
// @match *://*.rutube.ru/*
// @match *://*.bilibili.com/*
// @match *://my.mail.ru/*
// @connect api.browser.yandex.ru
// @downloadURL https://raw.githubusercontent.com/ilyhalight/voice-over-translation/master/dist/vot-cloudflare.user.js
// @grant GM_xmlhttpRequest
Expand Down Expand Up @@ -93,7 +94,7 @@

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".translationBlock {\r\n padding: 0.45rem !important;\r\n width: max-content;\r\n position: absolute;\r\n background: #2e2f34;\r\n border-radius: 0.5rem !important;\r\n left: 50%;\r\n top: 5rem;\r\n transform: translate(-50%);\r\n text-align: center;\r\n opacity: 0;\r\n transition: opacity 1s;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n z-index: 100;\r\n}\r\n\r\n.translationBtn {\r\n position: relative;\r\n display: inline-block;\r\n vertical-align: middle;\r\n color: #fff;\r\n padding-right: 0.25rem !important;\r\n cursor: pointer;\r\n font: 600 12px / 14px \"Segoe UI\", BlinkMacSystemFont, Arial, sans-serif;\r\n}\r\n\r\n.translationBlock:hover {\r\n opacity: 1;\r\n}\r\n\r\n.translationMenu {\r\n display: inline-block;\r\n vertical-align: middle;\r\n border-left: 1px solid #424348;\r\n max-height: 16px;\r\n max-width: 24px;\r\n cursor: pointer;\r\n}\r\n\r\n.translationMenuIcon {\r\n padding: 0 10px !important;\r\n width: 24px;\r\n}\r\n\r\n.translationIAlice {\r\n display: inline-block;\r\n vertical-align: middle;\r\n max-height: 26px;\r\n max-width: 50px;\r\n}\r\n\r\n.translationIconAlice {\r\n height: 24px !important;\r\n width: 24px !important;\r\n}\r\n\r\n.translationITranslate {\r\n display: inline-block;\r\n vertical-align: middle;\r\n max-height: 20px;\r\n max-width: 20px;\r\n}\r\n\r\n.translationMenuContent {\r\n position: absolute;\r\n background: #2e2f34;\r\n color: #fff;\r\n display: none;\r\n border-radius: 1rem !important;\r\n left: 50%;\r\n top: 9rem;\r\n transform: translate(-50%);\r\n text-align:left;\r\n font: 600 14px / 16px \"Segoe UI\", BlinkMacSystemFont, Arial, sans-serif !important;\r\n\r\n width: 300px;\r\n /* height: 375px; */\r\n opacity: 0;\r\n z-index: 100;\r\n transition: opacity 0.5s ease;\r\n}\r\n\r\n.VOTMenuSlider {\r\n -webkit-appearance: none !important;\r\n appearance: none !important;\r\n width: 268px !important;\r\n height: 8px !important;\r\n outline: none !important;\r\n margin-top: 0.5rem;\r\n opacity: 0.7;\r\n /* background: #3C3F4D !important; */\r\n background: rgb(253, 222, 85, 0.6) !important;\r\n border: none !important;\r\n border-radius: 2rem !important;\r\n -webkit-transition: 0.2s !important;\r\n transition: opacity 0.2s ease !important;\r\n}\r\n\r\n.VOTMenuSlider:hover {\r\n opacity: 1;\r\n}\r\n\r\n.VOTMenuSlider::-webkit-slider-thumb {\r\n -webkit-appearance: none !important;\r\n appearance: none !important;\r\n width: 10px !important;\r\n height: 10px !important;\r\n border-radius: 50% !important;\r\n border: none !important;\r\n background: #fff !important;\r\n cursor: pointer !important;\r\n}\r\n\r\n.VOTMenuSlider::-moz-range-thumb {\r\n width: 10px !important;\r\n height: 10px !important;\r\n border-radius: 50% !important;\r\n border: none !important;\r\n background: #fff !important;\r\n cursor: pointer !important;\r\n}\r\n\r\n.VOTMenuSlider::-ms-thumb {\r\n width: 10px !important;\r\n height: 10px !important;\r\n border-radius: 50% !important;\r\n border: none !important;\r\n background: #fff !important;\r\n cursor: pointer !important;\r\n}\r\n\r\n.VOTMenuSlider::-ms-fill-lower {\r\n height: 8px !important;\r\n border-radius: 2rem !important;\r\n background: linear-gradient(90.1deg, rgba(186, 153, 244, 0.85) -5.78%, rgba(236, 138, 202, 0.7) 56.46%, rgba(239, 168, 117, 0.6) 108.93%) !important;\r\n}\r\n\r\n.VOTMenuSlider::-moz-range-progress {\r\n height: 8px !important;\r\n border-radius: 2rem !important;\r\n background: linear-gradient(90.1deg, rgba(186, 153, 244, 0.85) -5.78%, rgba(236, 138, 202, 0.7) 56.46%, rgba(239, 168, 117, 0.6) 108.93%) !important;\r\n}\r\n\r\n.translationHeader {\r\n padding-bottom: 0.5rem !important;\r\n}\r\n\r\n.translationMainHeader {\r\n margin: 16px !important;\r\n color: #FFF;\r\n font: 900 14px / 16px \"Segoe UI\", BlinkMacSystemFont, Arial, sans-serif !important;\r\n}\r\n\r\n.translationMenuContainer {\r\n /* width: 100%; */\r\n padding-left: 16px !important;\r\n padding-top: 5px !important;\r\n display: inline-block !important;\r\n}\r\n\r\n.translationMenuContainer > input {\r\n appearance: auto !important;\r\n}\r\n\r\n.translationMenuText {\r\n color: #FFF;\r\n display: inline-flex;\r\n width: 80%;\r\n}\r\n\r\n.translationVolumeBox, .translationVideoVolumeBox {\r\n padding-top: 0.5rem !important;\r\n}\r\n\r\n.translationDropDB {\r\n border: none !important;\r\n border-radius: 4px !important;\r\n background: #5426FF !important;\r\n color: #fff !important;\r\n padding: 6px 16px !important;\r\n margin-left: auto !important;\r\n cursor: pointer !important;\r\n}\r\n\r\n.translationDownload {\r\n background: #5426FF !important;\r\n color: #fff !important;\r\n padding: 2px 10px !important;\r\n border-radius: 4px !important;\r\n cursor: pointer;\r\n display: none;\r\n}\r\n\r\n.translationMenuFunctional {\r\n display: flex;\r\n margin: 16px !important;\r\n}\r\n\r\n.VOTMenuSelect {\r\n width: 110px;\r\n border-radius: 5px !important;\r\n border: 1px solid #DADCE0 !important;\r\n box-shadow: 0 1px 3px -2px #9098A9;\r\n padding: 5px !important;\r\n}\r\n\r\n.VOTMenuSelect:focus {\r\n outline: none;\r\n}\r\n\r\n.VOTMenuSelect:focus {\r\n outline: none;\r\n border-color: #0077FF;\r\n box-shadow: 0 0 0 2px rgba(#0077FF,.2)\r\n}\r\n\r\n#VOTSelectLanguages {\r\n display: flex !important;\r\n margin-left: 5px;\r\n}\r\n\r\n#VOTSelectLanguages svg {\r\n margin: 0 5px;\r\n}", ""]);
___CSS_LOADER_EXPORT___.push([module.id, ".translationBlock {\r\n padding: 0.45rem !important;\r\n width: max-content;\r\n position: absolute;\r\n background: #2e2f34;\r\n border-radius: 0.5rem !important;\r\n left: 50%;\r\n top: 5rem;\r\n transform: translate(-50%);\r\n text-align: center;\r\n opacity: 0;\r\n transition: opacity 1s;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n z-index: 100;\r\n}\r\n\r\n.translationBtn {\r\n position: relative;\r\n display: inline-block;\r\n vertical-align: middle;\r\n color: #fff;\r\n padding-right: 0.25rem !important;\r\n cursor: pointer;\r\n font: 600 12px / 14px \"Segoe UI\", BlinkMacSystemFont, Arial, sans-serif;\r\n}\r\n\r\n.translationBlock:hover {\r\n opacity: 1;\r\n}\r\n\r\n.translationMenu {\r\n display: inline-block;\r\n vertical-align: middle;\r\n border-left: 1px solid #424348;\r\n max-height: 16px;\r\n max-width: 24px;\r\n cursor: pointer;\r\n}\r\n\r\n.translationMenuIcon {\r\n padding: 0 10px !important;\r\n width: 24px;\r\n}\r\n\r\n.translationIAlice {\r\n display: inline-block;\r\n vertical-align: middle;\r\n max-height: 26px;\r\n max-width: 50px;\r\n}\r\n\r\n.translationIconAlice {\r\n height: 24px !important;\r\n width: 24px !important;\r\n}\r\n\r\n.translationITranslate {\r\n display: inline-block;\r\n vertical-align: middle;\r\n max-height: 20px;\r\n max-width: 20px;\r\n}\r\n\r\n.translationMenuContent {\r\n position: absolute;\r\n background: #2e2f34;\r\n color: #fff;\r\n display: none;\r\n border-radius: 1rem !important;\r\n left: 50%;\r\n top: 9rem;\r\n transform: translate(-50%);\r\n text-align:left;\r\n font: 600 14px / 16px \"Segoe UI\", BlinkMacSystemFont, Arial, sans-serif !important;\r\n\r\n width: 300px;\r\n /* height: 375px; */\r\n opacity: 0;\r\n z-index: 100;\r\n transition: opacity 0.5s ease;\r\n}\r\n\r\n.VOTMenuSlider {\r\n -webkit-appearance: none !important;\r\n appearance: none !important;\r\n width: 268px !important;\r\n height: 8px !important;\r\n outline: none !important;\r\n margin-top: 0.5rem;\r\n opacity: 0.7;\r\n /* background: #3C3F4D !important; */\r\n background: rgb(253, 222, 85, 0.6) !important;\r\n border: none !important;\r\n border-radius: 2rem !important;\r\n -webkit-transition: 0.2s !important;\r\n transition: opacity 0.2s ease !important;\r\n}\r\n\r\n.VOTMenuSlider:hover {\r\n opacity: 1;\r\n}\r\n\r\n.VOTMenuSlider::-webkit-slider-thumb {\r\n -webkit-appearance: none !important;\r\n appearance: none !important;\r\n width: 10px !important;\r\n height: 10px !important;\r\n border-radius: 50% !important;\r\n border: none !important;\r\n background: #fff !important;\r\n cursor: pointer !important;\r\n}\r\n\r\n.VOTMenuSlider::-moz-range-thumb {\r\n width: 10px !important;\r\n height: 10px !important;\r\n border-radius: 50% !important;\r\n border: none !important;\r\n background: #fff !important;\r\n cursor: pointer !important;\r\n}\r\n\r\n.VOTMenuSlider::-ms-thumb {\r\n width: 10px !important;\r\n height: 10px !important;\r\n border-radius: 50% !important;\r\n border: none !important;\r\n background: #fff !important;\r\n cursor: pointer !important;\r\n}\r\n\r\n.VOTMenuSlider::-ms-fill-lower {\r\n height: 8px !important;\r\n border-radius: 2rem !important;\r\n background: linear-gradient(90.1deg, rgba(186, 153, 244, 0.85) -5.78%, rgba(236, 138, 202, 0.7) 56.46%, rgba(239, 168, 117, 0.6) 108.93%) !important;\r\n}\r\n\r\n.VOTMenuSlider::-moz-range-progress {\r\n height: 8px !important;\r\n border-radius: 2rem !important;\r\n background: linear-gradient(90.1deg, rgba(186, 153, 244, 0.85) -5.78%, rgba(236, 138, 202, 0.7) 56.46%, rgba(239, 168, 117, 0.6) 108.93%) !important;\r\n}\r\n\r\n.translationHeader {\r\n padding-bottom: 0.5rem !important;\r\n}\r\n\r\n.translationMainHeader {\r\n margin: 16px !important;\r\n color: #FFF;\r\n font: 900 14px / 16px \"Segoe UI\", BlinkMacSystemFont, Arial, sans-serif !important;\r\n}\r\n\r\n.translationMenuContainer {\r\n /* width: 100%; */\r\n padding-left: 16px !important;\r\n padding-top: 5px !important;\r\n display: inline-block !important;\r\n}\r\n\r\n.translationMenuContainer > input {\r\n appearance: auto !important;\r\n}\r\n\r\n.translationMenuText {\r\n color: #FFF;\r\n display: inline-flex;\r\n width: 80%;\r\n}\r\n\r\n.translationVolumeBox, .translationVideoVolumeBox {\r\n padding-top: 0.5rem !important;\r\n}\r\n\r\n.translationDropDB {\r\n border: none !important;\r\n border-radius: 4px !important;\r\n background: #5426FF !important;\r\n color: #fff !important;\r\n padding: 6px 16px !important;\r\n margin-left: auto !important;\r\n cursor: pointer !important;\r\n}\r\n\r\n.translationDownload {\r\n background: #5426FF !important;\r\n color: #fff !important;\r\n padding: 2px 10px !important;\r\n border-radius: 4px !important;\r\n cursor: pointer;\r\n display: none;\r\n}\r\n\r\n.translationMenuFunctional {\r\n display: flex;\r\n margin: 16px !important;\r\n}\r\n\r\n.VOTMenuSelect {\r\n width: 110px;\r\n border-radius: 5px !important;\r\n border: 1px solid #DADCE0 !important;\r\n box-shadow: 0 1px 3px -2px #9098A9;\r\n color: #2e2f34 !important;\r\n padding: 5px !important;\r\n}\r\n\r\n.VOTMenuSelect:focus {\r\n outline: none;\r\n}\r\n\r\n.VOTMenuSelect:focus {\r\n outline: none;\r\n border-color: #0077FF;\r\n box-shadow: 0 0 0 2px rgba(#0077FF,.2)\r\n}\r\n\r\n#VOTSelectLanguages {\r\n display: flex !important;\r\n margin-left: 5px;\r\n}\r\n\r\n#VOTSelectLanguages svg {\r\n margin: 0 5px;\r\n}", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);

Expand Down Expand Up @@ -925,6 +926,11 @@ const getVideoId = (service) => {
} else if (url.pathname.includes('/blackboard/webplayer/embed-old.html')) {
return url.searchParams.get("bvid");
}
case "mail.ru":
if (url.pathname.includes('/v/')) {
const urlArray = url.pathname.split('/v/');
return urlArray[urlArray.length - 1];
}
default:
return false;
}
Expand Down Expand Up @@ -1016,7 +1022,8 @@ const siteTranslates = {
'twitter': 'https://twitter.com/i/status/',
'facebook': 'https://www.facebook.com/',
'rutube': 'https://rutube.ru/video/',
'bilibili.com': 'https://www.bilibili.com/video/'
'bilibili.com': 'https://www.bilibili.com/video/',
'mail.ru': 'https://my.mail.ru/v/'
};


Expand Down Expand Up @@ -1491,7 +1498,8 @@ const selectors = () => {
'twitterSelector': 'div[data-testid="videoComponent"] > div:nth-child(1) > div',
'vimeoSelector': '.player',
'gagSelector': '.video-post',
'bilibilicomSelector': '.bpx-player-video-wrap'
'bilibilicomSelector': '.bpx-player-video-wrap',
'mailSelector': '#b-video-wrapper'
}
}

Expand Down Expand Up @@ -2174,7 +2182,7 @@ async function src_main() {
});
}

if (['twitch', 'vimeo', 'facebook', 'rutube', 'twitter', 'bilibili.com'].includes(siteHostname)) {
if (['twitch', 'vimeo', 'facebook', 'rutube', 'twitter', 'bilibili.com', 'mail.ru'].includes(siteHostname)) {
const mutationObserver = new MutationObserver(async function(mutations) {
mutations.forEach(async function(mutation) {
if (mutation.type === 'attributes' && mutation.attributeName === 'src' && mutation.target === video && mutation.target.src !== '') {
Expand Down Expand Up @@ -2494,6 +2502,22 @@ async function src_main() {
}
}, 3000);
}
} else if (window.location.hostname.includes('my.mail.ru')) {
const el = await waitForElm(config_selectors.mailSelector);
if (el) {
let videoIDNew;
let videoID = getVideoId('mail.ru');
await translateProccessor(el, 'mail.ru', null);
setInterval(async () => {
videoIDNew = getVideoId('mail.ru');
if (videoID !== videoIDNew) {
if (videoIDNew) {
await translateProccessor(document.querySelector(config_selectors.mailSelector), 'mail.ru', null);
}
videoID = videoIDNew;
}
}, 3000);
}
}
}

Expand Down
Loading

0 comments on commit ccb089a

Please sign in to comment.