您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
поддержка изображений для Multiplayer Piano.
- // ==UserScript==
- // @name MPP Image Support
- // @namespace http://tampermonkey.net/
- // @version 2.0
- // @license MIT
- // @description поддержка изображений для Multiplayer Piano.
- // @author gtnntg
- // @match https://multiplayerpiano.net/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- // Функция для проверки, является ли ссылка изображением
- function isImageUrl(url) {
- const imageExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.webp'];
- return imageExtensions.some(ext => url.toLowerCase().endsWith(ext));
- }
- // Функция для обработки сообщений
- function processMessages() {
- // Находим все элементы <li>, которые еще не обработаны
- const messages = document.querySelectorAll('li:not([data-processed="true"])');
- messages.forEach(message => {
- const textElement = message.querySelector('.message');
- if (!textElement) return; // Если текстового элемента нет, пропускаем
- const content = textElement.textContent; // Получаем текст сообщения
- // Проверяем, содержит ли текст тег [img="url"]
- const imgTagRegex = /\[img="(.*?)"\]/;
- const match = content.match(imgTagRegex);
- if (match) {
- const url = match[1]; // Получаем URL из тега
- if (isImageUrl(url)) {
- // Создаем контейнер для изображения
- const imgContainer = document.createElement('div');
- imgContainer.style.marginTop = '10px';
- // Создаем элемент <img>
- const imgElement = document.createElement('img');
- imgElement.src = url;
- imgElement.alt = "Image";
- imgElement.style.maxWidth = "300px";
- imgElement.style.maxHeight = "300px";
- imgElement.style.display = "block";
- // Добавляем изображение в контейнер
- imgContainer.appendChild(imgElement);
- // Удаляем оригинальное текстовое сообщение
- textElement.remove();
- // Добавляем изображение в сообщение (в начало)
- message.appendChild(imgContainer);
- // Перемещаем контейнер с изображением в конец <li>
- message.appendChild(imgContainer);
- }
- }
- // Помечаем сообщение как обработанное
- message.setAttribute('data-processed', 'true');
- });
- }
- // Автоматическая обработка новых сообщений
- const observer = new MutationObserver(() => {
- processMessages(); // Запускаем обработку при добавлении новых сообщений
- });
- // Наблюдаем за изменениями в основном контейнере чата
- const chatContainer = document.querySelector('#chat'); // Укажи ID или класс контейнера чата
- if (chatContainer) {
- observer.observe(chatContainer, { childList: true, subtree: true });
- console.log("Tampermonkey скрипт для корректного размещения изображений активирован.");
- }
- })();