FanzaFilterUtil

filtering util on Fanza doujin

Verze ze dne 08. 08. 2023. Zobrazit nejnovější verzi.

Tento skript by neměl být instalován přímo. Jedná se o knihovnu, kterou by měly jiné skripty využívat pomocí meta příkazu // @require https://update.sleazyfork.org/scripts/471066/1232502/FanzaFilterUtil.js

  1. // ==UserScript==
  2. // @name FanzaFilterUtil
  3. // @description filtering util on Fanza doujin
  4. // @author RamisAmuki
  5. // @license MIT
  6. // ==/UserScript==
  7.  
  8. // ignore list
  9. const is_bookmark_page = location.pathname === "/dc/doujin/-/bookmark/";
  10. const ignore_querys = [
  11. "span.u-common__ico--basketDone",
  12. "span.listPurchased__btn",
  13. ];
  14. const ignore_genres = ["ボイス"];
  15. const ignore_authors = [
  16. "TGA",
  17. "聖華快楽書店",
  18. "ブルースカイ",
  19. "産婆",
  20. "マサヂロー",
  21. "私立 七つ星中",
  22. "100日後に絵が上手...",
  23. "デジタルワイフPro...",
  24. "ブリーフアワー",
  25. "なでしこさん",
  26. "塩屋",
  27. "アオキアカ",
  28. "アオイ",
  29. "ルーマニー",
  30. "クリームソーダ",
  31. "あいどるたいむ",
  32. "魔の王野口営業二課",
  33. "たまねぎ",
  34. "勇者チキン",
  35. ];
  36. const ignore_titles = ["体験版", "無料版", "ぼうけんのしょ"];
  37.  
  38. // query
  39. const querys = !is_bookmark_page
  40. ? {
  41. lists: "ul.fn-productList > li.productList__item",
  42. genre: "div.listGenreIco__ico",
  43. author: "div.tileListTtl__txt--author",
  44. title: "div.tileListTtl__txt",
  45. rate: "span.c_icon_priceStatus",
  46. price: "p.c_txt_price",
  47. button_parent: "div.pageNation__item",
  48. }
  49. : {
  50. lists: "ul.basket-list-tile > li.basket-listItem-tile",
  51. genre: "span.c_icon_genre",
  52. author: "p.basket-circle-tile",
  53. title: "b.basket-name-tile",
  54. rate: "span.c_icon_priceStatus",
  55. price: "p.c_txt_price",
  56. button_parent: "div.basket-btnAreaCol1",
  57. };
  58.  
  59. const checker = (liqs) => {
  60. const auhtor = liqs(querys.author).innerText.trim();
  61. const title = liqs(querys.title).innerText;
  62. if (liqs(querys.rate) === null) return true;
  63. // checking
  64. return [
  65. check_rate_price(liqs, querys),
  66. ignore_querys.some((query) => liqs(query) != null),
  67. ignore_genres.includes(liqs(querys.genre).innerText),
  68. checkboxEnable("author") ? ignore_authors.includes(auhtor) : false,
  69. ignore_titles.some((ignore) => title.includes(ignore)),
  70. ].some((b) => b);
  71. };