// ==UserScript== // @author zhzLuke96 // @name 油管视频旋转 // @name:en youtube player rotate plug // @version 1.1 // @description 油管的视频旋转插件. // @description:en rotate youtebe player. // @namespace https://github.com/zhzLuke96/ // @match https://www.youtube.com/* // @grant none // @downloadURL none // ==/UserScript== (function () { 'use strict'; const rule_name = "ytp_player_user_js"; // ref:https://stackoverflow.com/questions/27078285/simple-throttle-in-js function throttle(callback, limit) { var waiting = false; return function () { if (!waiting) { callback.apply(this, arguments); waiting = true; setTimeout(function () { waiting = false; }, limit); } } } const dommap = {}; const applydom = (key, fn) => dommap[key] && fn(dommap[key]); // init ytp_horizintal ytp_vertical class ; (rule => { var style = document.createElement('style'); document.getElementsByTagName('head')[0].appendChild(style); style.innerHTML = rule })(` video.ytp_horizintal{transform:rotateX(180deg)} video.ytp_vertical{transform:rotateY(180deg)} `); const $ = q => document.querySelector(q); const currentLang = (navigator.language || navigator.browserLanguage || navigator.systemLanguage).toLowerCase() || ''; const on_zh_lang = currentLang.indexOf("zh") > -1; let $styleElem = null; // cache var function setup($ytp_player, $ytp_player_vid) { if (!$ytp_player || !$ytp_player_vid) { return } if (!$styleElem) { $styleElem = document.createElement('style'); document.getElementsByTagName('head')[0].appendChild($styleElem); } // mount