Boosty Image URL Cleaner

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

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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.