🏠 返回首頁 

Greasy Fork is available in English.

Выделение комментариев от верифицированных пользователей и модераторов на Youtube трансляциях

Показывает (а также записывает в лог) комментарии от верифицированных пользователей и модераторов на Youtube трансляциях.

// ==UserScript==
// @name         Youtube live verified comments highlighter
// @name:ru      Выделение комментариев от верифицированных пользователей и модераторов на Youtube трансляциях
// @namespace    http://tampermonkey.net/
// @version      0.8
// @description  Shows (also logs) youtube live comments of verified and moderators persons
// @description:ru  Показывает (а также записывает в лог) комментарии от верифицированных пользователей и модераторов на Youtube трансляциях.
// @author       dark1103
// @include      https://www.youtube.com/*
// @icon         https://www.google.com/s2/favicons?domain=youtube.com
// @grant        none
// @require http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==
(function() {
'use strict';
var verified = true;
var moderator = true;
var owner = true;
function setup(){
const style = document.createElement('style');
style.innerHTML = `
#notification_live_chat {
z-index:1000000!important;
position:fixed;
top:0px;
width:100%;
text-align:center;
font-weight:normal;
font-size:14px;
color:black;
background-color:lightgray;
padding:5px;
}
#notification_live_chat span.dismiss {
border:2px solid #FFF;
padding:0 5px;
cursor:pointer;
float:right;
margin-right:10px;
}
#notification_live_chat a {
color:white;
text-decoration:none;
font-weight:bold
}
#notification_live_chat img {
width:24px;
vertical-align: middle;
margin-top: -7px;
}
`;
document.head.appendChild(style);
const node = $('<div id="notification_live_chat" style="display: none;"><span class="text"></span><span class="dismiss"><a title="dismiss this notification">x</a></span></div>');
node.appendTo(document.body);
}
var to = undefined;
function notify(str){
if(to !== undefined){
clearTimeout(to);
}
const node = $('#notification_live_chat');
node.fadeIn("slow").find('.text').html(str);
node.find(".dismiss").click(function(){
$(node).fadeOut("fast");
});
to = setTimeout(function(){
$(node).fadeOut("slow");
}, 12000);
}
setup();
var target = document.querySelector('yt-live-chat-app')
const config = { childList: true, subtree: true };
const callback = function(mutationsList, observer) {
for(const mutation of mutationsList) {
var target = $(mutation.target);
if(target.prop("tagName") === 'YT-LIVE-CHAT-TEXT-MESSAGE-RENDERER'){
var count = 0;
if(verified){
count += target.find('yt-live-chat-author-badge-renderer[type="verified"]').length;
}
if(moderator){
count += target.find('yt-live-chat-author-badge-renderer[type="moderator"]').length;
}
if(owner){
count += target.find('.owner').length;
}
if(count > 0){
var author = target.find('#author-name').text();
var data = target.find('#message').html();
var text = target.find('#message').text();
//notify(author + ": " + text);
notify('<span style="color: hsl(225, 84%, 66%);font-weight:bold;margin-right:5px">' + author + '</span><span>' + data + '</span');
console.log(author + ": " + text);
}
}
}
};
const observer = new MutationObserver(callback);
observer.observe(target, config);
})();