Серия «Мои полезные и не очень программы»

Telegram-бот для скачивания аудио из YouTube

Всем привет! Хотел бы поделиться с вами сегодня еще одним из моих недавних pet-проектов. Я сделал Telegram-бота, который конвертирует YouTube видео в аудио. Делал я его чисто из-за любопытства (@user6010773, привет!). Идея проекта подпадает под главный критерий для моих пет-проектов - реализация не сложная и посильная для одного человека за относительно короткое время.

Немного про детали реализации

В начале делания такого бота кажется, что механизм работы будет следующий - получил ссылку от клиента, скачал видео, извлёк аудиодорожку, отправил файл. Однако, если множество пользователей начнут одновременно дудосить запросами на скачивание, это может привести к длительной задержке и нагрузке на сервер.

Поэтому нужно воспользоваться более хитрым решением, которое позволит обрабатывать большое количество запросов, не нагружая при этом сервер. Я использовал модель основанную на очереди и воркерах, которая представлена на картинке.

Telegram-бот для скачивания аудио из YouTube Telegram бот, YouTube, Проект, Программирование, Telegram, Чат-бот, Бот, IT

Нужно создать очередь, в которую попадает каждая отправленная пользователем ссылка на видео. Эта очередь разбирается воркерами - отдельными фоновыми процессами, которые берут ссылку из очереди, скачивают файл, сохраняют в кэш и отправляют его пользователю.

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

Чтобы избежать повторного скачивания одного и того же видео, я добавил кэш. Интересный момент заключается в том, что файлы кешируются в Телеграм. Да, я использую Телеграм канал в качестве кэша, что позволяет мне не хранить файлы на моем сервере. Если пользователь пришлет ссылку на ранее загруженный файл, то бот перешлет ему сообщение из канала.

Вместо выводов

Бота я написал за пару вечеров. Работает он около двух месяцев, за это время ему написало чуть более 100 человек (видимо находят бота через поиск) и было скачано почти 1000 видео. Если кому-то интересно, то могу открыть доступ на репозиторий с кодом (проект написан на Scala).

Ссылки

Никаких планов на монетизацию бота у меня нет, но если кому то интересно, вот ссылка на него - @YoutubeAudioDownloadFreeBot.

Еще я завел телеграм канал - @ainur_khakimov заходите, там я буду делиться своими проектами и наблюдениями.

Показать полностью 1

Телеграм бот для учета расходов

Сегодня хочу представить вам Telegram бота для учета расходов @SpendBookBot 💰

Телеграм бот для учета расходов Telegram бот, Финансовое планирование, Финансы, Финансовая грамотность, Учет расходов, IT, Деньги, Статистика, Бухгалтерия, Экономия, Длиннопост

Зачем вести учет расходов? Ведение учета расходов - это ключ к финансовой стабильности и разумному управлению финансами. Знание, куда уходят ваши деньги, помогает планировать бюджет и избегать лишних трат. Существует несколько способов вести учет расходов: записывать их вручную в тетрадь, использовать электронные таблицы, мобильные приложения или, как в нашем случае, телеграм-бота.

Почему Telegram бот? Бот изначально был создан для личных нужд. Мы стремились сделать его интерфейс максимально простым и чтобы для ввода трат требовалось минимум действий. В Telegram Bot API были добавлены Web Apps - кастомные страницы, которые открываются прямо внутри переписки с ботами. Именно эту возможность мы использовали для упрощения интерфейса.

Телеграм бот для учета расходов Telegram бот, Финансовое планирование, Финансы, Финансовая грамотность, Учет расходов, IT, Деньги, Статистика, Бухгалтерия, Экономия, Длиннопост

Пример внесения траты

Основные возможности бота

  • Внесение расходов - достаточно просто нажать на кнопку "Добавить трату", указать категорию, ввести сумму и нажать на кнопку отправить

  • При внесении расходов можно создавать кастомные категории, которые в дальнейшем будут появляться в списке

  • Просмотр отчета - нужно нажать на кнопку "Отчет", выбрать год/месяц и бот сформирует отчет за указанный период

  • Напоминания - если вы не ввели расходы в течении дня, то вечером бот отправит вам напоминание

  • Ведение совместного учета - еще одна важная фишка бота, которая позволит вести учет вместе с членами семьи. При старте вы уже состоите в некоторой группе, которая имеет уникальный токен. Чтобы пригласить в группу другого человека, нужно ему переслать этот токен, а он, в свою очередь, должен переслать этот токен боту - после чего вы будете состоять в одной группе.

Телеграм бот для учета расходов Telegram бот, Финансовое планирование, Финансы, Финансовая грамотность, Учет расходов, IT, Деньги, Статистика, Бухгалтерия, Экономия, Длиннопост

Пример отчета

🚀 Наши планы на будущее:

  • ➕ Добавить учет доходов: Мы работаем над функцией, которая позволит вам отслеживать и анализировать свои доходы.

  • 📈 Более продвинутые отчеты: Мы планируем расширить функциональность бота для предоставления подробных отчетов и статистики о ваших финансах.

  • 📂 Импорт отчетов - скоро появится возможность экспорта данных в форматы Excel или CSV для более удобного анализа.

Присоединяйтесь к @SpendBookBot и начните управлять своими финансами! Буду рад комментариям и обратной связи.

Показать полностью 3

Телеграм-бот для просмотра статистики профилей в Unsplash

Привет, друзья! Сегодня я хочу поделится с вами одним из своих недавних проектов.

В свободное от работы (перекладывания json-ов) время я бывает пишу различные программки. Иногда придумываю что-то свое, иногда делаю клон других приложений. Не скажу, что пишу полезные программы, но зато это позволяет мне попрактиковать аспекты каких либо технологий. Главный критерий для моих проектов - идея должна быть простая и посильная для реализации одним человеком за относительно короткое время.

Кроме программирования я еще иногда занимаюсь фотографией. Фотографии свои я закидываю в Unsplash.

Так вот как то раз я заметил, что у Unsplash есть открытое API, которое предоставляет такие возможности как поиск фотографий, просмотр информации о фотографиях и, что меня заинтересовало, запрос статистики любого профиля. Во первых, мне всегда было интересно посмотреть число скачиваний/просмотров и список топовых фотографий других авторов. А еще после загрузки новых фотографий или включения фотографии в какой нибудь тематический раздел, всегда было интересно понаблюдать за статистикой скачиваний и просмотров своего профиля.

Именно для этих целей я написал телеграм-бота и назвал его Undicator (весь код открыт и доступен на гитхабе)

Телеграм-бот для просмотра статистики профилей в Unsplash Программирование, Telegram бот, Фотография, Scala, Гифка

Демонстрация работы бота

Что делает Undicator? С его помощью, можно просматривать статистику загрузок и просмотров фотографий других авторов. Эта функция недоступна напрямую через Unsplash. Также Undicator позволяет подписываться на профили авторов и каждый день получать статистику скачиваний/просмотров. Еще есть функция просмотра самых топовых фотографий авторов - иногда бывает нужно вдохновиться чужими шедеврами (или просто позавидовать).

Возможно, кому-то ещё кроме меня будет интересен мой бот. Если у вас есть предложения или вопросы по проекту - жду вас в комментариях.

А я буду продолжать публиковать тут серию своих полезных (и не очень полезных) проектов.

Показать полностью

Пишем простой чат с консольным интерфейсом с использованием gRPC

Если в процессе изучения gRPC хотите попрактиковаться с Bidirectional Streaming (двунаправленная потоковая передача данных), c запросами в рамках одного соединения, инициированием событий со стороны сервера, то создание простого чата может быть отличным способом.

Текстовая версия на хабре - https://habr.com/ru/post/717846/

Отличная работа, все прочитано!