Skip to content

Instantly share code, notes, and snippets.

@Qofar
Last active September 30, 2016 09:12
Show Gist options
  • Save Qofar/27419bc1a1734434cf1a41be190d5a2e to your computer and use it in GitHub Desktop.
Save Qofar/27419bc1a1734434cf1a41be190d5a2e to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name AbemaTV Tweak
// @include https://abema.tv/*
// @grant GM_addStyle
// @license MIT License
// @version 1.3.0
// ==/UserScript==
(function(){
GM_addStyle(
"body{line-height:1.0; font-family:sans-serif;}" +
"div[class^='styles__video'], video[class^='styles__video'] {width:1280px; left:200px;}" +
"div[class^='TVContainer__ad-reserve-button___'], div[class^='TVContainer__twitter-panel___']{display:none;}" +
"button[class^='styles__continue-btn___']{display:none;}" +
"div[class*='styles__etc-modules___']{display:none;}" +
"form[class*='styles__comment-form___'],div[class^='styles__comment-list-wrapper___']{background-color:#8c8c8c;}" +
"div[class*='styles__item___']{padding-top:0px; padding-bottom:0px; border-top:1px solid #545454; background-color:#8c8c8c; color:#000000;}" +
"p[class^='styles__message___']{margin-top:3px; margin-bottom:3px; color:#000000;}" +
"p[class^='styles__time___']{margin-top:3px; margin-bottom:3px; color:#777;}" +
".newcomment{border-left:2px solid #ffff00;}"
);
const STYLE_NEWCOMMENT = "newcomment";
const NG_WORD = [
// 絵文字
"\ud83c[\udf00-\udfff]", // U+1F300 to U+1F3FF
"\ud83d[\udc00-\ude4f]", // U+1F400 to U+1F64F
"\ud83d[\ude80-\udeff]", // U+1F680 to U+1F6FF
// "\ud7c9[\ude00-\udeff]", // U+2600, U+28FF
"[\u2600-\u27BF]", // U+2600, U+28FF
"[\uAC00-\uD7AF]",
"うんこ",
"ウンコ",
"うんち",
"ウンチ",
"ちんこ",
"チンコ",
"ガイジ",
"アンチ",
"パクリ",
"パクり",
"ぱくり",
"淫夢",
"悲報",
"速報",
"俺氏",
"荒ら",
"黒乳首",
"これマジ",
"あのさぁ",
"ライバー",
"ああああああああああ",
"おおおおおおおおおお",
"偏差値",
"カス共",
"スルースキル",
"ㄘ",
"ん?",
"クソ",
"糞",
"野獣",
"俺以外",
"俺の",
"厨コメ",
"アニ豚",
"アニオタ",
"キモオタ",
"自演",
"民度",
"低能",
"能無",
"文句",
"クズ",
"屑",
"にわか",
"ニワカ",
"消えろ",
"ガキ",
"キッズ",
"オタクども",
"オタク共",
"コメント",
"欄",
"↓",
"↑",
"www",
"ゼロから",
"リゼロ",
"りぜろ",
"リベロ",
"「",
"「",
"????",
];
var REGEXP_NG_WORD;
function newRegExp() {
var userdata = window.localStorage.abematv_tweak;
REGEXP_NG_WORD = new RegExp(NG_WORD.join("|") + (userdata && userdata !== "" ? "|" + userdata : ""));
}
var ENABLE_NG_WORD = false;
var observer = null;
var commentscount = 0;
var oldnewcount = 0;
// 画面ダブルクリックでNGワード有効無効切り替え
window.addEventListener("dblclick", function() {
if(ENABLE_NG_WORD === false) {
ENABLE_NG_WORD = true;
document.querySelector("textarea[class^=styles__opened-textarea___]").placeholder = "NG有効";
newRegExp();
if(observer === null) {
var target = document.querySelector("div[class^='styles__comment-list-wrapper___']");
if(target === null) return;
observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if(mutation.nextSibling !== null && mutation.nextSibling.className.indexOf("styles__container___") === 0) {
var comments = document.querySelectorAll("div[class*='styles__item___']");
var newcount = comments.length - commentscount;
if(commentscount !== comments.length) {
commentscount = comments.length;
oldnewcount = newcount;
}
if(mutation.addedNodes.length === 0) {
newcount = oldnewcount;
}
for(var i = 0; i < comments.length; i++) {
if(comments[i].className.indexOf(STYLE_NEWCOMMENT) !== -1) {
if(i < newcount) {
} else {
comments[i].classList.remove(STYLE_NEWCOMMENT);
}
} else {
if(i < newcount) {
comments[i].classList.add(STYLE_NEWCOMMENT);
}
}
if(ENABLE_NG_WORD === false) continue;
var text = comments[i].firstChild.textContent;
if(text.length > 45 || REGEXP_NG_WORD.test(text)) {
// console.log(text);
comments[i].style.display = "none";
} else if (comments[i].style.display === "none") {
comments[i].style.display = "";
}
}
}
});
});
var config = { childList: true, subtree: true };
observer.observe(target, config);
}
} else {
ENABLE_NG_WORD = false;
document.querySelector("textarea[class^=styles__opened-textarea___]").placeholder = "NG無効";
var comments = document.querySelectorAll("div[class*='styles__item___']");
for(var i = 0; i < comments.length; i++) {
if(comments[i].style.display === "none") {
comments[i].style.display = "";
}
}
}
}, false);
// マウスホイールでチャンネル変更無効
var mousewheelevent = "onwheel" in document ? "wheel" : "onmousewheel" in document ? "mousewheel" : "DOMMouseScroll";
window.addEventListener(mousewheelevent, function(e) {
e.stopPropagation();
}, true);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment