您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Установка своего аватара на Табуне!
当前为
// ==UserScript== // @name TabunAva Reborn (upgrade from TabunAva) // @namespace http://tampermonkey.net/ // @version 0.2 // @description Установка своего аватара на Табуне! // @author Kujivunia или Niko_de_Andjelo // @match https://tabun.everypony.ru/* // @grant none // @license MIT // ==/UserScript== // Я не умею писать скрипты, поэтому "TabunAva" являет собой вольную переделку НЕ моего "Tabun Swarm" https://greasyfork.org/ru/scripts/400907-tabun-swarm //IDENTICON: https://avatars.dicebear.com/styles/identicon //Замена аватарок var Avatar="https://cdn.everypony.ru/static/local/avatar_" ;//Сокращение ссылок на аватарки var identicon = "https://avatars.dicebear.com/api/identicon/:" var identiconParams = ".svg?scale=100&size=24" var avaPost = "https://tabun.everypony.ru/blog/uniblog/203681.html"; var cInf = document.getElementsByClassName('comment-info'); var comments = document.getElementsByClassName('comment'); var dictUserAva = new Object(); fetch(avaPost) .then((response) => { return response.text(); }) .then((data) => { var parser = new DOMParser(); var htmlDocument = parser.parseFromString(data, "text/html"); var comments = htmlDocument.getElementsByClassName('comment'); //*****************************Выше была какая-то чёрная магия************************************ //Собираю аватарки из ава-поста. [].forEach.call(comments,function(element) { if (element.getElementsByClassName('comment-author')[0].children[0].children[0].src == (Avatar + 'male_24x24.png') || element.getElementsByClassName('comment-author')[0].children[0].children[0].src == (Avatar + 'female_24x24.png')){ var temp = element.getElementsByClassName('comment-author'); var name = temp[0].children[1].innerText; var tempComment = element.getElementsByClassName('comment-content')[0]; if (tempComment.getElementsByClassName('text')[0].getElementsByTagName('img')[0] != null){ if (tempComment.getElementsByClassName('text')[0].getElementsByTagName('img')[0].hasAttribute('src')){ var tempAvaLink = tempComment.getElementsByClassName('text')[0].getElementsByTagName('img')[0].getAttribute('src'); dictUserAva[name]=tempAvaLink; } } } }); console.log(dictUserAva); //Выставляем аватарки [].forEach.call(cInf,function(element) { if (element.getElementsByClassName('comment-author')[0].children[0].children[0].src == (Avatar + 'male_24x24.png') || element.getElementsByClassName('comment-author')[0].children[0].children[0].src == (Avatar + 'female_24x24.png')){ var temp = element.getElementsByClassName('comment-author'); var name = temp[0].children[1].innerText; if (dictUserAva[name]) { temp[0].children[0].children[0].src = dictUserAva[name]; } else { temp[0].children[0].children[0].src = identicon + name + identiconParams; } } }); function change_avatar() { //Отдельная функция для замены аватарок у новых комментариев. [].forEach.call(cInf,function(element) { if (element.getElementsByClassName('comment-author')[0].children[0].children[0].src == (Avatar + 'male_24x24.png') || element.getElementsByClassName('comment-author')[0].children[0].children[0].src == (Avatar + 'female_24x24.png')){ var temp = element.getElementsByClassName('comment-author'); var name = temp[0].children[1].innerText; if (dictUserAva[name]) { temp[0].children[0].children[0].src = dictUserAva[name]; } else { temp[0].children[0].children[0].src = identicon + name + identiconParams; } } }); } document.getElementById('count-comments').addEventListener('DOMSubtreeModified', function() { //Смотрит число комментариев и при изменении запускает смену аватарок. Без этого новые комментарии будут с обычными аватарками. change_avatar() }); });