Greasy Fork is available in English.

SPP Store: Blurs R-rated Covers

Blurs the covers of R-rated books at SPP Store.

// ==UserScript==
// @name               SPP Store: Blurs R-rated Covers
// @name:zh-TW         尖端網路書店:模糊限制級封面
// @description        Blurs the covers of R-rated books at SPP Store.
// @description:zh-TW  模糊尖端網路書店限制級書本的封面。
// @icon               https://wsrv.nl/?url=https://www.spp.com.tw/Source/images/zh-cht/icons/192192.png
// @author             Jason Kwok
// @namespace          https://jasonhk.dev/
// @version            1.2.0
// @license            MIT
// @match              https://www.spp.com.tw/
// @match              https://www.spp.com.tw/productlist
// @match              https://www.spp.com.tw/productlist?*
// @match              https://www.spp.com.tw/product?*
// @run-at             document-end
// @grant              none
// @require            https://update.greasyfork.org/scripts/483122/1304475/style-shims.js
// @supportURL         https://greasyfork.org/scripts/483239/feedback
// ==/UserScript==

GM.addStyle(`
    :is(.item, .df_item, .df_item1).nsfw .df_mask
    {
        display: none !important;
    }

    :is(.item, .df_item, .df_item1).nsfw :is(.df_img, .bd_left > a > img)
    {
        filter: blur(var(--nsfw-blur-radius, 7.5px));
        transition: filter var(--nsfw-transition-duration, 0.3s);
    }

    :is(.item, .df_item, .df_item1).nsfw:hover :is(.df_img, .bd_left > a > img), :is(.item, .df_item, .df_item1).nsfw:focus-within :is(.df_img, .bd_left > a > img)
    {
        filter: blur(0px);
    }
`);

const products = document.querySelectorAll(".item, .df_item, .df_item1");
for (const product of products)
{
    if (product.querySelector(".df_r18") !== null)
    {
        product.classList.add("nsfw");
    }
}