Boosty Image URL Cleaner

Удаление параметров mw и mh из ссылок на изображения на Boosty, если не указано "&croped", позволяет загружать изображения-превью в оригинальном разрешении

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
Идзуми Сэна
日安装量
0
总安装量
40
评分
0 0 0
版本
1.11
创建于
2024-07-24
更新于
2025-10-28
大小
9.2 KB
许可证
暂无
适用于

Скрипт предназначен для работы на сайте boosty.to. Его основная задача — удаление параметров mw (max-width) и mh (max-height) из URL-адресов изображений, загружаемых с серверов Boosty.

Это принуждает браузер загружать оригинальные, полноразмерные версии изображений вместо сжатых или масштабированных "превью", которые Boosty генерирует с помощью этих параметров. Скрипт имеет важное исключение: он не модифицирует URL, если в них присутствует параметр croped, так как это, как правило, кадрированные изображения (например, аватары), которые должны оставаться в заданном размере.

Ключевые функции

  1. cleanURL(url):

    • Это ядро скрипта. Функция принимает URL изображения и анализирует его строку запроса (query string).
    • Логика: С помощью URLSearchParams она проверяет наличие параметров. Если параметр croped (в любом виде, например, &croped или croped=) отсутствует в строке, функция удаляет параметры mw и mh.
    • Кэширование: Функция использует Map (urlCleanCache) для кэширования результатов. Если один и тот же URL (например, аватар в 10 комментариях) запрашивается повторно, функция мгновенно возвращает очищенный URL из кэша, избегая повторной обработки.
  2. processImage(node):

    • Эта функция вызывается для каждого потенциального DOM-элемента изображения.
    • Фильтрация: Она проверяет, что узел является тегом <img>, его src ведет на boosty.to/image, и он еще не был обработан (нет атрибута data-cleaned="true").
    • Маркировка: Немедленно устанавливает data-cleaned="true", чтобы предотвратить повторную обработку этого же элемента.
    • Обработка src: Вызывает cleanURL для основного атрибута src изображения.
    • Обработка srcset: Корректно обрабатывает адаптивные изображения. Атрибут srcset (содержащий несколько URL с дескрипторами размера, "url1 100w, url2 200w") разбирается, каждый URL в нем очищается через cleanURL, а затем srcset собирается обратно с сохранением дескрипторов.
  3. MutationObserver (Наблюдатель DOM):

    • Скрипт инициализирует MutationObserver для отслеживания всего document.body на предмет добавления новых дочерних узлов (childList: true, subtree: true).
    • Адаптация к SPA: Это позволяет скрипту корректно работать на boosty.to, который является одностраничным приложением (SPA). Когда пользователь прокручивает ленту ("бесконечная прокрутка") или открывает комментарии, новые посты и изображения добавляются в DOM динамически.
    • MutationObserver перехватывает эти добавления, находит в них новые изображения (node.querySelectorAll) и отправляет их в processImage на обработку.
  4. Первоначальный запуск:

    • Помимо MutationObserver (который отслеживает будущие изменения), скрипт при запуске выполняет document.querySelectorAll(...).forEach(processImage).
    • Это необходимо для обработки всех изображений, которые уже присутствуют на странице в момент инициализации скрипта.

Как использовать

Скрипт полностью автоматизирован.

  1. Перейдите на любую страницу сайта boosty.to.
  2. Скрипт автоматически найдет все релевантные изображения (как уже загруженные, так и появляющиеся при прокрутке) и модифицирует их URL "на лету".
  3. В результате браузер будет отображать изображения в их максимальном, оригинальном разрешении, игнорируя ограничения mw и mh.

Особенности

  • Высокая производительность: Ключевой особенностью является двойная оптимизация. Использование Map (urlCleanCache) для кэширования URL-адресов и data-attribute (data-cleaned) для маркировки обработанных DOM-узлов резко снижает нагрузку, особенно на страницах с большим количеством повторяющихся изображений (например, в комментариях).
  • Корректная обработка srcset: Скрипт не просто меняет src, но и грамотно парсит srcset, что критически важно для корректной работы на современных адаптивных сайтах.
  • Устойчивость к SPA: Применение MutationObserver гарантирует, что скрипт будет работать не только при первоначальной загрузке, но и при любой динамической подгрузке контента на сайте.
  • Контекст @grant none: Скрипт работает в контексте страницы, что обеспечивает ему прямой и быстрый доступ к DOM и URLSearchParams без необходимости использования GM_* API.