您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Показ аватарок пользователей, а также копирование ссылки на аватарку. Курсор на аватарку и Ctrl для её показа, или Ctrl+Shift для копирования URL ссылки в буфер обмена.
当前为
// ==UserScript== // @name DTF.ru. Show me avatars. // @namespace Violentmonkey Scripts // @match https://dtf.ru/* // @grant none // @version 1.1 // @author Tentacle Tenticals // @description Показ аватарок пользователей, а также копирование ссылки на аватарку. Курсор на аватарку и Ctrl для её показа, или Ctrl+Shift для копирования URL ссылки в буфер обмена. // @homepage https://github.com/TentacleTenticals/DTF-showAvatar // @license MIT // ==/UserScript== /* jshint esversion:6 */ (function() { 'use strict'; document.body.onload = function(){ console.log('Loaded!'); let mainFilter = new RegExp(`comment__avatar|content-header-author__avatar|subsite-card__avatar|v-header__cover|v-header-avatar|${document.querySelector("div[class='layout__right-column'] div[style^='background-image").className}`), commentsRightBarFilter = new RegExp(document.querySelector("div[class='layout__right-column'] div[style^='background-image").className), ctrlPressed, cPressed, shiftPressed, hovered, // Настройки максимального размера превью аватарки userAvatarSize = '400px', // Аватарка пользователя (комментарий) userProfileCoverSizeWidth = '990px', // Обложка пользователя в профиле (длина) userProfileCoverSizeHeight = '400px', // Обложка пользователя в профиле (ширина) userProfileAvatarSize = '400px', // Аватар пользователя в профиле authorAvatarSizeHeader = '400px', // Аватарка подсайта статьи (хеадер) authorAvatarSizeFooter = '400px', // Аватарка автора статьи (футер) userAvatarSizeCommentsPanel = '250px'; // Аватарка пользователя (боковая панель комментариев, aka "live-список" комментариев к статьям) document.addEventListener('mouseover', hover, true); function hover(s){ /* Аватарка пользователя в комментарии / Аватарка автора статьи в хеадере (шапке) / Аватарка автора статьи в футере (конце статьи) / Аватарка пользователя в комментарии в 'live-списке' комментариев справа */ if(s.target.classList.value.match(mainFilter) && !ctrlPressed && !shiftPressed) { hovered = s.target; }else if(s.target.classList.value.match(mainFilter) && ctrlPressed && !shiftPressed){ hovered = s.target; if(!document.querySelector(`div[class='avatar-preview']`)){ let img = new Image(); img.src = s.target.style.backgroundImage.replace(/.+(http.+)\/-\/scale.+/, '$1'); let avatarPreview = document.createElement('div'); avatarPreview.className = 'avatar-preview'; avatarPreview.style.position = 'fixed'; avatarPreview.style.zIndex = '1000'; if(s.target.classList.value.match(/comment__avatar/)){ avatarPreview.style.top = `${s.target.getBoundingClientRect().top + 20}px`; avatarPreview.style.left = `${s.target.getBoundingClientRect().left + 40}px`; img.style.maxWidth = userAvatarSize; img.style.maxHeight = userAvatarSize; }else if(s.target.classList.value.match(/v-header-avatar/)){ avatarPreview.style.top = `${s.target.getBoundingClientRect().top + 170}px` avatarPreview.style.left = `${s.target.getBoundingClientRect().left + 20}px` img.style.maxWidth = userProfileAvatarSize; img.style.maxHeight = userProfileAvatarSize; }else if(s.target.classList.value.match(/v-header__cover/)){ avatarPreview.style.top = `${s.target.getBoundingClientRect().top + 300}px` avatarPreview.style.left = `${s.target.getBoundingClientRect().left + 0}px` img.style.maxWidth = userProfileCoverSizeWidth; img.style.maxHeight = userProfileCoverSizeHeight; }else if(s.target.classList.value.match(/content-header-author__avatar/)){ avatarPreview.style.top = `${s.target.getBoundingClientRect().top + 25}px`; avatarPreview.style.left = `${s.target.getBoundingClientRect().left + 40}px`; img.style.maxWidth = authorAvatarSizeHeader; img.style.maxHeight = authorAvatarSizeHeader; }else if(s.target.classList.value.match(/subsite-card__avatar/)){ avatarPreview.style.top = `${s.target.getBoundingClientRect().top + 35}px`; avatarPreview.style.left = `${s.target.getBoundingClientRect().left + 50}px`; img.style.maxWidth = authorAvatarSizeFooter; img.style.maxHeight = authorAvatarSizeFooter; }else if(s.target.classList.value.match(commentsRightBarFilter)){ avatarPreview.style.top = `${s.target.getBoundingClientRect().top + 25}px`; avatarPreview.style.left = `${s.target.getBoundingClientRect().left + 30}px`; img.style.maxWidth = userAvatarSizeCommentsPanel; img.style.maxHeight = userAvatarSizeCommentsPanel; } img.style.borderRadius = '3px'; img.style.backgroundColor = 'rgb(0, 0, 0)'; img.style.boxShadow = '0px 0px 6px 2px black'; s.target.parentNode.appendChild(avatarPreview); document.querySelector(`div[class='avatar-preview']`).appendChild(img); } }else if(s.target.classList.value.match(mainFilter) && ctrlPressed && shiftPressed){ hovered = s.target; navigator.clipboard.writeText(s.target.style.backgroundImage.replace(/.+(http.+)\/-\/scale.+/, '$1')); if(!document.querySelector(`div[class='avatar-link-copyed']`)){ let alert = document.createElement('div'); alert.className = 'avatar-link-copyed'; alert.textContent = 'Ссылка на аватарку успешно скопирована'; alert.style.position = 'fixed'; alert.style.zIndex = '1000'; if(s.target.classList.value.match(/v-header-avatar|v-header__cover/)){ alert.style.top = `${s.target.getBoundingClientRect().top + 300}px`; alert.style.left = `${s.target.getBoundingClientRect().left + 0}px`; }else if(s.target.classList.value.match(/comment__avatar|content-header-author__avatar|subsite-card__avatar/)){ alert.style.top = `${s.target.getBoundingClientRect().top - 25}px`; alert.style.left = `${s.target.getBoundingClientRect().left + 20}px`; }else if(s.target.classList.value.match(commentsRightBarFilter)) { alert.style.top = `${s.target.getBoundingClientRect().top - 25}px`; alert.style.left = `${s.target.getBoundingClientRect().left + 20}px`; }else { alert.style.top = `${s.target.getBoundingClientRect().top + 300}px`; alert.style.left = `${s.target.getBoundingClientRect().left + 0}px`; } alert.style.background = 'rgb(165 235 189)'; alert.style.borderRadius = '3px'; alert.style.padding = '3px'; alert.style.color = 'rgb(0 0 0)'; alert.style.fontSize = '12px'; alert.style.lineHeight = '12px'; alert.style.fontWeight = '500'; alert.style.boxShadow = '0px 0px 6px 1px black'; s.target.parentNode.appendChild(alert); setTimeout(() => { if(document.querySelector(`div[class='avatar-link-copyed']`)){ document.querySelector(`div[class='avatar-link-copyed']`).remove(); } }, 2000); } }else if(!s.target.classList.value.match(mainFilter) && ctrlPressed && !shiftPressed){ hovered = false; hoveredTarget = false; if(document.querySelector(`div[class='avatar-preview']`)){ document.querySelector(`div[class='avatar-preview']`).remove(); } }else if(!s.target.classList.value.match(mainFilter) && ctrlPressed && !shiftPressed){ hovered = false; if(document.querySelector(`div[class='avatar-preview']`)){ document.querySelector(`div[class='avatar-preview']`).remove(); } }else if(!s.target.classList.value.match(mainFilter) && !ctrlPressed && !shiftPressed){ hovered = false; } } document.addEventListener('keydown', kDown, true) function kDown(s){ if(s.code === 'ControlLeft'||s.code === 'ControlRight'){ ctrlPressed = true; if(hovered){ hovered.dispatchEvent(new MouseEvent('mouseover', { view: window, bubbles: true, cancelable: true })); } }else if(s.code === 'ShiftLeft'||s.code === 'ShiftRight'){ shiftPressed = true; if(hovered){ hovered.dispatchEvent(new MouseEvent('mouseover', { view: window, bubbles: true, cancelable: true })); } } } document.addEventListener('keyup', kUp, true) function kUp(s){ if(s.code === 'ControlLeft'||s.code === 'ControlRight'){ ctrlPressed = false; }else if(s.code === 'ShiftLeft'||s.code === 'ShiftRight'){ shiftPressed = false; } if(document.querySelector(`div[class='avatar-preview']`)){ document.querySelector(`div[class='avatar-preview']`).remove(); } } } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址