Boosty Title Modifier

Добавляет время поста в заголовок *вкладки*

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

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

Tendrás que instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Tendrás que instalar una extensión como Tampermonkey antes de poder instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

Autor
Идзуми Сэна
Instalaciones diarias
0
Instalaciones totales
15
Calificaciones
0 0 0
Versión
0.45
Creado
24/12/2023
Actualizado
4/11/2025
Tamaño
15,2 KB
Licencia
Desconocida
Funciona en

Скрипт предназначен для работы на сайте boosty.to. Его основная задача — модификация заголовка вкладки браузера (<title>) при просмотре страницы конкретного поста. Скрипт извлекает дату и время публикации поста, форматирует их в стандартизированный вид (ГГГГ.ММ.ДД ЧЧ ММ) и добавляет эту информацию в начало заголовка. Это обеспечивает более информативное название вкладки, что особенно полезно при одновременной работе с несколькими постами.

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

Скрипт построен на архитектуре двух наблюдателей (MutationObserver), которую можно описать как "Искатель" и "Защитник".

  1. Парсинг и форматирование даты (parseBoostyDate):

    • Вспомогательная функция, которая принимает строковое представление даты, используемое на Boosty (например, "15 окт 2024, в 14:30").
    • Она преобразует эту строку в единый числовой формат ГГГГ.ММ.ДД ЧЧ ММ (например, 2024.10.15 14 30), используя внутренний словарь для конвертации названий месяцев.
  2. Наблюдатель за контентом ("Искатель" - startBodyObserver):

    • Это основной MutationObserver, который следит за изменениями во всем document.body. Он необходим для работы в среде одностраничного приложения (SPA), коим является Boosty.
    • Обнаружение страницы поста: При любом изменении DOM, "Искатель" проверяет наличие первого поста в основной колонке и наличие у него заголовка <h1> (включая заголовок в блоке платной подписки).
    • Установка заголовка: Если <h1> найден и data-post-id изменился (т.е. пользователь перешел на новый пост), скрипт:
      1. Извлекает дату (getPostTime) и заголовок (h1Title.textContent).
      2. Форматирует дату с помощью parseBoostyDate.
      3. Формирует новую строку currentFormattedTitle (например, "2024.10.15 14 30 - Название Поста").
      4. Устанавливает document.title в это новое значение.
      5. Активирует "Защитника" (startTitleObserver) для охраны этого нового заголовка.
    • Сброс состояния: Если <h1> не найден (т.е. пользователь ушел со страницы поста в ленту или настройки), "Искатель" отключает "Защитника" и сбрасывает внутреннее состояние (currentPostId = null), возвращая управление заголовком вкладки сайту.
  3. Наблюдатель за заголовком ("Защитник" - startTitleObserver):

    • Это второй, вспомогательный MutationObserver, который следит исключительно за тегом <title>.
    • Проблема: В SPA-приложениях, фреймворк сайта (в данном случае Boosty) часто пытается "исправить" заголовок вкладки при малейших внутренних событиях, сбрасывая его к значению по умолчанию (например, "Название Поста - Имя Автора").
    • Решение: Как только "Защитник" обнаруживает, что document.title был изменен не на то значение, которое установил скрипт (currentFormattedTitle), он немедленно и принудительно возвращает document.title к сохраненному значению. Это гарантирует, что отформатированный заголовок остается во вкладке до тех пор, пока пользователь не покинет страницу поста.

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

  1. Перейдите на сайт boosty.to и откройте страницу любого автора.
  2. При просмотре ленты автора заголовок вкладки будет стандартным (например, "Блог Автора").
  3. Откройте любой пост (перейдите на его индивидуальную страницу).
  4. Скрипт немедленно сработает, найдет дату поста, и заголовок вкладки изменится.

Особенности

  • Архитектура "Искатель-Защитник": Использование двух MutationObserver является ключевой особенностью. "Искатель" (bodyObserver) реагирует на навигацию в SPA, а "Защитник" (titleObserver) борется с попытками SPA сбросить установленное скриптом значение.
  • Управление состоянием: Скрипт использует глобальные переменные (currentPostId, currentFormattedTitle) как простую машину состояний, чтобы понимать, находится ли он в данный момент на странице поста и нужно ли ему "защищать" заголовок.
  • Адаптивность к SPA: Скрипт корректно обрабатывает навигацию внутри сайта (переход из ленты на пост и обратно) без необходимости полной перезагрузки страницы.
  • @grant none: Скрипт работает в режиме @grant none, что означает его выполнение в контексте самой страницы. Это позволяет ему эффективно отслеживать изменения DOM и document.title без задержек.

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

Скрипт не генерирует видимый контент на странице. Его единственный результат — изменение текста во вкладке браузера.

Если оригинальный заголовок вкладки Boosty:

Настоящая история | Авторский блог