Greasy Fork

Greasy Fork is available in English.

Netflix Romanian Subtitle Resizer

A simple script that will resize Netflix image based subtitles!

目前为 2020-10-07 提交的版本,查看 最新版本

// ==UserScript==
// @name         Netflix Romanian Subtitle Resizer
// @icon         https://image.flaticon.com/icons/png/128/1450/1450370.png
// @namespace    https://bitbucket.org/adrianaxente/netflix/downloads/netflix_romanian_subtitle_resizer.js
// @version      0.1
// @description  A simple script that will resize Netflix image based subtitles!
// @author       Adrian Axente [email protected]
// @match        https://www.netflix.com/*
// @grant        none
// @run-at       context-menu
// ==/UserScript==

// MIT Licensed
// Author: jwilson8767

/**
 * Waits for an element satisfying selector to exist, then resolves promise with the element.
 * Useful for resolving race conditions.
 *
 * @param selector
 * @returns {Promise}
 */
function elementReady(selector) {
  return new Promise((resolve, reject) => {
    const el = document.querySelector(selector);
    if (el) {resolve(el);}
    new MutationObserver((mutationRecords, observer) => {
      // Query for elements matching the specified selector
      Array.from(document.querySelectorAll(selector)).forEach((element) => {
        resolve(element);
        //Once we have resolved we don't need the observer anymore.
        observer.disconnect();
      });
    })
      .observe(document.documentElement, {
        childList: true,
        subtree: true
      });
  });
}

(function() {
    'use strict';
    var imageBasedTimedTextPercentText = prompt("Inroduceti dimesiunea subtitrării in procente", "50");

    const imageBasedTimedTextPercent = parseInt(imageBasedTimedTextPercentText);

    if (Number.isNaN(imageBasedTimedTextPercent) || (imageBasedTimedTextPercent < 0) || (imageBasedTimedTextPercent > 100)) {
        alert("Dimensiunea subtitrării in procente introdusă nu este un număr intreg intre 0 si 100.\nIncercați din nou cu mai multă atentie !");
        return;
    }

    elementReady('.image-based-timed-text')
        .then(
           (element)=>{
               console.log("Netflix Romanian subtitle resized to: " + imageBasedTimedTextPercent + "%");
               element.style.top = (100 - imageBasedTimedTextPercent) + "%";
            });
})();