🎉 欢迎访问GreasyFork.Org 镜像站!本镜像站由公众号【爱吃馍】搭建,用于分享脚本。联系邮箱📮

Greasy fork 爱吃馍镜像

Telegram Web — перемотка + сохранение прогресса видео

Перемотка видео стрелками и восстановление по автору и времени

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

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

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

Автор
STELLAR STELS
Установок в день
0
Всего установок
5
Оценки
0 0 0
Версия
1.1
Создано
29.07.2025
Обновлено
29.07.2025
Размер
6,5 КБ
Лицензия
MIT
Работает на

Основные улучшения и исправления:
Надежный выбор элемента:

Улучшены селекторы для nameElи dateElдля поддержки различных версий приложения Telegram Web ( web.telegram.orgvs. webk.telegram.orgvs. webz.telegram.org) путем добавления нескольких имен классов.

Селектор mediaViewerсделан более универсальным ( .media-viewer-modal, .media-viewer-backdrop), чтобы надежно определять, когда открыто средство просмотра мультимедиа.

При обработке событий клавиатуры скрипт сначала пытается найти видео в активном средстве просмотра медиафайлов ( .media-viewer-content video). Если видео не найдено или не отображается, скрипт возвращается к любому видимому видео на странице.

Эффективное сохранение прогресса:

Вместо того, setIntervalчтобы вызывать его при каждом обнаружении видео, используется Map( ) для хранения и управления идентификаторами. Это гарантирует, что для каждого уникального видео (идентифицируемого по ключу ) в любой момент времени будет запущен только один идентификатор.activeIntervalssetIntervalsetIntervalname @ date videoSrc

В setIntervalнастоящее MutationObserverвремя активно проверяется, относится ли видео к paused, ended, или !isVisible(video). При выполнении любого из этих условий интервал для этого видео очищается, предотвращая ненужную фоновую активность.

Прогресс сохраняется только в том случае, если currentTimeс момента последнего сохранения время изменилось более чем на 1 секунду, что позволяет сократить количество ненужных localStorageзаписей.

Обработка событий клавиатуры:

Добавлена проверка if (document.activeElement && (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA'))для предотвращения перемотки, когда пользователь вводит текст в поле.

Логика перемотки ( video.currentTime = Math.max(0, Math.min(newTime, video.duration || newTime));) теперь ограничивает время currentTime, чтобы гарантировать, что оно не опустится ниже 0 или не превысит фактическую продолжительность видео.

Перемотка происходит только в том случае, если видео воспроизводится в данный момент ( !video.paused && !video.ended).

Надежность локального хранилища:

Добавлены try...catchблоки вокруг localStorage.getItemи localStorage.setItemдля корректной обработки потенциальных ошибок (например, SecurityErrorв некоторых изолированных средах или при ограничениях квот).

Уникальные видеоключи:

Для keyсохранения хода видео теперь используется videoSrc( ${name} @ ${date} ${videoSrc}). Это крайне важно, поскольку в противном случае разные видео одного автора в одну и ту же дату будут перезаписывать ход друг друга.

Флаг восстановления прогресса:

Изменено video.dataset.restoredна video.dataset.tgProgressRestoredдля большей конкретности и избежания потенциальных конфликтов с другими скриптами или собственными атрибутами Telegram.

Ведение журнала:

Добавлены более подробные console.logсообщения для лучшего отслеживания действий скрипта (например, когда он начинает/останавливает сохранение прогресса, когда он восстанавливает прогресс).

Небольшие уточнения:

Определены константы для REWIND_TIME_SECONDSи SAVE_PROGRESS_INTERVAL_MSдля более простой настройки.

Добавлено для более window.getComputedStyle(el).display !== 'none'полной isVisibleпроверки видимости.

Этот обновленный скрипт более устойчив к изменениям в DOM Telegram, более эффективен в использовании ресурсов и обеспечивает лучший пользовательский интерфейс.СЛАВА УКРАИНА