ещё один скрипт, который восстанавливает отображение фонов CSS выгруженных на внешние сайты посредством замены ссылок (причём там даже похер - camo это или не camo ссылка)
// ==UserScript==
// @name Замена background-url в CSS (исправленная версия)
// @match https://shiki.one/*
// @match http://shiki.one/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Функция: находит url(...?url=...) и заменяет на декодированный URL
function decodeBackgroundUrl(cssText) {
return cssText.replace(
/url\s*\(\s*['"]?([^'")]*\?url=([^)'"]+))['"]?\s*\)/g,
(match, fullUrl, encodedPart) => {
try {
const decoded = decodeURIComponent(encodedPart);
// Сохраняем кавычки, если они были
const quote = match.includes('"') ? '"' : match.includes("'") ? "'" : '';
return `url(${quote}${decoded}${quote})`;
} catch (e) {
console.warn('Не удалось декодировать URL:', encodedPart, e);
return match; // Возвращаем исходный фрагмент при ошибке
}
}
);
}
// Обрабатываем все <style>-блоки на странице
document.querySelectorAll('style').forEach(styleEl => {
const cssText = styleEl.textContent;
const newCss = decodeBackgroundUrl(cssText);
if (newCss !== cssText) {
styleEl.textContent = newCss;
console.log('CSS обновлён:', styleEl);
}
});
// Дополнительно: проверяем, что фон применился
setTimeout(() => {
const bodyBg = window.getComputedStyle(document.body).backgroundImage;
if (bodyBg && bodyBg.includes('url')) {
console.log('Фон успешно применён:', bodyBg);
} else {
console.warn('Фон не отобразился. Проверьте:');
console.log('- Корректность URL:', document.body.style.backgroundImage);
console.log('- Наличие CORS-ограничений на изображение');
}
}, 1000);
})();