FanzaFilterUtil

filtering util on Fanza doujin

このスクリプトは単体で利用できません。右のようなメタデータを含むスクリプトから、ライブラリとして読み込まれます: // @require https://update.sleazyfork.org/scripts/471066/1352023/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_exp = /ボイス|AI/;
  15. const ignore_authors_exp = new RegExp(
  16. [
  17. "TGA",
  18. "聖華快楽書店",
  19. "ブルースカイ",
  20. "産婆",
  21. "マサヂロー",
  22. "私立 七つ星中",
  23. "100日後に絵が上手",
  24. "デジタルワイフPro",
  25. "ブリーフアワー",
  26. "なでしこさん",
  27. "塩屋",
  28. "アオキアカ",
  29. "アオイ",
  30. "ルーマニー",
  31. "クリームソーダ",
  32. "あいどるたいむ",
  33. "魔の王野口営業二課",
  34. "たまねぎ",
  35. "勇者チキン",
  36. "ラビットバナナ",
  37. "AgeRatum",
  38. "光沢3Dっ娘クラブ",
  39. "ハードコア001",
  40. "鳥居座",
  41. "サンダー・マテリアル",
  42. "ハガバラッド",
  43. "うったけ",
  44. "ライジングフォース",
  45. "狼中年",
  46. "窪リオンの部屋",
  47. ].join("|")
  48. );
  49. const ignore_titles_exp = new RegExp(
  50. [
  51. "体験版",
  52. "無料版",
  53. "ぼうけんのしょ",
  54. "君との夏休み〜",
  55. "催●カノジョ",
  56. "巨乳地味子はその",
  57. "つむぎがドS男に調教されてた。",
  58. ].join("|")
  59. );
  60.  
  61. // query
  62. const querys = !is_bookmark_page
  63. ? {
  64. lists: "ul.fn-productList > li.productList__item",
  65. genre: "div.c_icon_genre",
  66. author: "div.tileListTtl__txt--author",
  67. title: "div.tileListTtl__txt",
  68. rate: "span.c_icon_priceStatus",
  69. price: "p.c_txt_price",
  70. button_parent: "div.pageNation__item",
  71. }
  72. : {
  73. lists: "ul.basket-list-tile > li.basket-listItem-tile",
  74. genre: "span.c_icon_genre",
  75. author: "p.basket-circle-tile",
  76. title: "b.basket-name-tile",
  77. rate: "span.c_icon_priceStatus",
  78. price: "p.c_txt_price",
  79. button_parent: "div.basket-btnAreaCol1",
  80. };
  81.  
  82. const checker = (liqs) => {
  83. const auhtor = liqs(querys.author).innerText.trim();
  84. const title = liqs(querys.title).innerText;
  85. if (liqs(querys.rate) === null) return true;
  86. // checking
  87. return [
  88. check_rate_price(liqs, querys),
  89. ignore_querys.some((query) => liqs(query) !== null),
  90. ignore_genres_exp.test(liqs(querys.genre).innerText),
  91. checkboxEnable("author") ? ignore_authors_exp.test(auhtor) : false,
  92. ignore_titles_exp.test(title),
  93. ].some((b) => b);
  94. };