Добавляет время поста в заголовок *вкладки*
Скрипт предназначен для работы на сайте boosty.to. Его основная задача — модификация заголовка вкладки браузера (<title>) при просмотре страницы конкретного поста. Скрипт извлекает дату и время публикации поста, форматирует их в стандартизированный вид (ГГГГ.ММ.ДД ЧЧ ММ) и добавляет эту информацию в начало заголовка. Это обеспечивает более информативное название вкладки, что особенно полезно при одновременной работе с несколькими постами.
Скрипт построен на архитектуре двух наблюдателей (MutationObserver), которую можно описать как "Искатель" и "Защитник".
Парсинг и форматирование даты (parseBoostyDate):
ГГГГ.ММ.ДД ЧЧ ММ (например, 2024.10.15 14 30), используя внутренний словарь для конвертации названий месяцев.Наблюдатель за контентом ("Искатель" - startBodyObserver):
MutationObserver, который следит за изменениями во всем document.body. Он необходим для работы в среде одностраничного приложения (SPA), коим является Boosty.<h1> (включая заголовок в блоке платной подписки).<h1> найден и data-post-id изменился (т.е. пользователь перешел на новый пост), скрипт:
getPostTime) и заголовок (h1Title.textContent).parseBoostyDate.currentFormattedTitle (например, "2024.10.15 14 30 - Название Поста").document.title в это новое значение.startTitleObserver) для охраны этого нового заголовка.<h1> не найден (т.е. пользователь ушел со страницы поста в ленту или настройки), "Искатель" отключает "Защитника" и сбрасывает внутреннее состояние (currentPostId = null), возвращая управление заголовком вкладки сайту.Наблюдатель за заголовком ("Защитник" - startTitleObserver):
MutationObserver, который следит исключительно за тегом <title>.document.title был изменен не на то значение, которое установил скрипт (currentFormattedTitle), он немедленно и принудительно возвращает document.title к сохраненному значению. Это гарантирует, что отформатированный заголовок остается во вкладке до тех пор, пока пользователь не покинет страницу поста.boosty.to и откройте страницу любого автора.MutationObserver является ключевой особенностью. "Искатель" (bodyObserver) реагирует на навигацию в SPA, а "Защитник" (titleObserver) борется с попытками SPA сбросить установленное скриптом значение.currentPostId, currentFormattedTitle) как простую машину состояний, чтобы понимать, находится ли он в данный момент на странице поста и нужно ли ему "защищать" заголовок.@grant none: Скрипт работает в режиме @grant none, что означает его выполнение в контексте самой страницы. Это позволяет ему эффективно отслеживать изменения DOM и document.title без задержек.Скрипт не генерирует видимый контент на странице. Его единственный результат — изменение текста во вкладке браузера.
Если оригинальный заголовок вкладки Boosty:
Настоящая история | Авторский блог