Скрипт для того, чтобы запускать вебинары на ютубе
// ==UserScript==
// @name Umschool script
// @namespace http://tampermonkey.net/
// @version 0.6.2 beta
// @description Скрипт для того, чтобы запускать вебинары на ютубе
// @author https://vk.com/id227730745
// @match https://umschool.net/*
// @grant none
// ==/UserScript==
// работа с url сайта
var url = document.URL;
url = url.split('//')[1].split('/');
// для редактирования страницы
var button_main_style = '.yt_button_script {background-color: #be2413; border: none; border-radius: 20px; margin-left: 10px; color: white; padding: 5px 10.5px; margin-top: 7.5px; text-align: center; text-decoration: none; display: inline-block; font-size: 18px; font-weight: bold;} .yt_button_script:hover {background-color: #df3c2a;} .yt_button_script:active {background-color: #d96154;}';
var button_down_style = '.yt_button_down_script {background-color: #21c809; border: none; border-radius: 20px; color: white; padding: 5px 10.5px; margin-top: 7.5px; text-align: center; text-decoration: none; display: inline-block; font-size: 18px; font-weight: bold;} .yt_button_down_script:hover {background-color: #4de038;} .yt_button_down_script:active {background-color: #8edd83;}';
var bear_image_new_src = 'https://i.ibb.co/G089qYZ/bear-icon.png';
var hm_my_style = `hr {display: none} .exercise-item {background-color: #f7f6f6; padding: 15px; /*border: 0.5px solid #E6E6E6;*/ border-radius: 20px;}
.float-right {float: none !important}
.form-control[readonly] {border: 2px #43B15D solid}
.form-control[style="background-color: #dc3545; color: #ffffff"] {border: 2px #b14b43 solid;}
.form-control[style="background-color: rgb(220, 53, 69); color: rgb(255, 255, 255); --darkreader-inline-bgcolor:#86272e; --darkreader-inline-color:#ffffff;"] {border: 2px #b14b43 solid;} /*для тёмной темы Dark Reader*/`
var scroll_custom_style = '::-webkit-scrollbar-button { background-image:url(""); background-repeat:no-repeat; width:6px; height:0px } ::-webkit-scrollbar-thumb { webkit-border-radius: 5px; border-radius: 5px; background-color:#F19137; background-image:url("https://yraaa.ru/_pu/24/59610063.png"); background-position:center; background-repeat:no-repeat; } ::-webkit-resizer{ background-image:url(""); background-repeat:no-repeat; width:7px; height:0px } ::-webkit-scrollbar{ width: 11px; }';
var xp_levels = [ 0, 200, 700, 1500, 2350, 4350, 5200, 6050, 6900, 7750, 9750, 10600, 11450, 12300, 13150, 15150, 16000, 16850, 17700, 18550, 19400, 20250, 21550, 23050, 28050 ];
var autoloading = false; // переключатель автозапуска
if (getCookie('settings_autoloading')) autoloading = (getCookie('settings_autoloading') == '1')? true : false;
var experiment = false; // переключатель экспериментальных функций
if (getCookie('settings_experimental')) experiment = (getCookie('settings_experimental') == '1')? true : false;
var rem_toolbars = false; // переключатель убирания панели для полей ввода
if (getCookie('settings_remtoolbar')) rem_toolbars = (getCookie('settings_remtoolbar') == '1')? true : false;
var src;
var clock;
var timer = 1.5; // таймер для автозапуска
var initial_timer = 0; // таймер для поиска и добавления элементов
var styles = ''; // общая переменная для стилей
// блок кода для страницы веба
if (url[1] == 'mastergroup' & url[2] == 'lessons' & (url[4] == '' | url[4] == '#'))
{
let elem = document.body.getElementsByClassName('preview-title')[0];
if (!elem) elem = document.body.getElementsByClassName('date-container')[0];
if (elem)
{
styles += button_main_style;
elem.innerHTML += '<div><button class="yt_button_script">Открыть на YouTube</button><button class="yt_button_script" style="width: 40px !important"> + </button></div>';
if (elem.classList[0] == 'preview-title' & experiment)
{
styles += button_down_style;
elem.innerHTML += '<input class="yt_button_down_script" type="button" value="Скачать вебинар [β]" style="margin-left: 10px;"> ';
}
var button1 = document.body.getElementsByClassName('yt_button_script')[0];
var buttonnew = document.body.getElementsByClassName('yt_button_script')[1];
if (experiment) var button_down = document.body.getElementsByClassName('yt_button_down_script')[0];
}
if (autoloading)
{
clock = setTimeout(yt_start, timer * 1000);
}
if (button1)
{
button1.onclick = function click() { yt_start(); };
}
if (buttonnew)
{
buttonnew.onclick = function click() { yt_start_new(); };
}
if (button_down & experiment)
{
button_down.onclick = function click() { yt_download(); };
}
}
else if (url[1] == 'core' & url[2] == 'profile' & url[3] == 'edit') // блок кода для страницы Профиля/Настроек
{
let elem = document.body.getElementsByClassName('content')[0];
if (elem)
{
var html = `<h3><b>Настройки Umschool script</b></h3>
<input class="settings_autoloading_toggler" type="checkbox"> Автозапуск вебинаров на ютубе
<br><input class="settings_experimental_toggler" type="checkbox"> Экспериментальные функции
<br><input class="settings_remtoolbar_toggler" type="checkbox"> Убрать панель у полей ввода
<br><a href="https://vk.com/id227730745" target="_blank" style="color: #f19137">По всем багам и вопросам писать сюда.</a>`;
if (experiment)
{
var html_ex = '';
}
elem.innerHTML += html;
var autoloading_toggler = elem.getElementsByClassName('settings_autoloading_toggler')[0];
autoloading_toggler.checked = autoloading;
var experimental_toggler = elem.getElementsByClassName('settings_experimental_toggler')[0];
experimental_toggler.checked = experiment;
var remtoolbar_toggler = elem.getElementsByClassName('settings_remtoolbar_toggler')[0];
remtoolbar_toggler.checked = rem_toolbars;
}
if (autoloading_toggler)
{
autoloading_toggler.onclick = function click() { autoloading_toggle() };
}
if (experimental_toggler)
{
experimental_toggler.onclick = function click() { experimental_toggle() };
}
if (remtoolbar_toggler)
{
remtoolbar_toggler.onclick = function click() { remtoolbar_toggle() };
}
}
else if (((url[1] == 'mastergroup' & url[2] == 'lessons' & url[4] == 'homework') |
(url[1] == 'homework' & url[2] == 'submissions')) & experiment)
{
styles += hm_my_style;
}
// Для отображения в заголовке
if (url[1] == 'core' & url[2] == 'hw' & url[3] == 'my') {
document.title = "Домашние задания";
}
else if (url[1] == 'mastergroup') {
if (url[2] == 'lessons') {
if (url[4] == '' | url[4] == '#') {
let elem = document.body.getElementsByClassName('text-container')[0].children[0];
document.title = elem.innerHTML;
}
else if (url[4] == 'homework') {
let elem = document.body.getElementsByClassName('text-container')[0].children[0];
elem = elem.innerHTML.split(' (')[0];
document.title = elem;
}
}
else {
document.title = "Мастер-группы";
}
}
else if (url[1] == 'teacher') {
document.title = "Преподаватели";
}
else if (url[1] == 'core') {
if (url[2] == 'profile') {
document.title = "Главная страница";
}
else if (url[2] == 'loyalty') {
document.title = "Мои достижения";
}
}
else if (url[1] == 'course') {
document.title = "Курсы";
}
// замена медведя
var bear_image = document.body.getElementsByClassName('bear-notifier-img')[0];
if (bear_image) {
bear_image.src = bear_image_new_src;
}
// убирание новых полей ввода
if (rem_toolbars) {
var fields_toolbars = document.body.getElementsByClassName('fr-toolbar');
for (let i = 0; i < fields_toolbars.length; i++)
{
console.log(fields_toolbars[i]);
fields_toolbars[i].remove();
i--;
}
}
// изменение отображения уровней
if (experiment)
{
var xp_ind = document.body.getElementsByClassName('nav-level')[0];
var points = Number(xp_ind.innerHTML.slice(0, -2));
if (points != 0)
{
let b = xp_levels[0];
let i = 0;
while (points > xp_levels[i]) {
b = xp_levels[i+1];
i++;
}
xp_ind.innerHTML = points + 'XP [' + (b - points) + ']';
}
}
if (experiment)
{
var useless_image = document.body.getElementsByClassName('if-mobile')[1];
useless_image.innerHTML = '';
styles += scroll_custom_style;
}
// загрузка стилей на страницу
if (styles) document.head.innerHTML += '<style> ' + styles + ' </style>';
function autoloading_toggle()
{
var val = (autoloading_toggler.checked)? '1' : '0';
setCookie('settings_autoloading', val);
}
function experimental_toggle()
{
var val = (experimental_toggler.checked)? '1' : '0';
setCookie('settings_experimental', val);
location.reload();
}
function remtoolbar_toggle()
{
var val = (remtoolbar_toggler.checked)? '1' : '0';
setCookie('settings_remtoolbar', val);
location.reload();
}
function yt_start()
{
src = document.body.getElementsByClassName('plyr__video-wrapper')[0].children[0].src;
src = 'https://youtu.be/' + src.split('embed')[1].split('?')[0];
window.location = src;
}
function yt_start_new()
{
src = document.body.getElementsByClassName('plyr__video-wrapper')[0].children[0].src;
src = 'https://youtu.be/' + src.split('embed')[1].split('?')[0];
open(src);
}
function yt_download ()
{
src = document.body.getElementsByClassName('plyr__video-wrapper')[0].children[0].src;
src = 'https://ssyoutube.com/watch?v=' + src.split('embed/')[1].split('?')[0];
open(src);
}
// для работы с cookie (с сайта https://learn.javascript.ru/cookie#prilozhenie-funktsii-dlya-raboty-s-kuki)
function getCookie(name) {
var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"));
return matches ? decodeURIComponent(matches[1]) : undefined;
}
function setCookie(name, value) {
var updatedCookie = encodeURIComponent(name) + "=" + encodeURIComponent(value);
updatedCookie += '; path=/; domain=umschool.net; expires=Fri, 31 Dec 9999 23:59:59 GMT;';
document.cookie = updatedCookie;
}
function deleteCookie(name) {
setCookie(name, "", {
'max-age': -1
})
}