NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Chat and repository for Strada Fix // @namespace http://tampermonkey.net/ // @version 2025-02-26 // @description try to take over the world! // @author Liteqt // @match https://strada.one/progress // @icon https://www.google.com/s2/favicons?sz=64&domain=strada.one // @grant none // @copyright 2025, kseuoeu (https://openuserjs.org/users/kseuoeu) // @updateURL https://openuserjs.org/meta/kseuoeu/Chat_and_repository_for_Strada_Fix.meta.js // @license MIT // ==/UserScript== (function() { 'use strict'; let isCardModified = false; let timer; const delay = 250; function editElement(element) { if (isCardModified) { console.log('Карточка ссылок уже была изменена'); return; } let parentElement = element; while (parentElement && !parentElement.classList.contains('MuiGrid-root')) { parentElement = parentElement.parentElement; } if (parentElement && parentElement.classList.contains('MuiGrid-root')) { console.log('Найден родительский элемент:', parentElement); parentElement.innerHTML = ` <div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation1 MuiCard-root css-1v2oarz" style="height: 100%;"> <div class="MuiCardHeader-root css-1g4hjz4"> <div class="MuiCardHeader-content css-11qjisw"> <span class="MuiTypography-root MuiTypography-h5 MuiCardHeader-title css-1g3izzu"> <div class="MuiBox-root css-70qvj9"> <h5 class="MuiTypography-root MuiTypography-h5 css-1jp3ios">Полезные ссылки</h5> <svg class="MuiSvgIcon-root MuiSvgIcon-colorSecondary MuiSvgIcon-fontSizeMedium css-1tblpw8" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="InsertLinkIcon"> <path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path> </svg> </div> </span> </div> </div> <div class="MuiCardContent-root css-zugfr9"> <div class="MuiBox-root css-j7qwjs"> <div class="MuiBox-root css-0"> <p class="MuiTypography-root MuiTypography-body1 css-17vjrw7">Репозиторий</p> <div class="MuiBox-root css-19idom"style="margin-bottom: 8px;"> <a class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1sirjv0" href="https://github.com/StradaOne/FR9" target="_blank">GitHub</a> </div> <div class="MuiBox-root css-19idom"style="margin-bottom: 8px;"> <a class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1sirjv0" href="https://github.com/StradaOne/FR9/issues?q=is%3Aopen+is%3Apr+author%3A%40me" target="_blank">Мои пуллы</a> </div> <div class="MuiBox-root css-19idom"style="margin-bottom: 8px;"> <a class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1sirjv0" href="https://github.com/StradaOne/FR9/issues?q=is%3Aopen+is%3Apr+-author%3A%40me" target="_blank">Последние пуллы (исключая мои)</a> </div> </div> </div> </div> </div> `; isCardModified = true; } else { console.log('Родительский элемент с классом "MuiGrid-root" не найден!'); } } function handleMutation() { clearTimeout(timer); const element = Array.from(document.querySelectorAll('h5')).find(el => el.textContent.trim() === 'Полезные ссылки'); if (!element) { isCardModified = false; console.log('Элемент "Полезные ссылки" пропал, флаг сброшен.'); } timer = setTimeout(() => { if (element) { console.log('Элемент "Полезные ссылки" найден!'); editElement(element); } }, delay); } const containers = document.querySelectorAll('.MuiContainer-root'); const secondContainer = containers[1]; const observer = new MutationObserver((mutationsList, observer) => { for (const mutation of mutationsList) { if (mutation.type === 'childList' || mutation.type === 'subtree') { handleMutation(); } } }); observer.observe(secondContainer, { childList: true, subtree: true }); })();