Overview
Блюр запреток и маркеры на прогресс-баре для yoho.pw
Единственная цель — помогать зрителям и стримерам безопасно смотреть фильмы и сериалы на yoho.pw и reyoho.ru: показывать тайминги сцен, которые нельзя показывать в эфире, заранее предупреждать о них и автоматически размывать видео (или включать блюр в OBS). Все функции расширения служат одной цели — контролю «запретного» контента во время просмотра. Help viewers and streamers safely watch films on yoho.pw and reyoho.ru by showing timed content warnings, alerting before restricted scenes, and auto-blurring video (or toggling an OBS blur source). All features serve this single purpose. ИСТОРИЯ ИЗМЕНЕНИЙ — YoHo Stream Mode ═══════════════════════════════════════ 3.2.1 (beta) ═══════════════════════════════════════ Исправления: • Блюр больше не мигает на активной запретной сцене при фоновом обновлении (переключение вкладки/фокус, голосование): устранён ложный сброс плеера в момент, когда становится известен номер серии. • Убран шторм перестроения маркеров — playback-update рассылается только при реальной смене серии, а не на каждый повторный отчёт плеера (заметно меньше нагрузка на серию/фильм). Производительность: • Тик-цикл блюра троттлится во время ровного воспроизведения; маркеры и оверлей обновляются in-place без layout thrash; тултип маркера больше не дёргает layout на каждое движение мыши. • Узкий MutationObserver на странице сайта (реагирует только на смену фильма, а не на любой текст). • CSS: анимация pulse у скрытой пилюли останавливается; учитывается prefers-reduced-motion; изолированы селекторы маркеров и исправлены конфликты z-index. Стабильность: • Единый teardown плеерных эффектов при смене/сбросе фильма и выключении тумблера — не остаётся «висящих» наблюдателей и таймеров. • Полная очистка состояния вкладки при закрытии/уходе со страницы. • OBS: автопереподключение после перезапуска service worker; зависшие запросы корректно отклоняются при обрыве соединения. Безопасность: • Строгая проверка origin доверенных фреймов плеера (yoho.pw / reyoho.ru). Сборка и код: • Service worker собирается из единого источника (npm run bundle:sw) с guard-тестом против рассинхрона background.js. • Удалён мёртвый код и дубли (неиспользуемый info-overlay-shared.js, дублирующая логика маркеров); магические числа вынесены в константы. ═══════════════════════════════════════ 3.2.0 (beta) ═══════════════════════════════════════ Настройки: • «Текущее время фильма» — выбор формата тайм-кода: только позиция (47:20 / 01:10:29) или с длительностью (01:10:29/01:30:48). Шрифты: • Один variable-шрифт Google Sans Flex вместо четырёх отдельных файлов — меньше размер расширения, та же типографика в попапе и оверлее. ═══════════════════════════════════════ 3.1.8 (beta) ═══════════════════════════════════════ Производительность: • Alloha: узкие MutationObserver только на селекты серии/озвучки — убран шторм ~670 callback/s на .allplay во время воспроизведения. • Alloha (фильмы): не запускается poll прогресс-бара, если UI серий отсутствует. • Turbo (PJS на yoho.pw): исправлен двойной setup в top-frame и same-origin iframe — blur/info tick не дублируются (~2× меньше RAF на Turbo). • about:blank iframe не запускают discovery; info-tick только при подключённом <video>. Исправления: • Оверлей «Информация на экране» не пропадает при смене озвучки Alloha (перезагрузка iframe, stale video, отслеживание translationKey). • Попап снова получает метаданные фильма после загрузки страницы (отдельный обработчик film-update в service worker). ═══════════════════════════════════════ 3.1.7 (beta) ═══════════════════════════════════════ Голосование за тайминги: • Лайк/дизлайк community-таймингов в попапе (👍/👎), синхронизация с сайтом через vote-player API (challenge + HMAC, cookies yoho.pw). • Кнопки на всех таймингах; активны у подсвеченной строки (playhead или клик по таймингу). • Дизлайк отключает блюр только для голосующего (votedByMe === -1); тайминг остаётся в списке, общий score не скрывает сцену. • Мгновенная реакция блюра при лайке/дизлайке (broadcast film-update + tick()), в т.ч. голос с /timings на сайте. • Передача позиции плеера при голосовании (seek-hint / playback); seek-playback обновляет state в background. Качество кода (ECC): • Vitest: unit-тесты для popup settings, tiers, format-time, info-layout. • Типы: ContentWarning, MessageResult, единый sendMessage с обработкой ошибок Chrome. • Кнопка «Тайминги» открывает /timings? (вместо устаревшего /warnings?). • ObsSettings.vue — OBS-блок вынесен из настроек блюра; persistSettings() в App.vue. • Content-script: модули player-tier, player-detect, player-info, player-ui, player-tick, player-setup; player.js ≤800 строк. • Service worker: OBS WebSocket вынесен в background/obs-ws.js. • README: секция «Разработка» и smoke-чеклист. ═══════════════════════════════════════ 3.1.6 (beta) ═══════════════════════════════════════ Исправления: • Переключение «Предупреждение (плеер)» → «Автоблюр (плеер)» снова включает блюр сразу, без перезагрузки страницы (в т.ч. на паузе внутри сцены). • Главный тумблер в шапке попапа полностью отключает расширение: оверлей «Информация на экране», блюр, пилюля и маркеры исчезают сразу; при включении всё восстанавливается без перезагрузки страницы. Производительность: • Таймер оверлея «Информация на экране» (1 Гц) работает только когда опция включена. • Пустые iframe без маркеров плеера не запускают тяжёлый MutationObserver — лёгкая проверка до 8 с, затем выход. Чистка: • Удалён неиспользуемый CSS-stub `.yoho-blur-overlay`. ═══════════════════════════════════════ 3.1.5 (beta) ═══════════════════════════════════════ Попап: • Список таймингов: клик по строке перематывает плеер на начало сцены. • Подсветка всех пересекающихся таймингов одновременно; мгновенная реакция после клика. • Кнопки «Тайминги» и «Настройки» в одной строке (50/50); «Тайминги» скрыта, пока фильм не определён. • UI: стиль блока режимов как у редактора layout, плавный переход главный экран ↔ настройки, центрирование текста в кнопках футера. • Ползунки «Прозрачность текста», «Прозрачность фона», «Размер шрифта» — та же ширина, что в разделе «Запретки». Производительность: • Плеер: обновление состояния останавливается на паузе без активного блюра (меньше нагрузки на CPU). • Ограничение поиска плеера (30 попыток) и отключение observer в пустых iframe. • Сайт: debounce observer; один refresh при focus/visibility (не чаще 30 с). • Настройки: один путь синхронизации через chrome.storage (без дублирующего broadcast). Чистка: • Удалены неиспользуемые обработчики и компоненты. ═══════════════════════════════════════ 3.0.5 (beta) ═══════════════════════════════════════ Информация на экране (плеер): • На оверлее без подписей «Название» и «Серия» — только текст тайтла и S1 E3 (подписи «Начало» и «Тайм-код» без изменений). ═══════════════════════════════════════ 3.0.4 (beta) ═══════════════════════════════════════ Информация на экране: • Прозрачность фона можно выставить в 0% — полностью прозрачный фон без размытия (остаётся только текст). ═══════════════════════════════════════ 3.0.3 (beta) ═══════════════════════════════════════ Интерфейс — «Информация на экране»: • Секция «Размер и прозрачность» с заголовком в стиле редактора плиток. • Компактные подписи ползунков (Текст / Фон / Шрифт) — полное название в подсказке при наведении; ползунки не наезжают на текст. • Подписи зон в редакторе layout: по центру по горизонтали; верхние зоны — внизу квадрата, нижние — вверху (не перекрывают плитки). • Плитки в зонах прижаты к краям экрана (left/center/right, top/bottom). ═══════════════════════════════════════ 3.0.2 (beta) ═══════════════════════════════════════ Информация на экране: • Редактор расположения плиток — сетка 3×2, до 4 горизонтальных рядов в каждой зоне; drag-and-drop с корректной вставкой (в ряд — по позиции курсора, на плитку — занять её слот). • Плитки N / T / S / E (название, таймкод, начало просмотра, серия) с подсказкой в редакторе. • Отдельные ползунки «Прозрачность текста» и «Прозрачность фона». • Оверлей в плеере: исправлено исчезновение после старта видео (слой поверх video, периодическое обновление). • Изменения layout и прозрачности применяются в реальном времени без перезагрузки страницы. Исправления: • Синхронизированы значения по умолчанию info.* в background service worker. • Защита от пустого layoutZones перед перестановкой плиток в редакторе. ═══════════════════════════════════════ 3.0.1 (beta) ═══════════════════════════════════════ Попап: • Заголовок всегда показывает название, сезон, серию и озвучку (даже без таймингов). • Список таймингов текущей серии с прокруткой (высота по содержимому, макс. 450px), подсветка ближайшей/текущей сцены по позиции плеера. • Цветной статус: красный — есть запретки с таймингами; зелёный — метка «запреток нет»; жёлтый — таймингов нет / неизвестно. • Подсказка, если для серии нет таймингов (например, в базе есть только E1–E7). • Кнопка «Тайминги» на всю ширину над «Настройками». Исправления: • OBS: нет автоподключения WebSocket при выключенном obs-websocket (ERR_CONNECTION_REFUSED в консоли). • Сериалы: не показывается весь каталог таймингов до определения S/E. ═══════════════════════════════════════ 3.0.0 (beta) ═══════════════════════════════════════ Крупный релиз: переработанный попап (Vue 3), три режима защиты, интеграция с OBS и улучшения для стримеров. Исправления: • Режим OBS при выключенном obs-websocket больше не открывает WebSocket в фоне и не засоряет консоль — подключение только по кнопке «Подключить OBS». Режимы и запретки: • Автоблюр (плеер) — размытие видео во время запретной сцены; сила блюра, смещения начала/конца (−5…+5 с), опция «Отключить предупреждение» (без пилюли обратного отсчёта). • Предупреждение (плеер) — пилюля с обратным отсчётом до и во время сцены; настраиваемые размер шрифта и прозрачность. • Автоблюр через OBS — во время запретки включается выбранный blur-источник в OBS (реальное размытие кадра, не оверлей в браузере). OBS (obs-websocket): • Прямое подключение из расширения к obs-websocket на 127.0.0.1 (без Node-моста и без отдельных процессов). • Настройка: порт и пароль (пароль сохраняется локально). • Выбор blur-источника на сцене; выбор фильтра (Composite Blur, StreamFX Blur). • Ползунок силы блюра меняет параметры фильтра в OBS в реальном времени. • Кнопка теста блюра (вкл/выкл, авто-выключение через 5 с). • Подсказка и ссылка на плагин Composite Blur: https://obsproject.com/forum/resources/composite-blur.1780/ Интерфейс и оверлеи: • Попап: карточка фильма, серия/озвучка, экран «Настройки» (вкладки «Запретки» и «Информация»). • Информация на экране — время начала просмотра и тайм-код фильма (положение 3×2, прозрачность, размер); видно в fullscreen и в OBS. • Маркеры на прогресс-баре перенесены во вкладку «Информация». • Оповещения о запретках в едином стиле; SVG-кнопки «подсмотреть» и «пропустить». • Иконка расширения меняет цвет по статусу; встроенный шрифт Google Sans Flex. Прочее: • Поддержка плееров Turbo (JW) и Alloha (Video.js / Plyr). • Полностью локально: настройки в chrome.storage, один fetch к API yoho.pw/reyoho.ru за таймингами; при OBS-режиме — только ws://127.0.0.1 к obs-websocket на вашем ПК. ═══════════════════════════════════════ 2.5.2 ═══════════════════════════════════════ • В режимах «Автоблюр (плеер)» и «Автоблюр через OBS» добавлена галочка «Отключить предупреждение» — гасит пилюлю обратного отсчёта о скорой запретке. В режиме «Только предупреждение» галочка скрыта. • Настройка сохраняется и переносится между обновлениями. ═══════════════════════════════════════ 2.5.1 ═══════════════════════════════════════ • Исправлено определение Composite Blur: реальный идентификатор фильтра obs_composite_blur (раньше проверяли composite_blur_filter). Теперь сила блюра управляется корректно. ═══════════════════════════════════════ 2.5.0 ═══════════════════════════════════════ • OBS-режим: добавлен выбор фильтра размытия на выбранном источнике. Поддерживаются Composite Blur (radius) и StreamFX Blur (Filter.Blur.Size). • Ползунок «Сила блюра» в OBS-режиме меняет силу размытия прямо в OBS в реальном времени, диапазон 0–100. • Если фильтр неуправляемый — подсказка поставить Composite Blur. ═══════════════════════════════════════ 2.4.9 ═══════════════════════════════════════ • В подсказке OBS-режима добавлена ссылка на Composite Blur с пояснением установки фильтра на верхний источник. ═══════════════════════════════════════ 2.4.8 ═══════════════════════════════════════ • Подключение к OBS упрощено: поле «Хост» убрано (сервер всегда 127.0.0.1), осталось только порт и пароль. Пароль сохраняется в настройках. • Кнопка теста стала переключателем; авто-выключение через 5 секунд. • Тумблер «Маркеры на прогрессбаре» перенесён в раздел «Информация». ═══════════════════════════════════════ 2.4.7 ═══════════════════════════════════════ • Кнопка «Проверить блюр (3 с)» в настройках OBS — принудительно включает blur-источник на 3 секунды. • Ползунки в блоке настроек сделаны компактнее. ═══════════════════════════════════════ 2.4.6 ═══════════════════════════════════════ • Убран отдельный Node-процесс (obs-bridge): расширение подключается к obs-websocket напрямую из фонового скрипта. • Конфигурация и выбранный blur-источник сохраняются; соединение восстанавливается автоматически. ═══════════════════════════════════════ 2.4.5 ═══════════════════════════════════════ • Режим «Автоблюр через OBS» переделан на управление OBS через obs-websocket — во время запретки включается blur-источник в OBS. • Схема: два источника захвата (верхний с фильтром Blur), в попапе выбираем blur-источник. • Удалён прежний оверлей obs/obs.html (нерабочий в OBS Browser source). ═══════════════════════════════════════ 2.4.4 ═══════════════════════════════════════ • Режим защиты переименован: «Автоблюр (плеер)» и «Предупреждение (плеер)». • Новый режим «Автоблюр через OBS». • Ползунки смещения «Начало блюра» и «Конец блюра» (−5…+5 с). • Попап стал шире (380px). ═══════════════════════════════════════ 2.4.3 ═══════════════════════════════════════ • Восстановлены исходники попапа (Vue 3 + Vite). • Исправлена конфигурация TypeScript: добавлен @types/chrome. ═══════════════════════════════════════ 2.4.2 ═══════════════════════════════════════ • Новая иконка расширения: цвет меняется по статусу. • Попап: футер в настройках, заголовки разделов с SVG, единый шрифт Google Sans Flex. ═══════════════════════════════════════ 2.4.1 ═══════════════════════════════════════ • Исправлено: надписи «Начало» и «Тайм-код» иногда пропадали после загрузки плеера или смены серии. Оверлей поднят поверх интерфейса плеера. ═══════════════════════════════════════ 2.4.0 ═══════════════════════════════════════ • Полностью переработанный интерфейс попапа (Vue 3): карточка фильма и экран «Настройки» с вкладками «Запретки» и «Информация». • Информационный оверлей: время начала просмотра и тайм-код фильма, настройка положения, прозрачности и размера. Виден в fullscreen и OBS. • Отображение серии, сезона и озвучки в попапе. • Время начала фиксируется при старте и редактируется вручную. • Исправлено определение фильма при потере фокуса вкладки. • Шрифт Google Sans встроен в расширение — без внешних запросов к Google. • Оповещения о запретках в едином стиле; SVG-кнопки «подсмотреть» и «пропустить». • Обратный отсчёт до конца сцены («Грудь · 5с»). • Настройки размера шрифта и прозрачности оповещений. • Исправления кнопки «подсмотреть», индикатора и смещения оповещения. • Время начала: сохраняется при перезагрузке, сбрасывается при смене фильма/серии. ═══════════════════════════════════════ 1.3.0 ═══════════════════════════════════════ • Стабильные тайминги маркеров для плееров Alloha и Turbo. ═══════════════════════════════════════ 1.2.x ═══════════════════════════════════════ • Поддержка Allplay/Plyr, отображение выбранной серии, ранние версии блюра, маркеров и режима предупреждения.
5 out of 51 rating
Details
- Version3.2.1 beta
- UpdatedJune 10, 2026
- Size161KiB
- Languagesрусский
- DeveloperWebsite
Email
makki4747@gmail.com - Non-traderThis developer has not identified itself as a trader. For consumers in the European Union, please note that consumer rights do not apply to contracts between you and this developer.
Privacy
This developer declares that your data is
- Not being sold to third parties, outside of the approved use cases
- Not being used or transferred for purposes that are unrelated to the item's core functionality
- Not being used or transferred to determine creditworthiness or for lending purposes