您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Cleanup HDrezka: change content width, change player size, remove blocks (telegram, social, support, vk, etc), restyle blocks (cover, status, rating, etc)
当前为
// ==UserScript== // @name HDrezka Cleanup // @name:en HDrezka Cleanup // @namespace http://tampermonkey.net/ // @version 0.83 // @description Cleanup HDrezka: change content width, change player size, remove blocks (telegram, social, support, vk, etc), restyle blocks (cover, status, rating, etc) // @description:en Cleanup HDrezka: change content width, change player size, remove blocks (telegram, social, support, vk, etc), restyle blocks (cover, status, rating, etc) // @author rub4ek // @match https://hdrezka.me/* // @match https://hdrezka.ag/* // @match https://hdrezka.club/* // @match https://rezka.ag/* // @match https://rezkify.com/* // @match https://kinopub.me/* // @match http://hdrezka.tv/* // @match http://hdrezka.co/* // @match http://hdrezka.ink/* // @match http://hdrezka.buzz/* // @match http://hdrezka.loan/* // @match http://hdrezka.center/* // @match http://hdrezka.city/* // @match http://hdrezka.fyi/* // @match http://hdrezka.run/* // @match http://hdrezka.today/* // @match http://hdrezka.win/* // @match http://hdrezka.tips/* // @match http://hdrezka.vip/* // @match http://hdrezka.solutions/* // @icon https://www.google.com/s2/favicons?domain=rezka.ag // @grant GM_addStyle // @grant GM_xmlhttpRequest // @run-at document-body // @license MIT // ==/UserScript== (function () { "use strict"; /* ------------------------------------------------- */ /* --------------GLOBAL----------------------------- */ /* ------------------------------------------------- */ let hc = {}; /* ------------------------------------------------- */ /* --------------DEBUG------------------------------ */ /* ------------------------------------------------- */ // unsafeWindow.hc = hc; /* ------------------------------------------------- */ /* --------------IMAGES----------------------------- */ /* ------------------------------------------------- */ const images = { arrow: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAABmJLR0QA/wD/AP+gvaeTAAABa0lEQVR4nO3awUrDQBSF4dMuGhc+uF0puK/v4KL4RPoARbLUxTRQi5nMJDPJvcn/gRsp5NyfWgSVAAAAAAAAAAAAAAAAAACYXSPpKOlL0qekp+v3UNBB0rukn7uvD0kPC+5alb7IxC5oKDKxC0iNTOwJciMTe4SxkYmdoZF0VjzkOfE1/OrXI+Wd3L1bc16LG2PCETvTlGDETlQiFLEHlAxE7B41whD7Ts0gxL6aI8TmY88ZYLOxlzh8c7GXPHgzsS0camFDVZYOtLSlKIuHWdw0ieWDLG/L4uEQDxujPB3gaesfHoe72+xu8A03290MjTB/g/mBGczeYnbYBOZuSv2XAI9/7jd126uVIZWkxH6pPWIv6TsywHvkzlDsi6RdzQF7SW3Pw9cSuROL3Sq0qOrtnwevLXKnL/Zpjoc/KsRuFX6EnrXOyJ1G4TP5onDzSaHBbKp+Rhm00/ZuBgAAAAAAAAAAAAAAAODKL8SQFSF3JeZKAAAAAElFTkSuQmCC", settings: "data:image/png;base64,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", settingsclose: "data:image/png;base64,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", imdb: /* https://icons8.com/icon/V0AXUEQxEIf5/imdb */ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAEu0lEQVR4nO2czYscRRiHn+nxY7ORdc1ulGgQYoxGNwbEKIoHDxpQNGxEURQPQQ34D/gRCFE8hJCDIIoHz7noRTeCB4MmB0OMHxFRE0wkStCIGM0SV1fDJuOhetze2uqu/piZ7u35PfAyzLxVv3q73uma6uquASGEEEIIIYQQQgghhBBCCCGEEEIIIUTdaCT4LgM2AuPAamA5sLgXQdWAv4CfgCPAbuBd4HTayouALcAk0JJ1xE4DLwADvs6/Evi0AgHX1b4Erk7q/BMVCLLudiLs6zksAj6rQHD9YgcJh6NmmIDngSfsrIiucRUwBexvYGY7PwCXlhpS/zEJXBMAD6LOL4NhYDwANpQdSR+zIQDGyo6ijxlrAH8Cl5QdSZ8y1cBMi7LyD7ATM3W9DXiWuVd508AO4BBwR+i/MIP+v8B2zHTtduZfRbbbPwDMRD4fAJYBK4H7gTUdOp6ukmce+5Sl8bTl32T57wPOptQ+C9xr1X/S034c1wG7gHMFj6eblqvSkBXwkOV3LdptAs57dM8zP3mEeknt+1gHHC9wPJVLgAufH2CrR3drQt00+kmMAh/HtOtrrzYJAHgtRvNNT72iCQDzzf7W0bavvVoloAlMWOUnmF0WicOnvwd4D3gVuJv4ex3XA3+n0KttAgAGMTOYVvg6mKJO1g47AFwbU3ZHCr17LHsA2Iz5Uf/D0d6CSgCYMXl3+JqGPN/Y33FfaA4DZzLGG2UxsI35Z9KCSkBW8iSgBXwHXOQo/5ZHLw23Aj8ntF2pBKxLeVBx5fImoAU84yj/uEcvLWsxqwmVT8CvmCvUJFaG5fLoJ8X7kaP8Wo9eFjZ72o+1vEsRrhlGK4X/GHAn8JvDvxTYD6wqoB/HqVA/ymgkDpfeHuv9NPAhZro8bfmawNfADQkxxNKrM6Dt+4T5s57B8PNO6LvM7jAwaz159D7H3MK12eKJofQhKOr/gNnZz9LwfSf1bTvqKL+igN5OR/lbPHUqlYAWZgXySPjaDf2oveEof1cBvZOO8qOeOpVLQK/0Z4AbHeVfLhCvb0hLbUFM43ViO3DY8fnGAppfOD5blleszmfAK4DrS7a+QLznwvo2D2U8xtoOQTPAXsyCnIsAc6cuT7y/AA/HlN/lOSanXRAjthBZj1n7+ZHkJ5FfAm5OqRflFPANc2+BtlkFPJJC00ldzoA0PIb7rlwRmpiLtjz9mHsIssfVIKO/0/o+Gpgb+3H3hvNORhrA6zGaXU2AvcS7xuO/qcv6SYwB72dsLw0jwDsZjqmjCdgLLAkDWQLss/z7Iv4Rh7+oftTvYgh4FHgbM2Znac/HauBFzO9M0c7PvRgH5uneY5gfINeDXVPA96E/z9amNPpfMfeiaAQzH7+C5O1Xce3ZelFGME81X55RN5EiCRAdIMBkXpTDmQD3wpLoDScD3OskojccDjBPJohymGhvUTqOeVRD9I5JYEUTc0MkIH7xSnSHbUQeFhhAG7R7af9vU42ijdq9MedG7WgSDlYgyLraIRL+qqDNAGbjdkfWOmS0wr58DrjY7uyk9ZJhzF/VjGMeOFqONvOlZYrZv6uZCG2y1IiEEEIIIYQQQgghhBBCCCGEEEIIIYQQPeM/uURowB/mrvMAAAAASUVORK5CYII=", expand: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAABSklEQVR4nO3cMUoDQQCF4afYihcwdc6uBKwtvJEKiQeIxdoZkiVZfZvk+2C6YZmZn2G7SQAAAAAAAAaLJKskmyRbY+/YJHlJsjzqpHdYJPmYwcbObXz+nN3JVjPYzLmO50OHe3NoQoYrdT9iHr9tkjzsmzAmwHaatVytvWd8+1+rYDcBygQou5vgG2P+I5fspH+kG1AmQJkAZQKUCVAmQJkAZQKUCVAmQJkAZQKUCVAmQJkAZQKUCVAmQJkAZQKUCVAmQJkAZQKUCVAmQJkAZQKUCVAmQJkAZQKUCVAmQJkAZQKUCVAmQJkAZQKUCVAmQJkAZQKUCVAmQJkAZVO8F+RNuRO4AWUClAlQNibA15+v4nKtD00YE+BtgoVcq9cpPrLM8BB1+x3mcxvvSR6POO+dFhkeol7PYGNzH+skT5nw8AEAAAAAgPP2DeBZieSycI1SAAAAAElFTkSuQmCC", collapse: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAABmJLR0QA/wD/AP+gvaeTAAABxklEQVRoge2ay07CQBRAj/6EfpK4sGgwLPTbS8JTwD/AgIu2SUOn05nLPGq8J+mu93EYaDu9gKIoiqIoY+Yd+AY2wDRzLyZegR1wBGa3JrurE13q4wTMb00akDlVT01/xxBJ962ELtIFcKjjXgT1XOOvZS/Al6BehzdDYpv0pnXeWlDPJd4ke6p7DcLMUOAH+DSce7k6fBmKf+/p5UNQy4qrdEzhZLINLtKxhJPLNgxJxxDOJttgkw4tnF22oe9KGVrY5w4RHdNKhxbOvrLXDEn7MhrZZ2BhaSjFCpuOBTAROllZC5o5C+qcBXVWrsnvPRqRrNZeEHMQxERhApS4f+pbZNvJaR3rWqcEnoROiqIoiqIoiqJEwHc/vKOaIvhSUE0Q/uR+eCuosxPUGc1++FEQ8yCIiYLvfjjVK57k+2HTe+MYwn2zrKQMyYZe4azS/+pFvG38EVrYZ1QbhaFZT2hhyCjtMtiKIQwZpF2neLGEIaG0z8gypjAkkC4MBWxXyvbzdimo5xLfd4eQPLt3WBkS224LkzpmhewJyDXeJL0U1OvQHnuM/Y9pks1Kh4LqkysJ9JUJTEH1M1gi+yOcoiiKoiiJ+AW/ZiNhxuJ8eQAAAABJRU5ErkJggg==", next: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAABmJLR0QA/wD/AP+gvaeTAAACc0lEQVR4nO3cvW7UQBTF8T9IRNokJUj08ADwCqHhGeAdoKSEpAEkFIkWKniF0EAPSHkBEJt2ER+iSAdSxKTwWiHJjD22Z3yH9flJVynSHJ1Eu3e99oCIiIiIiIiIiIiIiIjYWQOeAl+Bn8AusGGaKM46sAMcAH+WP7eBmWWoJk8Ad2Y+AzctQ7VYBz5yPrcDPlBo2Qv8gX8D94ELdtGCdvBnrueRXbSwpsAOeANcMUvnd0Bz5rldtLC2oh3V6/ctq4AeRzTnPbKLFhZTtAP+As+p3jytxeQtTmzR9ewD102SnphE0Q44BO5ahF2aTNH1vAY2x488vaIdNjv3JIt2VDv3A+BiQZmLk6Loet4BVwvJXJyURTvgO3C7gMzFSV20I//OraLPTK6dW0V7JsfOraIbJuXOraJbJtXOraIjJsXOraI7zJCdW0V3nG/027lVdI/ps3Or6AGzD1xLmLk41gX/O7E7t4pONC9ofilR0Qlnd2DmJFLea1HkXx/4BVwO/C4mc5KOxrrAPnlTKPqVdYDUrF+LffMSvRlmHa13I4w+sGQefQQfYXRRaYTRZdLMowv/I4y+yhph9OVs5tHtBks5S+6yG6fOXJwcBeuWMI/UJffdjVNnLk7Kkt+i23aDUhSsG9EjDC1Zj1ZEGlKyHhbqoE/Bh8Adi7BLkyg6127cxUoXXe/Gl2xinrKyRS+ALauAHiv50P0e4fsrrLQdI/HFLlpY08Eo9yjzYJRtmot+aBct7DHng34CbliGajGjOtLHV/J7Cj3qZ43qXKUF8AN4xv9xeNWM6kifOdXhVXOq/+QiSxYREREREREREREREZmOY+Tk/DreSTOTAAAAAElFTkSuQmCC", play: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAADOElEQVR4nO2dPYxMURiGHxYrfkKzJKJgoxGEQiNCtAqNRHRKrVKiUohINHTYQu+vUS6JQhYbBZuN0PkJIRYRq1hrreLuTcbGzNzde855z8y8T/J0d3bu937JnJ0z554DxhhjjDHGmF5jSeC/txY4AhwCBoE+4BPwGLgJvA/8fmaOfuAM8B2YbeIUMARsEt1j17IReEjz4Oc7CZwF1ihutttYBYxSPfxGPwOngGXJ77qLGGJx4Tc6DhxOfePdwE7gN/UbUDoM7ElaQYdzkXDhl84AN4AtCevoWJ4RvgGlP4FzFP/WmiZ8I14DSifwQN2U2OE3+oLiC55pIGUDSkeAfSmK6wQUDZgF/lAM1Fvjl5g3qgaUTgGXgXWxC80VdQNKJ4DTFPNRPYU6+Pm+Ao4RfoY3W9SBN/MRsD9i3dmgDrqV5UA9GK36DFCHXMVyoF4fKQMp6nAX4he6cKBWh7oY3wAn6JKBWh1mHZ8AB8JHkhZ1iCG8C2wLHUwq1OGF8hdwFRgIG0981MGF9ivFQL0yZEgxUQcWy7d0yECtDiq2o8DBYGlFQB1QKoeBHYEyC4o6mJSWA/WGIMkFQh2Kwh8Uq/qyGKjVYSh9B5wEltZOsQbqEHLwKcVKcAnq4nNymGKlYFLURefmNHCBhDOu6oJz9QGJlt6rC83ZOzVyrYy6yNw9XiXEOvMdszVe2wuMAbvbXeQGxGU78LLVBdIvEj1A2zkkNyAubR80cQPEuAFxed3uAjcgLuPtLnAD4vGcYsFwS9yAeJyP/Qbqb5o5e6tGrpVRF5mr94HVNXKtjLrQ3Jym+NhZUSfUhaAuOCf9g4xI/yQp0j/Ki/SyFJFemCXUSxNFenGuSC9PF+kHNET6ESWhfkhPpB9TFekHtUV6qwKR3qxDpLerEeoNm0R6yzKR3rRPpLetFOmNW+dQhO+tixtIGbw37/4Pk8QP3tvXt2CMeMH7AIcKXCJ88DPAdWBzwjo6ll0UgYUK34f4LIIr1A/ex1jVYDkLO0WvUR/kFogB4B7Vg/dRhhHoo5iP+Ujz4KeAa/gwz38IPXPYDxwF9lIs1+6j+KgZAW4DHwK/nzHGGGOMMcZ0HH8B2KK9/+dC2k8AAAAASUVORK5CYII", replay: "data:image/png;base64,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", forward: "data:image/png;base64,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", }; /* ------------------------------------------------- */ /* --------------DOCUMENT--------------------------- */ /* ------------------------------------------------- */ function onDocumentStart() { initSettings(); initPlayer(); initContentSizeTumbler(); initAutoPlayNext(); initHideAds(); initHidePlayerAds(); initStyleImprovements(); initPlayerCover(); initPlayerExtraControls(); initHideInfo(); initHideComments(); initHideTranslators(); initIMDbRating(); initHotkeys(); initHideRussian(); } function onDocumentEnd() {} document.addEventListener("DOMContentLoaded", onDocumentEnd); onDocumentStart(); /* ------------------------------------------------- */ /* --------------GLOBAL-STYLES---------------------- */ /* ------------------------------------------------- */ GM_addStyle(` /* css */ /* Hide last episode info */ .b-post__lastepisodeout { display: none !important; } /* Hide support block */ .b-post__support_holder { display: none !important; } .b-post__support_holder_report .append { display: none !important; } /* Hide share label */ .b-post__social_holder_wrapper .share-label { display: none !important; } /* Hide mixedtext */ .b-post__mixedtext { text-indent: -9999px !important; padding: 0 !important; } /* !css */ `); /* ------------------------------------------------- */ /* --------------PLAYER----------------------------- */ /* ------------------------------------------------- */ function initPlayer() { GM_addStyle(` /* css */ /* Style player */ .b-player { padding-top: 0; } .b-player #cdnplayer-preloader { height: 100%; width: 100%; } .b-player .b-simple_seasons__list { padding: 10px; } .b-player .b-player__holder_cdn { height: auto !important; } .b-player .b-player__container_cdn { resize: vertical; overflow: auto; width: auto !important; min-height: 300px !important; } /* !css */ `); hc.player = {}; hc.player.start = start; hc.player.play = play; hc.player.pause = pause; hc.player.stop = stop; hc.player.next = next; hc.player.prev = prev; hc.player.toggle = toggle; hc.player.fullscreen = fullscreen; hc.player.exitfullscreen = exitfullscreen; hc.player.poster = poster; hc.player.resize = resize; hc.player.mute = mute; hc.player.vast = vast; hc.player.seek = seek; hc.player.adjust = adjust; hc.player.shoudvast = 0; hc.player.expanded = 0; hc.player.fullscreen = 0; setup(); function setup() { window.addEventListener("message", function (event) { if (event.data) { if (event.data.event == "init") { vast(hc.player.shoudvast); } if (event.data.event == "inited") { poster("hc-poster"); } if (event.data.event == "new") { vast(hc.player.shoudvast); } } }); } function defined() { return typeof CDNPlayer != "undefined"; } function start() { sof.tv.buildCDNPlayer(); vast(hc.player.shoudvast); play(); } function vast(value) { hc.player.shoudvast = value; if (defined()) { CDNPlayer.api("update:vast", value); } } function play() { vast(hc.player.shoudvast); if (defined()) { CDNPlayer.api("play"); } } function pause() { if (defined()) { CDNPlayer.api("pause"); } } function stop() { if (defined()) { CDNPlayer.api("stop"); } } function toggle() { if (defined()) { if (!CDNPlayer.api("started")) { play(); } else { vast(hc.player.shoudvast); CDNPlayer.api("toggle"); } } } function fullscreen() { if (defined()) { CDNPlayer.api("fullscreen"); } } function exitfullscreen() { if (defined()) { CDNPlayer.api("exitfullscreen"); } } function poster(poster) { if (defined()) { CDNPlayer.api("poster", poster); } } function mute() { if (defined()) { if (!CDNPlayer.api("muted")) { CDNPlayer.api("mute"); } else { CDNPlayer.api("unmute"); } } } function sibling(direction) { const activeEpisode = document.querySelector(".b-simple_episode__item.active"); if (activeEpisode && activeEpisode[direction]) { activeEpisode[direction].click(); setTimeout(start, 1000); } else { const activeSeason = document.querySelector(".b-simple_season__item.active"); if (activeSeason && activeSeason[direction]) { activeSeason[direction].click(); setTimeout(start, 1000); } } } function next() { sibling("nextElementSibling"); } function prev() { sibling("previousElementSibling"); } function seek(seconds) { if (defined()) { CDNPlayer.api("seek", seconds); } } function adjust(seconds) { if (defined()) { seek(seconds + CDNPlayer.api("time")); } } function calc(initialSize, newWidth, maxHeight) { let initialWidth = initialSize.width; let initialHeight = initialSize.height; let resizedWidth = initialSize.width; let resizedHeight = initialSize.height; if (initialHeight > 0 && initialWidth !== newWidth) { let ratio = initialWidth / initialHeight; resizedWidth = newWidth; resizedHeight = newWidth / ratio; if (resizedHeight > maxHeight) { resizedHeight = maxHeight; resizedWidth = maxHeight * ratio; } } return { width: resizedWidth, height: resizedHeight, }; } function resize() { const contentMain = document.querySelector(".b-content__main"); if (contentMain) { const playerHolder = document.querySelector(".b-player__holder_cdn"); const playerContainer = document.querySelector(".b-player__container_cdn"); if (playerHolder && playerContainer) { const initial = { width: playerHolder.offsetWidth, height: playerHolder.offsetHeight, }; const resized = calc(initial, contentMain.offsetWidth, window.innerHeight); if (initial.width !== resized.width) { playerHolder.style.width = resized.width + "px"; playerContainer.style.height = resized.height + "px"; console.log( `HDrezka Cleanup: cdn player resized ` + `from ${initial.width}x${initial.height} ` + `to ${resized.width}x${resized.height}.` ); } if (defined()) { CDNPlayer.api("resize"); } } } } } /* ------------------------------------------------- */ /* --------------CONTENT-SIZE----------------------- */ /* ------------------------------------------------- */ function initContentSizeTumbler() { GM_addStyle(` /* css */ /* Padding for content */ .b-wrapper { padding-left: 30px !important; padding-right: 30px !important; } .b-footer { width: auto !important; } .b-search__form.focused, .search-results { width: calc(100% - 60px); left: 30px; } /* Remove extra right padding for content page */ .b-content__columns { padding-right: 0 !important; } /* Remove extra right padding on main content listing */ .b-content__inline_inner_mainprobar { padding-right: 0 !important; } .b-content__inline_inner_mainprobar .b-content__inline_item { margin-left: 16px !important; } /* Active brand fixes */ body.active-brand, body.active-brand.pp { padding-top: 0 !important; } .active-brand #wrapper { width: auto !important; } /* Style status (HDrezka tracker block) */ .b-post__status_wrapper { width: auto !important; margin: 0px 10px 0px 13px !important; } /* Style and resize rating block */ .b-post__rating_table { width: 100% !important; } .b-post__rating_table td > * { float: right !important; } .b-post__rating_table .label { display: none !important; } /* Content Size Tumbler */ .hc-tumbler-content-size { width: 78px !important; } .hc-tumbler-content-size .hc-tumbler-point:nth-child(1) { border-width: 8px; } .hc-tumbler-content-size .hc-tumbler-point:nth-child(2) { border-width: 7px; } .hc-tumbler-content-size .hc-tumbler-point:nth-child(3) { border-width: 6px; } .hc-tumbler-content-size .hc-tumbler-point:nth-child(4) { border-width: 5px; } /* Content Sizes */ body { min-width: 1020px; } body.hc-content-size-wide .b-wrapper { width: auto; min-width: 960px; max-width: 1150px; } body.hc-content-size-ultrawide .b-wrapper { width: auto; min-width: 960px; max-width: 1340px; } body.hc-content-size-full .b-wrapper { min-width: 960px; width: auto; } body.hc-content-size-full .glory { width: auto; } /* !css */ `); settings(); function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "content-size", label: "Максимальная ширина контента", classes: [], options: [ { class: null, text: "960 px", end: function () { window.removeEventListener("resize", hc.player.resize); hc.player.resize(); }, }, { class: "hc-content-size-wide", text: "1150 px", end: function () { window.removeEventListener("resize", hc.player.resize); window.addEventListener("resize", hc.player.resize); hc.player.resize(); }, }, { class: "hc-content-size-ultrawide", text: "1340 px", end: function () { window.removeEventListener("resize", hc.player.resize); window.addEventListener("resize", hc.player.resize); hc.player.resize(); }, }, { class: "hc-content-size-full", text: "1340 px", end: function () { window.removeEventListener("resize", hc.player.resize); window.addEventListener("resize", hc.player.resize); hc.player.resize(); }, }, ], }); } } } /* ------------------------------------------------- */ /* --------------PLAYER-EXTRA-CONTROLS-------------- */ /* ------------------------------------------------- */ function initPlayerExtraControls() { GM_addStyle(` /* css */ body.hc-player-full-page { height: 100%; overflow: hidden; } body.hc-player-full-page .b-player__container_cdn { position: fixed !important; width: 100% !important; height: 100% !important; top: 0; left: 0; z-index: 1000; } .hc-player-top-bar { display: none; box-sizing: border-box !important; position: absolute; width: 100%; top: 0; left: 0; padding: 20px; background: linear-gradient( to bottom, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .1) 70%, rgba(0, 0, 0, 0) 100% ); pointer-events: none } .hc-player-top-bar-enabled .hc-player-top-bar { display: block; } .hc-player-top-bar:hover { display: block !important; visibility: visible !important; } .hc-player-top-bar-title { display: inline-block; cursor: pointer; position: relative; text-align: left; line-height: 20px; font-size: 20px; font-weight: bold; pointer-events: all; padding-left: 10px; user-select: none; } body.hc-player-full-page .hc-player-top-bar-title { padding-left: 30px; } .hc-player-top-bar-origtitle { display: inline-block; position: relative; text-align: left; line-height: 14px; font-size: 14px; pointer-events: all; padding-left: 10px; user-select: none; padding-top: 5px; opacity: 50%; } body.hc-player-full-page .hc-player-top-bar-origtitle { padding-left: 30px; } .hc-player-top-bar-episode { display: inline-block; position: relative; text-align: left; line-height: 10px; font-size: 10px; pointer-events: all; padding-left: 10px; user-select: none; padding-top: 5px; opacity: 40%; } body.hc-player-full-page .hc-player-top-bar-episode { padding-left: 30px; } body.hc-player-full-page .hc-player-top-bar-title:before { content: ''; position: absolute; top: 0; left: 0; width: 20px; height: 20px; margin-right: 10px; background-size: 20px 20px; background-repeat: no-repeat; background-image: url(${images.arrow}); filter: invert(100%) sepia(95%) saturate(21%) hue-rotate(280deg) brightness(106%) contrast(106%); transform: rotate(-90deg); } .hc-player-control { display: none; content: ''; position: absolute; cursor: pointer; pointer-events: all; } .hc-player-control:hover { display: block !important; visibility: visible !important; } .hc-player-extra-controls-enabled .hc-player-control { display: block; } .hc-player-control:hover .hc-player-control-background { background: rgb(0, 173, 239); } .hc-player-control-background { content: ''; width: 100%; height: 100%; border-radius: 2.3px; background: rgb(23, 35, 34); opacity: 0.7; transition: opacity 0.1s linear 0s, background 0.1s linear 0s, transform 0.1s linear 0s; cursor: point; } .hc-player-control-prev { bottom: 56px; left: 10px; width: 28px; height: 35px; } .hc-player-control-replay { bottom: 56px; left: 46px; width: 28px; height: 35px; } .hc-player-control-forward { bottom: 56px; left: 82px; width: 28px; height: 35px; } .hc-player-control-next { bottom: 56px; left: 118px; width: 28px; height: 35px; } .hc-player-control-expand { bottom: 56px; right: 10px; width: 41px; height: 35px; } .hc-player-control-icon { content: ''; position: absolute; background-repeat: no-repeat; filter: invert(100%); } .hc-player-control-prev-icon { top: 10px; left: 7px; width: 15px; height: 15px; background-size: 15px 15px; background-image: url(${images.next}); transform: rotate(180deg); } .hc-player-control-replay-icon { top: 10px; left: 7px; width: 15px; height: 15px; background-size: 15px 15px; background-image: url(${images.replay}); } .hc-player-control-forward-icon { top: 10px; left: 7px; width: 15px; height: 15px; background-size: 15px 15px; background-image: url(${images.forward}); } .hc-player-control-next-icon { top: 10px; left: 7px; width: 15px; height: 15px; background-size: 15px 15px; background-image: url(${images.next}); } .hc-player-control-expand-icon { top: 8px; right: 11px; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(${images.expand}); } body.hc-player-full-page .hc-player-control-expand-icon { background-image: url(${images.collapse}) !important; transform: rotate(-90deg); } body.hc-player-full-page .b-footer { margin-top: 0 !important; } /* !css */ `); setup(); settings(); function setup() { // Player Control Prev const playerControlPrevBackground = document.createElement("div"); playerControlPrevBackground.classList.add("hc-player-control-background"); const playerControlPrevIcon = document.createElement("div"); playerControlPrevIcon.classList.add("hc-player-control-icon"); playerControlPrevIcon.classList.add("hc-player-control-prev-icon"); const playerControlPrev = document.createElement("div"); playerControlPrev.classList.add("hc-player-control"); playerControlPrev.classList.add("hc-player-control-prev"); playerControlPrev.addEventListener("click", hc.player.prev); playerControlPrev.appendChild(playerControlPrevBackground); playerControlPrev.appendChild(playerControlPrevIcon); // Player Control Replay const playerControlReplayBackground = document.createElement("div"); playerControlReplayBackground.classList.add("hc-player-control-background"); const playerControlReplayIcon = document.createElement("div"); playerControlReplayIcon.classList.add("hc-player-control-icon"); playerControlReplayIcon.classList.add("hc-player-control-replay-icon"); let replay; const playerControlReplay = document.createElement("div"); playerControlReplay.classList.add("hc-player-control"); playerControlReplay.classList.add("hc-player-control-replay"); playerControlReplay.addEventListener("mousedown", function() { hc.player.adjust(-5); setTimeout(function(){ replay = setInterval(function(){ hc.player.adjust(-5); }, 30); }, 1000); }); playerControlReplay.addEventListener("mouseup", function() { clearInterval(replay); setTimeout(function(){ clearInterval(replay); }, 100); setTimeout(function(){ clearInterval(replay); }, 1000); }); playerControlReplay.appendChild(playerControlReplayBackground); playerControlReplay.appendChild(playerControlReplayIcon); // Player Control Forward const playerControlForwardBackground = document.createElement("div"); playerControlForwardBackground.classList.add("hc-player-control-background"); const playerControlForwardIcon = document.createElement("div"); playerControlForwardIcon.classList.add("hc-player-control-icon"); playerControlForwardIcon.classList.add("hc-player-control-forward-icon"); let forward; const playerControlForward = document.createElement("div"); playerControlForward.classList.add("hc-player-control"); playerControlForward.classList.add("hc-player-control-forward"); playerControlForward.addEventListener("mousedown", function() { hc.player.adjust(5); setTimeout(function(){ forward = setInterval(function(){ hc.player.adjust(5); }, 30); }, 1000); }); playerControlForward.addEventListener("mouseup", function() { clearInterval(forward); setTimeout(function(){ clearInterval(forward); }, 100); setTimeout(function(){ clearInterval(forward); }, 1000); }); playerControlForward.appendChild(playerControlForwardBackground); playerControlForward.appendChild(playerControlForwardIcon); // Player Control Next const playerControlNextBackground = document.createElement("div"); playerControlNextBackground.classList.add("hc-player-control-background"); const playerControlNextIcon = document.createElement("div"); playerControlNextIcon.classList.add("hc-player-control-icon"); playerControlNextIcon.classList.add("hc-player-control-next-icon"); const playerControlNext = document.createElement("div"); playerControlNext.classList.add("hc-player-control"); playerControlNext.classList.add("hc-player-control-next"); playerControlNext.addEventListener("click", hc.player.next); playerControlNext.appendChild(playerControlNextBackground); playerControlNext.appendChild(playerControlNextIcon); // Player Expand button var collapsed = false; function expand() { collapsed = true; if (hc.player.fullscreen == 0) { if (hc.player.expanded == 1) { document.body.classList.remove("hc-player-full-page"); hc.player.expanded = 0; } else if (hc.player.expanded == 0) { document.body.classList.add("hc-player-full-page"); hc.player.expanded = 1; } } else if (hc.player.fullscreen == 1) { hc.player.exitfullscreen(); } hc.player.resize(); } const playerControlExpandBackground = document.createElement("div"); playerControlExpandBackground.classList.add("hc-player-control-background"); const playerControlExpandIcon = document.createElement("div"); playerControlExpandIcon.classList.add("hc-player-control-icon"); playerControlExpandIcon.classList.add("hc-player-control-expand-icon"); const playerControlExpand = document.createElement("div"); playerControlExpand.classList.add("hc-player-control"); playerControlExpand.classList.add("hc-player-control-expand"); playerControlExpand.addEventListener("click", expand); playerControlExpand.appendChild(playerControlExpandBackground); playerControlExpand.appendChild(playerControlExpandIcon); // Player Top Bar const playerTopBarTitleSpan = document.createElement("span"); playerTopBarTitleSpan.classList.add("hc-player-top-bar-title"); playerTopBarTitleSpan.addEventListener("click", expand); const playerTopBarTitle = document.createElement("div"); playerTopBarTitle.appendChild(playerTopBarTitleSpan); const playerTopBarOrigTitleSpan = document.createElement("span"); playerTopBarOrigTitleSpan.classList.add("hc-player-top-bar-origtitle"); const playerTopBarOrigTitle = document.createElement("div"); playerTopBarOrigTitle.appendChild(playerTopBarOrigTitleSpan); const playerTopBarEpisodeSpan = document.createElement("span"); playerTopBarEpisodeSpan.classList.add("hc-player-top-bar-episode"); const playerTopBarEpisode = document.createElement("div"); playerTopBarEpisode.appendChild(playerTopBarEpisodeSpan); const playerTopBar = document.createElement("div"); playerTopBar.classList.add("hc-player-top-bar"); playerTopBar.appendChild(playerTopBarTitle); playerTopBar.appendChild(playerTopBarOrigTitle); playerTopBar.appendChild(playerTopBarEpisode); // Keys document.addEventListener("keydown", function (e) { switch (e.code) { case "Escape": if (hc.player.expanded == 0) { document.body.classList.remove("hc-player-full-page"); } if (hc.player.fullscreen == 0) { document.body.classList.remove("hc-player-full-page"); hc.player.expanded = 0; } hc.player.resize(); break; } }); // Player events window.addEventListener("message", function (event) { if (event.data) { if (event.data.event == "init") { const player = document.querySelector("#oframecdnplayer"); if (player) { const postTitle = document.querySelector(".b-post__title h1"); if (postTitle) { playerTopBarTitleSpan.innerText = postTitle.innerText; } const postOrigTitle = document.querySelector(".b-post__origtitle"); if (postOrigTitle) { playerTopBarOrigTitleSpan.innerText = postOrigTitle.innerText; } player.appendChild(playerTopBar); player.appendChild(playerControlPrev); player.appendChild(playerControlReplay); player.appendChild(playerControlForward); player.appendChild(playerControlNext); player.appendChild(playerControlExpand); } } if (event.data.event == "new") { const player = document.querySelector("#oframecdnplayer"); if (player) { const seasonItem = document.querySelector(".b-simple_season__item.active"); if (seasonItem) { playerTopBarEpisodeSpan.innerText = seasonItem.innerText; } const episodeItem = document.querySelector(".b-simple_episode__item.active"); if (episodeItem) { playerTopBarEpisodeSpan.innerText += " - " + episodeItem.innerText; } } } if (event.data.event == "play") { playerTopBar.classList.remove("hidden"); if (!collapsed && document.body.classList.contains("hc-player-full-page-enabled")) { document.body.classList.add("hc-player-full-page"); hc.player.resize(); } } if (event.data.event == "ui") { if (event.data.data == 0) { playerTopBar.classList.add("hidden"); playerControlPrev.classList.add("hidden"); playerControlReplay.classList.add("hidden"); playerControlForward.classList.add("hidden"); playerControlNext.classList.add("hidden"); playerControlExpand.classList.add("hidden"); } if (event.data.data == 1) { playerTopBar.classList.remove("hidden"); playerControlPrev.classList.remove("hidden"); playerControlReplay.classList.remove("hidden"); playerControlForward.classList.remove("hidden"); playerControlNext.classList.remove("hidden"); playerControlExpand.classList.remove("hidden"); } } if (event.data.event == "fullscreen") { document.body.classList.add("hc-player-full-page"); hc.player.fullscreen = 1; hc.player.resize(); } if (event.data.event == "exitfullscreen") { if (hc.player.expanded == 0) { document.body.classList.remove("hc-player-full-page"); } hc.player.fullscreen = 0; hc.player.resize(); } } }); } function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "player-top-bar", label: "Добавить панель с заголовком в плеер", classes: ["hc-on-of-tumbler"], options: [ { class: null, text: "Выкл", }, { class: "hc-player-top-bar-enabled", text: "Вкл", default: true, }, ], }); hc.settings.createTumblerSetting({ name: "player-extra-controls", label: "Добавить дополнительные элементы управления плеером", classes: ["hc-on-of-tumbler"], options: [ { class: null, text: "Выкл", }, { class: "hc-player-extra-controls-enabled", text: "Вкл", default: true, }, ], }); hc.settings.createTumblerSetting({ name: "player-full-page", label: "Автоматически разворачивать плеер на всю страницу", classes: ["hc-on-of-tumbler"], options: [ { start: function () { hc.player.expanded = 0; }, class: null, text: "Выкл", }, { start: function () { hc.player.expanded = 1; }, class: "hc-player-full-page-enabled", text: "Вкл", }, ], }); } } } /* ------------------------------------------------- */ /* --------------PLAYER-AUTO-PLAY-NEXT-------------- */ /* ------------------------------------------------- */ function initAutoPlayNext() { setup(); settings(); function setup() { window.addEventListener("message", function (event) { if (event.data && event.data.event == "ended") { if (document.body.classList.contains("hc-auto-play-next-enabled")) { hc.player.next(); } } if ( event.data && event.data.event == "time" && event.data.data != 0 && event.data.data >= event.data.duration - 1 ) { if (document.body.classList.contains("hc-auto-play-next-disabled")) { hc.player.stop(); } } }); } function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "auto-play-next", label: "Автопереключение", classes: [], options: [ { class: null, text: "Только эпизоды (поведение по умолчанию)", }, { class: "hc-auto-play-next-enabled", text: "Эпизоды и сезоны (быстрое переключение)", }, { class: "hc-auto-play-next-disabled", text: "Выкл", }, ], }); } } } /* ------------------------------------------------- */ /* --------------HIDE-ADS--------------------------- */ /* ------------------------------------------------- */ function initHideAds() { GM_addStyle(` /* css */ /* Hide some ads containers */ body.hc-hide-ads .b-content__main > .b-post__mixedtext + div[style][id], body.hc-hide-ads .b-content__main > .b-post__rating_table + div[style][id], body.hc-hide-ads .b-content__main > div > .b-player > .b-player__network_issues_holder + div[style], body.hc-hide-ads .b-content__main > div > .b-player > a[target='_blank'], body.hc-hide-ads .b-content__main + div[id], body.hc-hide-ads .b-content__inline > .b-content__inline_inner > .b-content__inline_items + div[id], body.hc-hide-ads .b-wrapper .nopadd, body.hc-hide-ads .b-seriesupdate__block_list > .b-seriesupdate__block_list_item[data-url=''] { display: none !important; } /* !css */ `); settings(); function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "hide-ads", label: "Скрыть рекламные блоки", classes: ["hc-on-of-tumbler"], options: [ { class: null, text: "Выкл", }, { class: "hc-hide-ads", text: "Вкл", default: true, }, ], }); } } } /* ------------------------------------------------- */ /* --------------HIDE-PLAYER-ADS-------------------- */ /* ------------------------------------------------- */ function initHidePlayerAds() { settings(); function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "hide-player-ads", label: "Отключить рекламные ролики в плеере", classes: ["hc-on-of-tumbler"], options: [ { start: function () { hc.player.vast(1); }, class: null, text: "Выкл", }, { start: function () { hc.player.vast(0); }, class: "hc-player-hide-ads", text: "Вкл", default: true, }, ], }); } } } /* ------------------------------------------------- */ /* --------------STYLE-IMPROVEMENTS----------------- */ /* ------------------------------------------------- */ function initStyleImprovements() { GM_addStyle(` /* css */ /* Top Nav */ body.hc-style .b-topnav__sub_inner a { color: #000 !important; } body.hc-style.b-theme__template__night .b-topnav__sub_inner a { color: #fff !important; } /* Slider */ body.hc-style .b-newest_slider__list .b-content__inline_item { width: 92px; margin-right: 8px; } body.hc-style.b-theme__template__night .b-newest_slider__title span { border-color: #fff; color: #fff; } /* Sidelist */ body.hc-style .b-sidelist .b-content__inline_item { width: 92px; margin-right: 8px; } /* Сontent item */ body.hc-style .b-content__inline_item { width: 166px; margin-right: 10px; } body.hc-style .b-content__inline_item .b-content__inline_item-link a, body.hc-style .b-content__inline_item .b-content__inline_item-link a:visited { color: #000; } body.hc-style.b-theme__template__night .b-content__inline_item .b-content__inline_item-link a, body.hc-style.b-theme__template__night .b-content__inline_item .b-content__inline_item-link a:visited { color: #fff; } body.hc-style .b-content__inline_item .cat { position: relative; top: unset; bottom: 0; right: 0; border-radius: 0; width: 100%; } body.hc-style.b-theme__template__night .b-content__inline_item .cat { background-color: #060f13 !important; } body.hc-style .b-content__inline_item .cat .entity { display: inline-block !important; margin-right: -8px; position: absolute; left: 0; right: 0; overflow: hidden; text-overflow: ellipsis; } body.hc-style .b-content__inline_item:hover .cat .entity, body.hc-style .b-content__inline_item.active .cat .entity { display: none !important; margin-right: -10px; position: absolute; left: 0; right: 0; overflow: hidden; text-overflow: ellipsis; } body.hc-style .b-content__inline_item .info { background-color: #6f6f6f; color: #fff; border-radius: 0 !important; box-sizing: border-box; width: 100%; margin-bottom: 26px; } body.hc-style .b-content__inline_item .trailer { display: none !important; left: 0; } body.hc-style .b-content__inline_item-cover { padding: 0; border: 0; } /* Сontent page */ body.hc-style .b-post .b-post__partcontent a, body.hc-style .b-post__info a, body.hc-style .b-post__info .persons-list-holder .person-name-item a { color: #000 !important; border-color: #000; } body.hc-style.b-theme__template__night .b-post .b-post__partcontent a, body.hc-style.b-theme__template__night .b-post__info a, body.hc-style.b-theme__template__night .b-post__info .persons-list-holder .person-name-item a { color: #fff !important; border-color: #fff; } body.hc-style .b-sidecover { background: none; border: none; padding: 0; overflow: hidden; border-radius: 4px; } body.hc-style .b-post .b-sidetitle, body.hc-style .b-post .b-post__mtitle { font-size: 16px; font-weight: bold; line-height: 18px; overflow: hidden; padding: 10px 18px; text-overflow: ellipsis; white-space: nowrap; } body.hc-style .b-post .b-post__actions .btn, body.hc-style .b-post .b-sidetitle, body.hc-style .b-post .b-post__schedule_block_title, body.hc-style .b-post .b-post__schedule_more, body.hc-style .b-post .b-post__mtitle { background: #ddd; } body.hc-style .b-post .b-post__actions .btn, body.hc-style .b-post .b-sidetitle, body.hc-style .b-post .b-post__schedule_block_title .title, body.hc-style .b-post .b-post__schedule_more .title, body.hc-style .b-post .b-post__mtitle { color: #000; } body.hc-style.b-theme__template__night .b-post .b-post__actions .btn, body.hc-style.b-theme__template__night .b-post .b-sidetitle, body.hc-style.b-theme__template__night .b-post .b-post__schedule_block_title, body.hc-style.b-theme__template__night .b-post .b-post__schedule_more, body.hc-style.b-theme__template__night .b-post .b-post__mtitle { background: #192125; } body.hc-style.b-theme__template__night .b-post .b-post__actions .btn, body.hc-style.b-theme__template__night .b-post .b-sidetitle, body.hc-style.b-theme__template__night .b-post .b-post__schedule_block_title .title, body.hc-style.b-theme__template__night .b-post .b-post__schedule_more .title, body.hc-style.b-theme__template__night .b-post .b-post__mtitle { color: #fff; } body.hc-style .b-post .b-post__schedule .b-sidetitle { display: none; } body.hc-style .b-post .b-post__partcontent { margin-top: 0; } body.hc-style .b-post .b-post__actions .btn { border: 0; border-radius: 0; } body.hc-style .b-post .b-post__social_holder { background: #1f1f1f; } /* Rating stars */ body.hc-style .b-content__bubble_rating .b-rating > .current, body.hc-style .b-post__rating .b-post__rating_layer_current { filter: grayscale(100%) !important; } body.hc-style.b-theme__template__night .b-content__bubble_rating .b-rating > .current, body.hc-style.b-theme__template__night .b-post__rating .b-post__rating_layer_current { filter: grayscale(100%) brightness(200%) !important; } body.hc-style .b-content__bubble_rating b { color: #000; } body.hc-style.b-theme__template__night .b-content__bubble_rating b { color: #fff; } body.hc-style .b-post__rating .num { color: inherit !important;; } /* Breadcrumbs */ body.hc-style .b-content__crumbs a { color: #444; } body.hc-style.b-theme__template__night .b-content__crumbs a { color: #fff; } /* Comments */ body.hc-style .b-comment__like_it > i { display: none; } body.hc-style .b-comment__likes_count { margin: 0 !important; } body.hc-style .b-comment__quoteuser, body.hc-style .b-comment__like_it, body.hc-style.b-theme__template__night .b-comment__quoteuser, body.hc-style.b-theme__template__night .b-comment__like_it { color: #888; border-color: #888; } body.hc-style .b-comment .message > .text { color: #000; } body.hc-style.b-theme__template__night .b-comment .message > .text { color: #fff; } /* Content bubble */ body.hc-style .b-content__bubble_content a { color: #000; } body.hc-style.b-theme__template__night .b-content__bubble_content a { color: #fff; } /* Misc */ body.hc-style .b-newest_slider__title { padding-bottom: 20px; } /* !css */ `); settings(); function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "styles", label: "Декоративные изменения", classes: ["hc-on-of-tumbler"], options: [ { class: null, text: "Выкл", }, { class: "hc-style", text: "Вкл", default: true, }, ], }); } } } /* ------------------------------------------------- */ /* --------------PLAYER-COVER----------------------- */ /* ------------------------------------------------- */ function initPlayerCover() { document.addEventListener("DOMContentLoaded", setup); settings(); function setup() { const cover = document.querySelector(".b-sidecover"); if (!cover) return; const imgURL = cover.querySelector("img").src; GM_addStyle(` /* css */ body.hc-player-cover #cdnplayer [style*='hc-poster'] { background-image: linear-gradient( to left, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 30%, rgba(0,0,0,.8) 50%, rgba(0,0,0,1) 70%, rgba(0,0,0,1) 100% ), url('${imgURL}') !important; background-size: auto 100% !important; background-position: center !important; background-repeat: no-repeat !important; } /* !css */ `); } function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "player-cover", label: "Отображать обложку в плеере", classes: ["hc-on-of-tumbler"], options: [ { class: null, text: "Выкл", }, { class: "hc-player-cover", text: "Вкл", default: true, }, ], }); } } } /* ------------------------------------------------- */ /* --------------HIDE-INFO-------------------------- */ /* ------------------------------------------------- */ function initHideInfo() { GM_addStyle(` /* css */ /* Content hide info (button) */ .hc-hide-info-button { content: ''; width: 25px; height: 25px; margin-right: 5px; background-size: 25px 25px; background-repeat: no-repeat; background-image: url(${images.arrow}); cursor: pointer; } body.hc-hide-info .hc-hide-info-button { transform: rotate(180deg); } body.hc-hide-info.hc-hide-title .hc-hide-info-button { margin-top: -15px; } /* Content hide info (hidden styles) */ body.hc-hide-info .b-post__origtitle, body.hc-hide-info .b-post__infotable, body.hc-hide-info .b-post__description, body.hc-hide-info .b-post__infolast { display: none !important; } /* Content hide info (night theme) */ body.b-theme__template__night .hc-hide-info-button { filter: invert(100%) sepia(95%) saturate(21%) hue-rotate(280deg) brightness(106%) contrast(106%); } /* !css */ `); settings(); document.addEventListener("DOMContentLoaded", setup); function setup() { const title = document.querySelector(".b-post__title"); if (!title) return; if (title.querySelector(".hc-hide-info-button")) return; const button = document.createElement("div"); button.classList.add("pull-right"); button.classList.add("hc-hide-info-button"); button.addEventListener("click", function() { document.body.classList.toggle("hc-hide-info"); }); title.insertBefore(button, title.firstChild); } function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "hide-info", label: "Автоматически сворачивать описание контента", classes: ["hc-on-of-tumbler"], options: [ { start: function () { document.body.classList.remove("hc-hide-info"); }, class: null, text: "Выкл", }, { start: function () { document.body.classList.add("hc-hide-info"); }, class: "hc-hide-info-enabled", text: "Вкл", }, ], }); } } } /* ------------------------------------------------- */ /* --------------HIDE-COMMENTS---------------------- */ /* ------------------------------------------------- */ function initHideComments() { GM_addStyle(` /* css */ body.hc-comments-hide #hd-comments-list, body.hc-comments-hide #hd-comments-navigation { display: none; } .hc-comments-title { margin-bottom: 13px; overflow: hidden; } .hc-comments-title .title { font-size: 16px; font-weight: bold; line-height: 18px; overflow: hidden; padding: 10px 18px; text-overflow: ellipsis; white-space: nowrap; width: 520px; float: left; } .hc-comments-title { background: #ddd; } .hc-comments-title .title { color: #000; } body.b-theme__template__night .hc-comments-title { background: #192125; } body.b-theme__template__night .hc-comments-title .title { color: #fff; } .hc-act { color: #878586; cursor: pointer; float: right; font-size: 12px; margin-top: 8px; margin-right: 18px; } .hc-act:hover { text-decoration: underline; } .hc-act-show { display: none; } .hc-act-hide { display: block; } body.hc-comments-hide .hc-act-show { display: block; } body.hc-comments-hide .hc-act-hide { display: none; } body.hc-comments-hide .b-content__crumbs { margin-top: 30px; } /* !css */ `); settings(); document.addEventListener("DOMContentLoaded", setup); function setup() { const commentsList = document.querySelector("#hd-comments-list"); if (!commentsList) return; const commentsTitle = document.createElement("div"); commentsTitle.classList.add("hc-comments-title"); commentsTitle.addEventListener("click", function() { document.body.classList.toggle("hc-comments-hide"); }); const title = document.createElement("div"); title.innerText = "Отзывы"; title.classList.add("title"); commentsTitle.appendChild(title); const actShow = document.createElement("div"); actShow.classList.add("hc-act"); actShow.classList.add("hc-act-show"); actShow.innerText = "развернуть"; commentsTitle.appendChild(actShow); const actHide = document.createElement("div"); actHide.classList.add("hc-act"); actHide.classList.add("hc-act-hide"); actHide.innerText = "свернуть"; commentsTitle.appendChild(actHide); commentsList.parentNode.insertBefore(commentsTitle, commentsList); } function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "comments-hide", label: "Сворачивать отзывы", classes: ["hc-on-of-tumbler"], options: [ { start: function () { document.body.classList.remove("hc-comments-hide"); }, class: null, text: "Выкл", }, { start: function () { document.body.classList.add("hc-comments-hide"); }, class: "hc-comments-hide-enabled", text: "Вкл", }, ], }); } } } /* ------------------------------------------------- */ /* --------------TRANSLATORS------------------------ */ /* ------------------------------------------------- */ function initHideTranslators() { GM_addStyle(` /* css */ /* Content hide translators */ .hc-translators-hide-enabled .b-translator__item.active { cursor: pointer; } .hc-translators-hide-enabled .hc-toggle-translators-button { content: ''; float: left; width: 20px; height: 20px; margin-right: 3px; margin-top: 8px; margin-left: 5px; background-size: 20px 20px; background-repeat: no-repeat; background-image: url(${images.arrow}); filter: invert(100%) sepia(95%) saturate(21%) hue-rotate(280deg) brightness(106%) contrast(106%); transform: rotate(90deg); cursor: pointer; } .hc-translators-hide-enabled .hc-show-translators .hc-toggle-translators-button { transform: rotate(-90deg); } .hc-translators-hide-enabled .b-translator__item:not(.active):not(.hc-toggle-translators-button) { display: none; } .hc-translators-hide-enabled .b-translators__title { display: none; } .hc-translators-hide-enabled .hc-show-translators .b-translator__item:not(.active):not(.hc-toggle-translators-button) { display: block; } .hc-translators-hide-enabled .hc-show-translators .b-translators__title { display: block; } /* !css */ `); settings(); document.addEventListener("DOMContentLoaded", setup); function setup() { function toggle() { document.querySelector(".b-translators__block").classList.toggle("hc-show-translators"); } const translators = document.querySelector(".b-translators__block"); if (!translators) return; const translatorsList = translators.querySelector(".b-translators__list"); if (!translatorsList) return; const toggler = document.createElement("li"); toggler.classList.add("hc-toggle-translators-button"); toggler.addEventListener("click", toggle); translatorsList.appendChild(toggler); translatorsList.querySelectorAll(".b-translator__item").forEach(function(button) { button.addEventListener("click", function () { if (this.classList.contains("active")) { toggle(); } }); }); } function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "translators", label: "Сворачивать список переводов", classes: ["hc-on-of-tumbler"], options: [ { class: null, text: "Выкл", }, { class: "hc-translators-hide-enabled", text: "Вкл", }, ], }); } } } /* ------------------------------------------------- */ /* --------------IMDB-RATING------------------------ */ /* ------------------------------------------------- */ function initIMDbRating() { GM_addStyle(` /* css */ /* Rating */ .b-content__inline_item-link > .rating { display: none; } body.hc-imdb .b-content__inline_item-link > .rating { display: block; } .b-content__inline_item-link > .rating { position: relative; line-height: 15px; font-size: 11px; font-weight: normal; margin-top: 3px; } .b-content__inline_item-link > .rating .rating-votes { font-size: 9px; } .b-content__inline_item-link > .rating .rating-value { margin-left: 29px; color: #f09a20; } .b-content__inline_item-link > .rating:before { content: ''; position: absolute; width: 26px; height: 100%; background-size: auto 24px; background-position: center -4px; background-repeat: no-repeat; background-image: url(${images.imdb}); /* https://codepen.io/sosuke/pen/Pjoqqp */ filter: invert(66%) sepia(77%) saturate(1448%) hue-rotate(347deg) brightness(99%) contrast(91%); } /* !css */ `); settings(); function setWithExpiry(key, value, ttl) { const now = new Date(); // `item` is an object which contains the original value // as well as the time when it's supposed to expire const item = { value: value, expiry: now.getTime() + ttl, }; localStorage.setItem(key, JSON.stringify(item)); } function getWithExpiry(key) { const itemStr = localStorage.getItem(key); // if the item doesn't exist, return null if (!itemStr) { return null; } const item = JSON.parse(itemStr); const now = new Date(); // compare the expiry time of the item with the current time if (now.getTime() > item.expiry) { // If the item is expired, delete the item from storage // and return null localStorage.removeItem(key); return null; } return item.value; } function getRating(id) { return new Promise(function(resolve) { console.debug(`HDrezka IMDB Rating: request quick content for id=${id}.`); GM_xmlhttpRequest({ method: "POST", url: "/engine/ajax/quick_content.php", data: `id=${id}&is_touch=1`, headers: { "Content-Type": "application/x-www-form-urlencoded", }, onload: function(response) { // One weak ttl in ms const ttl = 7 * 24 * 60 * 60 * 1000; if (response.status === 200) { // Is 200 status code // Find IMDb block const ratingHTML = /<span class="imdb">IMDb: <b>.{1,60}\)<\/i><\/span>/.exec( response.responseText ); if (ratingHTML) { // IMDb block found let rating; let votes; try { // Get actual rating const rating = /(<b>)(.*)(<\/b>)/.exec(ratingHTML[0])[2]; // Get actual votes count const votes = /(<i>)\((.*)\)(<\/i>)/.exec(ratingHTML[0])[2]; // Save real rating to Storage // Resolve with real rating const data = { rating: rating, votes: votes, id: id, }; setWithExpiry(id, data, ttl); resolve(data); console.debug(`HDrezka IMDB Rating: request quick content for id=${id} success.`); return; } catch (err) { console.debug(err); } } // IMDb block not found // Save empty rating to storage to not make new request in next page load // Resolve with empty rating const data = { rating: "", votes: "", id: id }; setWithExpiry(id, data, ttl); resolve(data); console.debug( `HDrezka IMDB Rating: request quick content for id=${id} success, but no correct data found.` ); } else { console.debug( `HDrezka IMDB Rating: request quick content for id=${id} failed with ${response.status} status code.` ); // Isn't 200 status code // Don't save any rating so it will be requsted again in next page load // Resolve with null rating resolve({ rating: null, votes: null, id: id }); } }, onerror: function() { console.debug(`HDrezka IMDB Rating: request quick content for id=${id} failed.`); // Request failed // Don't save any rating so it will be requsted again in next page load // Resolve with null rating resolve({ rating: null, votes: null, id: id }); }, }); }); } function showRating(ratingObject) { if ( ratingObject && ratingObject.id !== null && ratingObject.rating !== null && ratingObject.rating !== "" ) { // Got rating // Find related elements to append rating document .querySelectorAll(`[data-id="${ratingObject.id}"] .b-content__inline_item-link`) .forEach(function(contentItemLinkElement) { // Check rating wasn't already appended if (contentItemLinkElement && !contentItemLinkElement.querySelector(".rating")) { // Append rating block let votesText; try { votesText = `${parseInt(parseInt(ratingObject.votes.replace(/\s/g, "")) / 1000)}k`; } catch (err) { console.debug(err); votesText = ""; } contentItemLinkElement.innerHTML += /* html */ ` <!-- html --> <span class="rating"> <span class="rating-value"><b>${ratingObject.rating}</b></span> <span> / </span> <span class="rating-votes">${votesText}</span> </span> <!-- !html --> `; } }); } } function getAndShowRating(contentItemElement) { const id = contentItemElement.dataset.id; const ratingObject = getWithExpiry(id); if ( ratingObject !== null && ratingObject.id != null && ratingObject.rating != null && ratingObject.votes != null ) { // Found vaid saved rating in storage // Show rating from storage return showRating(ratingObject); } // Rating not found in storage // Request rating and then show return getRating(id).then(showRating); } function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "imdb", label: "Рейтинг IMDb", classes: ["hc-on-of-tumbler"], options: [ { class: null, text: "Выкл", }, { end: function () { document.querySelectorAll(".b-content__inline_item").forEach(getAndShowRating); }, class: "hc-imdb", text: "Вкл", }, ], }); } } } /* ------------------------------------------------- */ /* --------------HOTKEYS---------------------------- */ /* ------------------------------------------------- */ function initHotkeys() { const HELP_TOOLTIP = /* html */ ` <!-- html --> <span class="hc-tooltip"> <span class="hc-tooltip-icon">i</span> <div class="tooltiptext"> <div>Список горячих клавиш</div> <ul style="margin-top: 15px;"> <li style="margin-top: 5px;">ПРОБЕЛ - Плей/Пауза</li> <li style="margin-top: 5px;">F - Полноэкранный режим</li> <li style="margin-top: 5px;">N - Следующий эпизод</li> <li style="margin-top: 5px;">P - Предыдущий эпизод</li> </ul> <div style="margin-top: 15px;"> <small> В отличии от оригинальных работают с разу полсле загрузки страницы. В том числе когда плеер не в фокусе или был не в фокусе на момент перевода в полноэкранный режим. </small> </div> </div> </div> <!-- !html --> `; function setup() { function anyActiveInput() { const inputs = document.querySelectorAll("input,textarea"); return Array.from(inputs).includes(document.activeElement); } document.addEventListener("keyup", function (e) { if (!anyActiveInput()) { switch (e.code) { case "KeyF": hc.player.fullscreen(); e.preventDefault(); break; } } }); document.addEventListener("keydown", function (e) { if (!anyActiveInput()) { switch (e.code) { case "KeyN": hc.player.next(); e.preventDefault(); break; case "KeyP": hc.player.prev(); e.preventDefault(); break; case "Space": hc.player.toggle(); e.preventDefault(); break; } } }); } settings(); function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "hotkeys", label: `Улучшеные горячие клавиши ${HELP_TOOLTIP}`, classes: ["hc-on-of-tumbler"], options: [ { class: null, text: "Выкл", reload: true, }, { end: setup, class: "hc-hotkeys-enabled", text: "Вкл", default: true, reload: true, }, ], }); } } } /* ------------------------------------------------- */ /* --------------HIDE-RUSSIAN----------------------- */ /* ------------------------------------------------- */ function initHideRussian() { GM_addStyle(` /* css */ /* Main */ .hc-hide-russian .hc-russian { display: none; } /* !css */ `); document.addEventListener("DOMContentLoaded", setup); settings(); function setup() { document.querySelectorAll(".b-content__inline_item").forEach(function(elem) { if (elem.textContent.includes("Россия,") && !elem.classList.contains("hc-russian")) { elem.classList.add("hc-russian"); const info = elem .querySelector(".b-content__inline_item-link") .textContent.replace(/(\r\n|\n|\r)/gm, "") .trim(); console.debug(`HDrezka Cleanup: mark russian ${info}`); } }); } function settings() { if (hc.settings) { hc.settings.createTumblerSetting({ name: "hide-russian", label: "Скрыть контент из страны-агрессора", classes: ["hc-on-of-tumbler"], options: [ { class: null, text: "Выкл", }, { class: "hc-hide-russian", text: "Вкл", }, ], }); } } } /* ------------------------------------------------- */ /* --------------SETTINGS--------------------------- */ /* ------------------------------------------------- */ function initSettings() { GM_addStyle(` /* css */ /* Settings */ .hc-settings { position: relative; } /* Tumbler */ .hc-tumbler { width: 38px; height: 30px; background-color: #000; border: #1d92b2; border-radius: 30px; display: flex; justify-content: space-between; align-items: center; padding: 0 6px; cursor: pointer; position: relative; user-select: none; } .hc-tumbler-point { border-radius: 50%; content: ''; display: block; height: 20px; width: 20px; background-color: #999; background-clip: content-box; box-sizing: border-box; border-color: transparent; border-style: solid; border-width: 5px; } .hc-tumbler > .hc-tumbler-dot { position: absolute; height: 20px; width: 20px; border-radius: 50%; background-color: #fff; transition: transform .5s,background-color .5s; will-change: transform; z-index: 2; } body.b-theme__template__night .hc-tumbler { background: #222d33; } /* On-Off Tumbler */ .hc-on-of-tumbler .hc-tumbler-point:nth-child(1) { background-color: green; } .hc-on-of-tumbler .hc-tumbler-point:nth-child(2) { background-color: indianred; } /* Settings */ .hc-settings > ul { width: 450px; display: none; background: #313131; border-top: 0; position: absolute; top: 50px; left: 0px; white-space: nowrap; box-shadow: 0 5px 20px 0px #000; border-color: #222d33; border-style: solid; border-width: 3px 3px 3px 3px; padding: 5px 0; } .hc-settings > ul:before { content: ''; display: block; position: absolute; top: -13px; left: 20px; width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 10px solid #222d33; } .hc-settings > ul:after { content: ''; display: block; position: absolute; top: -9px; left: 21px; width: 0; height: 0; border-left: 9px solid transparent; border-right: 9px solid transparent; border-bottom: 9px solid #313131; } body.b-theme__template__night .hc-settings > ul:after { border-bottom-color: #060f13; } body.hc-settings-active .hc-settings > ul { display: block !important; } .hc-settings > ul > li { white-space: nowrap; color: #777; font-size: 10px; font-weight: bold; margin: 0 !important; padding: 5px 10px; height: 30px; } .hc-settings > ul > li .hc-tumbler { float: right; } .hc-settings .hc-setting-text-value { display: none; opacity: .5; } .hc-settings .hc-setting-text-block { float: left; padding-top: 5px; position: relative; } body.b-theme__template__night .hc-settings > ul { background: #060f13; } /* Settings tumbler */ .hc-tumbler-settings { margin-top: 5px; margin-left: 10px; } .hc-tumbler-settings .hc-tumbler-point { background-size: 15px 15px; background-repeat: no-repeat; background-position: center; border-width: 2px; } .hc-tumbler-settings .hc-tumbler-point:nth-child(1) { background-image: url('${images.settings}'); background-color: transparent !important; } .hc-tumbler-settings .hc-tumbler-point:nth-child(2) { background-image: url('${images.settingsclose}'); background-color: transparent !important; } /* Tooltip */ .hc-tooltip { position: relative; display: inline-block; border-bottom: 1px dotted black; } .hc-tooltip .tooltiptext { background: #313131; border-top: 0; position: absolute; top: -25px; left: 35px; white-space: nowrap; box-shadow: 0 5px 20px 0px #000; border-color: #222d33; border-style: solid; border-width: 3px; visibility: hidden; width: 200px; white-space: normal; padding: 15px; position: absolute; z-index: 3; } body.b-theme__template__night .hc-tooltip .tooltiptext { background: #060f13; } .hc-tooltip:hover .tooltiptext { visibility: visible; } .hc-tooltip .tooltiptext:before { content: ''; display: block; position: absolute; left: -13px; top: 11px; width: 0; height: 0; border-top: 10px solid transparent; border-bottom: 10px solid transparent; border-right: 10px solid #222d33; } .hc-tooltip .tooltiptext:after { content: ''; display: block; position: absolute; left: -9px; top: 12px; width: 0; height: 0; border-top: 9px solid transparent; border-bottom: 9px solid transparent; border-right: 9px solid #222d33; } body.b-theme__template__night .hc-tooltip .tooltiptext:after { border-right-color: #060f13; } .hc-tooltip-icon { border-radius: 50%; background: #777; min-width: 15px; min-height: 15px; display: inline-block; text-align: center; color: #000; text-transform: lowercase; cursor: pointer; position: absolute; font-family: monospace, monospace; font-size: 13px; top: -10px; right: -20px; } body.hc-settings-active.active-brand.pp #top-head, body.hc-settings-active .b-tophead_wrapper { position: fixed !important; border-bottom: 3px solid #222d33; } .b-topnav_wrapper { transition: none; } body.hc-settings-active .b-topnav_wrapper { margin-top: 40px; transition: none; } /* !css */ `); hc.settings = {}; hc.settings.createTumblerSetting = createTumblerSetting; const SETTINGS_NAME = "hc-settings"; const DEFAULT_SETTING = ""; document.addEventListener("DOMContentLoaded", setup); function setSetting(config, option) { const setting = option.class !== null ? option.class : DEFAULT_SETTING; const settingsStr = localStorage.getItem(SETTINGS_NAME); let settings = settingsStr !== null ? JSON.parse(settingsStr) : {}; settings[config.name] = setting; localStorage.setItem(SETTINGS_NAME, JSON.stringify(settings)); } function getSetting(config) { const settingsStr = localStorage.getItem(SETTINGS_NAME); const settings = settingsStr !== null ? JSON.parse(settingsStr) : {}; let setting = settings[config.name]; return setting !== undefined ? setting : null; } function getDefaultOption(config) { for (let optionIndex = 0; optionIndex < config.options.length; optionIndex++) { const tumblerOption = config.options[optionIndex]; if (tumblerOption.default === true) { return tumblerOption; } } } function setBodyClass(config, option) { for (let optionIndex = 0; optionIndex < config.options.length; optionIndex++) { const tumblerOption = config.options[optionIndex]; if (tumblerOption.class !== null) { document.body.classList.remove(tumblerOption.class); } } if (option && option.class) { document.body.classList.add(option.class); } } function getNextOption(config, option) { let nextOptionIndex; if (option) { const currentOptionIndex = config.options.indexOf(option); if (currentOptionIndex < config.options.length - 1) { nextOptionIndex = currentOptionIndex + 1; } else { nextOptionIndex = 0; } } else { nextOptionIndex = 1; } return config.options[nextOptionIndex]; } function getCurrentOption(config) { const currentSetting = getSetting(config); if (currentSetting != null) { for (let optionIndex = 0; optionIndex < config.options.length; optionIndex++) { const tumblerOption = config.options[optionIndex]; const optionSetting = tumblerOption.class !== null ? tumblerOption.class : DEFAULT_SETTING; if (optionSetting === currentSetting) { return tumblerOption; } } } const option = getDefaultOption(config); if (option) { setSetting(config, option); return option; } else { setSetting(config, { class: DEFAULT_SETTING }); } } function rotateSetting(config) { const currentOption = getCurrentOption(config); const nextOption = getNextOption(config, currentOption); setSetting(config, nextOption); setBodyClass(config, nextOption); if (nextOption.reload === true) { document.location.reload(); } if (nextOption.start) { nextOption.start(); } if (nextOption.end) { nextOption.end(); } } function initSetting(config) { const currentOption = getCurrentOption(config); setBodyClass(config, currentOption); if (currentOption && currentOption.start) { currentOption.start(); } if (currentOption && currentOption.end) { document.addEventListener("DOMContentLoaded", currentOption.end); } } function setup() { const tophead = document.querySelector(".b-tophead-left"); if (!tophead) return; const tumblerWrapper = buildTumbler({ handler: toggle, name: "settings", classes: [], options: [ { class: null, }, { class: "hc-settings-active", }, ], }); tumblerWrapper.classList.add("hc-settings"); tumblerWrapper.classList.add("pull-left"); const tumblerUL = document.createElement("ul"); tumblerWrapper.appendChild(tumblerUL); document.addEventListener("click", close); tophead.appendChild(tumblerWrapper); } function toggle(event) { document.body.classList.toggle("hc-settings-active"); event.stopPropagation(); } function close(event) { if (!event.target.closest(".hc-settings")) { document.body.classList.remove("hc-settings-active"); } } function addTumblerSetting(element) { const tophead = document.querySelector(".b-tophead-left"); if (!tophead) return; const dropdown = tophead.querySelector(".hc-settings ul"); if (!dropdown) return; const item = document.createElement("li"); item.appendChild(element); dropdown.appendChild(item); } function buildTumbler(config) { const optionsLength = config.options.length; const tumblerClassName = "hc-tumbler-" + config.name; GM_addStyle(` /* css */ .${tumblerClassName} { width: ${optionsLength * 15 + optionsLength * 5}px !important; } /* !css */ `); const tumblerWrapper = document.createElement("div"); tumblerWrapper.classList.add("hc-tumbler-wrapper"); const tumbler = document.createElement("div"); tumbler.classList.add("hc-tumbler"); tumbler.classList.add(tumblerClassName); tumbler.className += " " + config.classes.join(" "); tumbler.addEventListener("click", config.handler); for (let optionIndex = 0; optionIndex < optionsLength; optionIndex++) { const tumblerOption = config.options[optionIndex]; const tumblerPoint = document.createElement("div"); tumblerPoint.classList.add("hc-tumbler-point"); tumbler.appendChild(tumblerPoint); if (tumblerOption.class !== null) { // Add dot move style for all points except initial const enabledClassName = tumblerOption.class; GM_addStyle(` /* css */ .${enabledClassName} .${tumblerClassName} .hc-tumbler-dot { transform: translateX(${optionIndex * 100}%); } /* !css */ `); } } const tumblerDot = document.createElement("div"); tumblerDot.classList.add("hc-tumbler-dot"); tumbler.appendChild(tumblerDot); tumblerWrapper.appendChild(tumbler); return tumblerWrapper; } function buildTumblerSetting(config) { initSetting(config); const originalHandler = config.handler; function handler(event) { rotateSetting(config); if (originalHandler) { originalHandler(event); } } config.handler = handler; const tumblerWrapper = buildTumbler(config); const settingClass = "hc-setting-" + config.name; tumblerWrapper.classList.add(settingClass); const settingTextBlock = document.createElement("div"); settingTextBlock.classList.add("hc-setting-text-block"); const labelSpan = document.createElement("span"); labelSpan.classList.add("hc-setting-label"); labelSpan.innerHTML = config.label; settingTextBlock.appendChild(labelSpan); const optionsLength = config.options.length; let defaultSelector = "body"; for (let tumblerIndex = 0; tumblerIndex < optionsLength; tumblerIndex++) { const tumplerOption = config.options[tumblerIndex]; if (tumplerOption.class !== null) { defaultSelector += `:not(.${tumplerOption.class})`; } } for (let optionIndex = 0; optionIndex < optionsLength; optionIndex++) { const tumplerOption = config.options[optionIndex]; const textValueClass = "hc-setting-text-value-" + (optionIndex + 1); const textValueSpan = document.createElement("span"); textValueSpan.classList.add("hc-setting-text-value"); textValueSpan.classList.add(textValueClass); textValueSpan.innerHTML = tumplerOption.text; settingTextBlock.appendChild(textValueSpan); if (optionIndex == 0) { GM_addStyle(` /* css */ ${defaultSelector} .${settingClass} .${textValueClass} { display: block !important; } /* !css */ `); } else { const enabledClassName = config.options[optionIndex].class; GM_addStyle(` /* css */ .${enabledClassName} .${settingClass} .${textValueClass} { display: block !important; } /* !css */ `); } } tumblerWrapper.appendChild(settingTextBlock); return tumblerWrapper; } function createTumblerSetting(config) { const tumblerSetting = buildTumblerSetting(config); document.addEventListener("DOMContentLoaded", function() { addTumblerSetting(tumblerSetting); }); } } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址