yous / YousList

Block filter for advertisements, mainly on Korean sites
300 stars 34 forks source link

minitoon.net #9

Closed isreport closed 8 years ago

isreport commented 8 years ago

컨텐츠 페이지에서 애드블록을 해제해 주세요 메세지가 나오는데 ublock origin 사용시 밑줄을 filter에 추가해 주니 해결되었습니다.

minitoon.net/js/adblockblock.js

@yous 님 필터에 재차 감사드립니다.

yous commented 8 years ago

안녕하세요, 제보 감사드립니다. 혹시 uBlock Origin에서 YousList를 업데이트 한 후에 다시 테스트해 주실 수 있으신가요? 업데이트 후에도 해당 메시지가 나오는 URL을 하나만 알려주시면 테스트 후에 업데이트 할 수 있을 것 같습니다. 감사합니다.

isreport commented 8 years ago

Purge, Update 후 ! Version: 20160316 으로 테스트해 보았는데 해제해 주세요 메세지가 그대로 나오는 것 같습니다. 컨텐츠 url 대부분에 해당하는 문제로 보이는데 예를 들어

http://minitoon.net/bbs/board.php?bo_table=9999&wr_id=1437

같은 url입니다.

yous commented 8 years ago

테스트 URL 감사합니다. 혹시 'EasyList'나 'Fanboy+Easylist-Merged Ultimate List‎'를 같이 사용하고 계신가요? 해당 필터에 정의되어 있는 숨기기 규칙 때문에 adblockblock이 발동되는 것 같습니다. 일단 minitoon.net/js/adblockblock.js를 규칙에 추가해도 문제 없는 것 같아 추가해서 업데이트 했습니다. 한번 확인해 주세요. 다시 한 번 제보 감사드립니다.

fenslett commented 8 years ago

해당 광고 차단 확인했습니다. easylist1

여담이지만, adblockblock.js을 확인해 본 결과

(생략)
var FuckAdBlock = function(options) {
    this._options = {
            (생략),
            baitClass:          'pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links',
            baitStyle:          'width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;'
        };

baitClass(미끼클래스)를 놓은 다음, 해당 미끼가 사라지면 감지하는 방식인 듯 합니다.

yous commented 8 years ago

맞습니다. 사이트의 <script src="http://minitoon.net/js/adblockblock.js"></script> 아래에 있던 코드 때문에 adblockblock.js를 막을지 말지 고민했습니다.


function adBlockDetected() {
            var element = document.getElementById("anti_adblock");
            element.innerHTML = '<div style="text-align:center; padding-top:30px; margin:0 auto;"><p style="font-size:18px;">광고 차단 플러그인 (애드블록 등)을 해제해야 컨텐츠를 볼 수 있습니다.</p><img src="http://minitoon.net/img/anti_adblock.jpg" border="0"></div>';
}
function adBlockNotDetected() {
}
if(typeof fuckAdBlock === 'undefined') {
adBlockDetected();
} else {
fuckAdBlock.onDetected(adBlockDetected).onNotDetected(adBlockNotDetected);
}
function checkAgain() {
document.getElementById('adb-actived').style.display = 'none';
document.getElementById('adb-not-actived').style.display = 'none';
fuckAdBlock.onDetected(adBlockDetected).onNotDetected(adBlockNotDetected);
setTimeout(function() {
fuckAdBlock.check();
}, 500);
}

if(typeof fuckAdBlock === 'undefined') 부분이 통과해서 adBlockDetected()가 실행될 거라고 생각했는데, 저 코드가 실행될 때엔 var element = document.getElementById("anti_adblock");의 결과가 null인 것 같아 실제로는 adBlockDetected()가 실행되지 않았습니다.

isreport commented 8 years ago

closed 되었는데 커멘트를 남겨도 될 지 모르겠습니다. 사용중인 장소마다 PC가 달라 설정이 브라우저마다 다를 지도 모르지만, 기본적으로 YousList 추가 외에 기본 설정을 변경한 점은 없습니다. 기본 설정을 보니 Multipurpose 아래에 Fanboy+Easylist-Merged Ultimate List‎는 해당이 없고 Ads그룹의 EasyList가 기본으로 설정되어 있군요. YousList의 업데이트 덕분에 문제는 해결되었습니다. 감사합니다.

yous commented 8 years ago

확인 감사합니다. 기본 설정으로 켜져 있는 EasyList가 맞습니다. 거기 있는 필터 때문에 adblockblock이 발동되는 것 같습니다.