Fanza Filter Util

filtering util on Fanza doujin

Version vom 22.07.2023. Aktuellste Version

Dieses Skript sollte nicht direkt installiert werden. Es handelt sich hier um eine Bibliothek für andere Skripte, welche über folgenden Befehl in den Metadaten eines Skriptes eingebunden wird // @require https://update.sleazyfork.org/scripts/471066/1223725/Fanza%20Filter%20Util.js

// ==UserScript==
// @name         Fanza Filter Util
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  filtering util on Fanza doujin
// @author       RamisAmuki
// @match        https://www.dmm.co.jp/dc/doujin/-/list/*
// @match        https://www.dmm.co.jp/dc/doujin/-/search/=/*
// @match        https://www.dmm.co.jp/dc/doujin/-/bookmark/
// @icon         https://p.dmm.co.jp/p/common/pinned/favicon.ico
// @grant        none
// @license      MIT
// ==/UserScript==

// ignore list
const is_bookmark_page = location.pathname !== "/dc/doujin/-/bookmark/";
const ignore_querys = [
  "span.u-common__ico--basketDone",
  "span.listPurchased__btn",
];
const ignore_genres = ["ボイス"];
const ignore_authors = is_bookmark_page ? ["TGA", "聖華快楽書店"] : [];
const ignore_titles = ["体験版", "無料版"];

// query
const querys = is_bookmark_page
  ? {
      lists: "ul.fn-productList > li.productList__item",
      genre: "div.listGenreIco__ico",
      author: "div.tileListTtl__txt--author",
      title: "div.tileListTtl__txt",
      rate: "span.c_icon_priceStatus",
      price: "p.c_txt_price",
      button_parent: "div.pageNation__item",
    }
  : {
      lists: "ul.basket-list-tile > li.basket-listItem-tile",
      genre: "span.c_icon_genre",
      author: "p.basket-circle-tile",
      title: "b.basket-name-tile",
      rate: "span.c_icon_priceStatus",
      price: "p.c_txt_price",
      button_parent: "div.basket-btnAreaCol1",
    };

const checker = (liqs) => {
  const auhtor = liqs(querys.author).innerText.trim();
  const title = liqs(querys.title).innerText;
  if (liqs(querys.rate) === null) return true;
  // checking
  return [
    check_rate_price(liqs, querys),
    ignore_querys.some((query) => liqs(query) != null),
    ignore_genres.includes(liqs(querys.genre).innerText),
    ignore_authors.includes(auhtor),
    ignore_titles.some((ignore) => title.includes(ignore)),
  ].some((b) => b);
};