Всем привет!
Я тот самый разработчик, который стоит за проектом # Telegram File Manager Bot. Хочу поделиться своей историей создания этого бота и рассказать, почему я считаю, что он имеет право на жизнь в мире, где есть Google Drive и Dropbox.
Предыстория: Почему я решил писать свой велосипед?
Я, как и многие из вас, пользовался облаками. Но у меня была боль: мне нужно было быстро обмениваться файлами с командой, иметь доступ к ним с телефона, и при этом не платить за лишнее дисковое пространство. "Избранное" в Telegram это хорошо, но когда файлов сотни, начинается хаос.
Я понял, что Telegram это уже готовое, огромное и, главное, бесплатное хранилище. Мне не хватало только интерфейса управления поверх него. Так родилась идея: создать веб-интерфейс, который использует API Telegram для хранения файлов, а в базе данных хранит только метаданные и file_id.
📁 Управление файлами и организация
Это ядро бота, позволяющее уйти от хаоса "Избранного" в Telegram:
- Загрузка файлов: Пользователи могут отправлять боту любые типы файлов (фото, видео, документы, аудио, голосовые сообщения) размером до 2 ГБ (стандартный лимит Telegram), и если у пользователя подключен telegram premium то 4 ГБ.
- Организация в папки: Реализована полноценная древовидная структура. Пользователи могут создавать папки и неограниченное количество подпапок для категоризации контента.
- Перемещение файлов: Файлы можно легко перемещать между различными папками с помощью веб-интерфейса.
- Удаление: Возможность удалять как отдельные файлы, так и целые папки.
- Скачивание: Файлы можно получить обратно через бота в любой момент.
- Множественный выбор: Эта функция позволяет выделять несколько файлов или папок для выполнения массовых операций (перемещение, удаление) одним действием.
- Навигация Breadcrumbs: Удобная навигация, показывающая текущее местоположение в иерархии папок.
🎨 Персонализация и Интерфейс
Чтобы сделать опыт использования приятным и интуитивно понятным:
- Веб-интерфейс: Основное взаимодействие происходит через адаптивный веб-интерфейс (Telegram Mini App), который работает на любых устройствах.
- Два режима отображения: Пользователь может переключаться между компактным видом "Списка" (☰) с деталями и видом "Сетки" (⊞) для визуального просмотра медиа.
- Иконки папок: Я добавил выбор из 18 различных эмодзи для папок, чтобы пользователи могли визуально отличать их (например, 📚 для книг, 💼 для работы).
- Переименование: Возможность изменять названия папок для лучшей организации.
👥 Совместная работа и права доступа
Функционал, который превращает бота в командный инструмент:
- Расшаривание папок: Пользователи могут делиться своими личными папками с другими людьми.
- Поиск по username: Делиться доступом можно, просто указав @username или Telegram ID другого пользователя.
- Управление доступом: Владелец папки может просматривать список пользователей, имеющих доступ, и в любой момент отозвать их права.
- Индикаторы доступа: Визуальные метки показывают, какие папки являются общими.
🖼️ Работа с медиа
Особое внимание я уделил работе с визуальным контентом:
- Миниатюры фото: Автоматическое создание и отображение превью для изображений.
- Превью видео: Генерация миниатюр для видеофайлов.
- Grid view: Оптимизированная сетка для просмотра медиафайлов, как в галерее смартфона.
⚙️ Технические особенности реализации
- Хранение данных: Используется облачное хранилище Telegram. В собственной базе данных хранятся только метаданные (file_id, названия папок, иконки, права доступа).
- Быстродействие: Быстрая навигация без перезагрузки веб-страницы.
- Поддержка всех типов файлов Telegram.
Почему я не боюсь конкуренции?
Мой бот не заменит вам корпоративный SharePoint. Он не умеет редактировать документы в браузере. Он делает одну вещь, но делает ее хорошо: предоставляет удобный, быстрый и бесплатный (для конечного пользователя) интерфейс к хранилищу Telegram.
Это был интересный опыт разработки.
Я продолжаю его развивать, и надеюсь мой труд будет вам полезен. Пробуйте, тестируйте, пишите фидбек!
👉 Попробовать бота можно здесь: @FileStorageTGbot
Или как я сделал бота чтобы закрыть свою потребность.
Как я решил проблему со звонками в Telegram: Путь от идеи до рабочего WebRTC-бота
Привет! Я хочу рассказать о своем опыте разработки Telegram-бота, который позволяет совершать аудио и видеозвонки прямо в мессенджере. Изначально я просто столкнулся с личной проблемой: стандартные звонки в Telegram просто перестали работать, и обьяснить бабушке как включить vpn та еще марока. Я решил создать альтернативное решение.
Почему Telegram?
Telegram — удобная платформа для общения, и мне показалось логичным реализовать этот функционал именно там. Я решил использовать технологию WebRTC (Web Real-Time Communication), которая обеспечивает прямую передачу данных между пользователями (P2P), что идеально подходит для звонков.
Целью было создать бота, который будет работать по принципу инлайн-запросов и открывать интерфейс звонка во встроенном WebApp.
С какими трудностями я столкнулся?
Процесс разработки не был простым и включал несколько ключевых технических вызовов:
1. Установка P2P-соединения
Самая большая сложность WebRTC заключается в том, что для установки прямого P2P-соединения (обмен данными о сетевых адресах, Offer/Answer SDP) требуется промежуточный сервер сигнализации.
- Решение: Я развернул отдельный Signaling Server на Node.js с использованием Socket. Он служит координатором, который помогает устройствам «договориться» о начале звонка, но сам трафик звонка через него не идет.
2. Преодоление сетевых ограничений
В реальном мире пользователи находятся за разными маршрутизаторами (NAT), которые не всегда позволяют установить прямое P2P-соединение. Звонок просто не состоялся бы.
- Решение: Пришлось поднять и настроить свой собственный TURN-сервер (Coturn). TURN-сервер — это «посредник», который ретранслирует медиа-трафик, если прямое P2P невозможно. Это гарантирует, что звонок состоится почти в 100% случаев.
3. Интеграция с интерфейсом Telegram
Необходимо было сделать так, чтобы интерфейс звонка выглядел нативно и работал внутри мобильного приложения Telegram без сбоев.
- Решение: Разработка WebApp на чистых HTML/CSS/JS, который стилизован под дизайн Telegram, использует адаптивный дизайн и корректно запрашивает разрешения на микрофон и камеру.
4. Синхронизация статусов звонка
Нужно было обеспечить, чтобы сообщение в чате обновлялось автоматически после завершения звонка, не засоряя историю.
- Решение: Я использовал механизм обратной связи Telegram (chosen_inline_result) и связку между ботом и Signaling Server, чтобы отслеживать статус завершения звонка и редактировать исходное сообщение.
Какой результат я получил?
В результате всех этих усилий получился полностью рабочий, надежный и функциональный бот.Теперь любой желающий может воспользоваться им и совершать качественные аудио и видеозвонки:
- Стабильность: Благодаря TURN-серверу звонки работают там, где обычные звонки Telegram могут испытывать трудности.
- Функциональность: Полный набор функций от mute до переключения камер
- Приватность: Трафик шифруется (DTLS-SRTP), а P2P-соединение обеспечивает максимальную конфиденциальность.
Планы на будущее
Это только начало. В дальнейшем планируется активно развивать проект и добавить функционал конференций, что позволит собирать в одном звонке сразу несколько участников.
Я решил свою проблему и создал инструмент, которым может воспользоваться каждый.
👉 Попробовать бота можно здесь: @callp2p_bot
