Telegram 受限图片视频下载器

从禁止下载的Telegram频道中下载图片、视频及语音消息

作者
STELLAR STELS
日安装量
3
总安装量
29
评分
0 0 0
版本
1.207
创建于
2025-07-29
更新于
2025-07-29
大小
39.2 KB
许可证
GNU GPLv3
适用于

Основные изменения и исправления:
Индикатор выполнения:

Теперь createProgressBar гарантирует, что главный контейнер tel-downloader-progress-bar-container создается только один раз.

Добавлены стили white-space: nowrap; overflow: hidden; text-overflow: ellipsis; для названия файла, чтобы длинные имена не ломали макет.

Кнопка закрытия теперь удаляет весь innerContainer (прогресс-бар), а не только его часть.

Автоматическое удаление прогресс-бара через 2 секунды после завершения/прерывания загрузки.

tel_download_video и tel_download_audio:

Переработаны на использование async/await для более читаемого и последовательного асинхронного кода, что упрощает управление потоком выполнения.

Добавлена обработка ошибок для showSaveFilePicker, включая AbortError, когда пользователь отменяет сохранение файла.

Улучшена логика Range запросов:

Запросы Range отправляются только тогда, когда известен _total_size. В противном случае, первый запрос отправляется без Range для получения полного размера файла (если сервер это поддерживает).

Обработка res.status === 200 без Content-Range для случая, когда сервер отправляет полный файл одним запросом.

Более строгая проверка Content-Type и Content-Range заголовков.

Улучшено определение расширения файла из метаданных URL и Content-Type.

Добавлены более детальные сообщения логгера для отслеживания прогресса и ошибок.

tel_download_image:

Улучшено извлечение расширения файла из URL, чтобы генерировать более точные имена файлов (например, .png, .gif вместо всегда .jpeg).

Логика добавления кнопок (для Web Z и Web K):

Приоритет официальной кнопки: Скрипт теперь активно проверяет наличие официальной кнопки загрузки Telegram. Если она найдена (иногда она скрыта, но скрипт ее "показывает"), скрипт не добавляет свою собственную кнопку. Вместо этого он может попытаться использовать функциональность официальной кнопки (путем симуляции клика). Это предотвращает дублирование кнопок и потенциальные конфликты.

Обновление существующих кнопок: Если пользователь переключает медиа (например, просматривает разные изображения или видео), скрипт теперь обновляет data-tel-download-url и функцию onclick у уже существующей кастомной кнопки, а не добавляет новую. Это предотвращает накопление кнопок.

Консистентность: Улучшена логика для единообразного добавления кнопок как в верхнюю панель, так и в элементы управления видеоплеером, с учетом приоритета официальных кнопок.

Используется optional chaining (?.) для более безопасного доступа к свойствам элементов, которые могут отсутствовать.

Более точный выбор селекторов для некоторых элементов, чтобы избежать нежелательных действий.

Голосовые сообщения (Web K):

Улучшена логика поиска места для вставки кнопки загрузки голосовых сообщений. Теперь проверяются классы .message-utils-container и .bubble-tools-wrapper для большей совместимости.

Событие click на кнопке загрузки теперь вызывает e.stopPropagation() для предотвращения закрытия медиаплеера при клике.

Удаление дублирующегося кода:

Функции создания кнопок (например, createDownloadButton) были адаптированы, чтобы быть более универсальными и переиспользоваться там, где это возможно.

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