Prime Video Sólo Contenido Prime [ESP]

Oculta las secciones de compra o alquiler en la portada de Amazon Prime Video España.

スクリプトをインストール?
作者が勧める他のスクリプト

Prime Video Ad Blocker [ESP]も気に入るかもしれません。

スクリプトをインストール
このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name          Prime Video Sólo Contenido Prime [ESP]
// @namespace     http://tampermonkey.net/
// @version       0.2.5
// @description   Oculta las secciones de compra o alquiler en la portada de Amazon Prime Video España.
// @author        Jeau
// @license       MIT
// @match         https://*.primevideo.com/
// @match         https://*.primevideo.com/storefront/*
// @match         https://*.primevideo.com/genre/*
// @icon          https://m.media-amazon.com/images/G/01/digital/video/DVUI/favicons/favicon-32x32.png
// @require       https://code.jquery.com/jquery-latest.min.js
// @grant         none
// @run-at document-end
// ==/UserScript==

(function() {
    'use strict';

    // Script won't work on 'store' pages
    if (location.href.includes('contentId=store')) {
        return;
    }

    // Hide every carousel with payment requirement
    $('article[data-testid="card"]').each(function() {
        if ($(this).find('span').filter(':contains("ompra"), :contains("alquiler"), :contains("gratis"), :contains("uscribir")').length) {
            if (this.closest('section[data-testid]')) {
                let carousel = this.closest('section[data-testid]');
                if ($(carousel).find('span[data-testid="carousel-title"]').length) {
                    let carouselTitle = $(carousel).find('span[data-testid="carousel-title"]')[0].firstElementChild.innerText.toUpperCase();
                    // Case: Keep Watching
                    if (carouselTitle.includes('SEGUIR VIENDO')) {
                        $(this).css('display', 'none');
                    } else {
                        $(carousel).parent().css('display', 'none');
                        return true;
                    }
                } else {
                    $(carousel).parent().css('display', 'none');
                    return true;
                }
            }
        }
    });

    // Dinamically check any new node added to the webpage
    function checkNewNode(n) {
        // Hide subscription carousels
        if (n.tagName == 'DIV') {
            if ($(n).find('span').filter(':contains("ompra"), :contains("alquiler"), :contains("gratis"), :contains("uscribir")').length) {
                $(n).find('span').filter(':contains("ompra"), :contains("alquiler"), :contains("gratis"), :contains("uscribir")').each(function() {
                    try {
                        let carousel;
                        if (this.closest('section[data-testid="standard-carousel"]')) {
                            carousel = this.closest('section[data-testid="standard-carousel"]').closest('div[class]');
                            $(carousel).parent().css('display', 'none');
                            return true;
                        } else if (this.closest('section[data-testid="nodes-carousel"]')) {
                            carousel = this.closest('section[data-testid="nodes-carousel"]');
                            $(carousel).parent().css('display', 'none');
                            return true;
                        }
                    } catch(e) {
                        console.log('\n\n\n');
                        console.log('Error userscript "Mostrar Sólo Prime" (MutationObserver) !!!!');
                        console.log('Estructura no reconocida en el siguiente elemento:');
                        console.log(n);
                        console.log('\n\n\n');
                    }
                });
            }
        }

        // Hide subscription cards from "New on shopping" section
        if (n.tagName == 'SECTION') {
            if ($(n).find('span').filter(':contains("ompra"), :contains("alquiler"), :contains("gratis"), :contains("uscribir")').length) {
                let card1 = $(n).find('span').filter(':contains("ompra"), :contains("alquiler"), :contains("gratis"), :contains("uscribir")')[0];
                if ($(card1).closest('section[data-testid="cover-container"]').length) {
                    $(card1).closest('section[data-testid="cover-container"]').css('display', 'none');
                    return true;
                }
            }
        }
    }

    // Declaration of Mutation observer
    let observer = new MutationObserver((mutations) => {
        for (const { addedNodes } of mutations) {
            for (const n of addedNodes) {
                if (n.tagName) {
                    checkNewNode(n);
                }
            }
        }
    });

    observer.observe(document, {
        subtree: true,
        childList: true,
        characterData: false
    });

})();