F95Zone Enhanced Page Loader

Раскрывает спойлеры, загружает изображения, нажимает "загрузить еще", проходит страницы-маски и ОЧИЩАЕТ ЗАГОЛОВОК, добавляя в него инфо-список

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

作者
Идзуми Сэна
日安装量
0
总安装量
0
评分
0 0 0
版本
0.1
创建于
2025-11-04
更新于
2025-11-04
大小
14.5 KB
许可证
暂无
适用于

Скрипт представляет собой комплексный инструмент (enhancer) для сайта f95zone.to. Его основная цель — автоматизация рутинных действий пользователя для значительного ускорения просмотра и взаимодействия с контентом.

Скрипт выполняет две основные функции в зависимости от типа страницы:

  1. На страницах-масках (interstitial): Автоматически обнаруживает и нажимает ссылку "Продолжить", пропуская страницу-посредник.
  2. На страницах тем (/threads/): Активирует полный набор улучшений:
    • Автоматически раскрывает все спойлеры на странице.
    • Принудительно загружает все "ленивые" (lazy-load) изображения.
    • Автоматически нажимает кнопки "загрузить еще" (например, для подгрузки старых комментариев).
    • Очищает заголовок вкладки браузера от суффикса | F95zone и добавляет в него информативный список тегов, взятых со страницы.

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

  1. runInitialScan() (Точка входа и маршрутизация):

    • Это главная функция, запускаемая после загрузки страницы (window.load).
    • Она выполняет "маршрутизацию": сначала вызывает clickContinueLink().
    • Если clickContinueLink() возвращает true (страница-маска пройдена), выполнение завершается.
    • Если false (это не маска) и URL содержит /threads/, запускается processPageElements() и активируются два наблюдателя (MutationObserver).
  2. processPageElements() (Функция-оркестратор):

    • Вызывается на страницах тем. Она поочередно запускает все модули улучшения:
    • expandSpoilers(): Находит все элементы .bbCodeSpoiler-button, которые еще не были обработаны (нет data-processed), нажимает на них и помечает их, чтобы избежать повторных кликов.
    • loadLazyImages(): Находит все img.lazyload (без data-processed), считывает URL из data-src и немедленно присваивает его в src, принудительно загружая изображение.
    • clickLoadMoreButton(): Находит a.js-loadMore (без data-processed) и нажимает на нее для подгрузки динамического контента.
    • cleanPageTitle(): Вызывает функцию очистки и форматирования заголовка.
  3. cleanPageTitle() и getListItemsAsText() (Модификация заголовка):

    • Это двухэтапный процесс. Сначала getListItemsAsText() находит все теги темы (a.tagItem внутри .listInline--bullet) и собирает их в единую строку через запятую.
    • Затем cleanPageTitle() при первом запуске определяет "чистый" базовый заголовок, находя и отсекая суффиксы (например, | F95zone).
    • После этого она формирует новый заголовок, объединяя "чистый" базовый заголовок и строку тегов.
    • Результат сохраняется в lastSetTitle.
  4. contentObserver (Наблюдатель за контентом):

    • Экземпляр MutationObserver, который следит за document.body на предмет добавления новых узлов (childList: true, subtree: true).
    • Когда clickLoadMoreButton() (или другой скрипт) добавляет на страницу новый контент (например, пачку комментариев), этот наблюдатель срабатывает.
    • Он использует 500-миллисекундную задержку (debounce) и повторно запускает processPageElements(), чтобы раскрыть спойлеры и загрузить изображения в новом контенте.
  5. titleObserver (Наблюдатель за заголовком):

    • Второй, отдельный MutationObserver, который следит только за тегом <title>.
    • Назначение: Борьба со скриптами сайта. SPA-фреймворки часто "восстанавливают" заголовок вкладки при навигации.
    • Логика: Если наблюдатель замечает, что document.title изменился и не равен тому, что установил наш скрипт (lastSetTitle), он принудительно вызывает cleanPageTitle() заново, восстанавливая кастомный заголовок.

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

  1. Установите UserScript в Violentmonkey или аналогичный менеджер.
  2. Перейдите на сайт f95zone.to.
  3. При переходе по внешним ссылкам скрипт будет автоматически нажимать "Продолжить" на страницах-масках.
  4. При открытии любой страницы темы (/threads/):
    • Все спойлеры на странице мгновенно раскроются.
    • Все изображения загрузятся сразу, без необходимости прокрутки.
    • Кнопки "загрузить еще" (если они есть) будут нажаты автоматически.
    • Заголовок вкладки в браузере изменится, отобразив теги темы (например, "VNs, Ren'Py, Male Protagonist").

Особенности

  • Двойная архитектура MutationObserver: Ключевая особенность скрипта. Один наблюдатель (contentObserver) отвечает за новый контент на странице, а второй (titleObserver) "защищает" заголовок вкладки от сброса скриптами сайта.
  • Идемпотентность: Использование data-processed="true" гарантирует, что скрипт не будет бесконечно нажимать на одни и те же спойлеры или кнопки при каждом срабатывании MutationObserver.
  • Контекст @grant none: Скрипт выполняется в контексте страницы, что дает ему прямой доступ к DOM и document.title для максимальной скорости работы.
  • @run-at document-end: Скрипт начинает работу до полной загрузки всех ресурсов (как window.load), но после построения DOM, что позволяет ему быстро обрабатывать статический контент и устанавливать наблюдателей.
  • Оптимизация заголовка: Логика очистки заголовка надежно отделяет "базовое" название темы от суффикса сайта и обогащает его полезной информацией (тегами).

Пример выходных данных

Скрипт модифицирует DOM "на лету" и не генерирует файлов. Основным видимым результатом (помимо раскрытия контента) является изменение заголовка вкладки.