1(function () { 2 'use strict'; 3 4 var targetTexts = [ 5 'ãã®ã¨ã漫ç»ã®ç¶ãã¯ãã¡ã', 6 'ãã®ã¨ã漫ç»ã®ç¶ãã¯ã³ãã©' 7 ]; 8 9 function normalizeText(value) { 10 return String(value || '') 11 .replace(/[â¶â·âºâ]/g, '') 12 .replace(/[\s\u3000]+/g, '') 13 .trim(); 14 } 15 16 function isTargetText(value) { 17 var normalized = normalizeText(value); 18 19 return targetTexts.some(function (text) { 20 return normalized === normalizeText(text); 21 }); 22 } 23 24 function removeLegacyText(root) { 25 var scope = root || document; 26 var cards = scope.querySelectorAll( 27 '.post-box, .grid-item, .post_list, .p-postList__item, .p-postList__article, article' 28 ); 29 30 cards.forEach(function (card) { 31 var elements = card.querySelectorAll('a, p, span, div'); 32 33 elements.forEach(function (element) { 34 if (element.classList.contains('fanza-category-affiliate-button') || 35 element.closest('.fanza-category-affiliate-button-wrap')) { 36 return; 37 } 38 39 if (!isTargetText(element.textContent)) { 40 return; 41 } 42 43 if (element.querySelector('img, picture, video, iframe')) { 44 return; 45 } 46 47 var removable = element; 48 49 if (element.tagName === 'A' && element.parentElement && 50 isTargetText(element.parentElement.textContent) && 51 element.parentElement.children.length === 1) { 52 removable = element.parentElement; 53 } 54 55 removable.remove(); 56 }); 57 58 var walker = document.createTreeWalker(card, NodeFilter.SHOW_TEXT); 59 var textNodes = []; 60 var node; 61 62 while ((node = walker.nextNode())) { 63 textNodes.push(node); 64 } 65 66 textNodes.forEach(function (textNode) { 67 if (!isTargetText(textNode.nodeValue)) { 68 return; 69 } 70 71 var parent = textNode.parentElement; 72 73 if (parent && !parent.closest('.fanza-category-affiliate-button-wrap')) { 74 textNode.remove(); 75 } 76 }); 77 }); 78 } 79 80 function runCleanup() { 81 removeLegacyText(document); 82 } 83 84 if (document.readyState === 'loading') { 85 document.addEventListener('DOMContentLoaded', runCleanup); 86 } else { 87 runCleanup(); 88 } 89 90 window.addEventListener('pageshow', runCleanup); 91}());
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.