Меню ▼

Дизайн ⚡️ Жизнь

Бортовой журнал Александра Бузника

diPlayer

English version

Это настольный плеер для DI.FM, который я сделал к 20-летию компании в подарок.

Во время этого проекта я получил много опыта, например:

  • снова научился паять
  • познакомился с Python
  • написал и отдебажил прошивку для Arduino Nano
  • освоил моделирование в Fusion 360
  • узнал, что 3-д печать не получается с первого раза

Детали

Настольный плеер, который умеет играть каналы DI.FM (стримы IceCast).

Управляется с помощью карточек от фотослайдов, на которые нанесены NFC-наклейки. Это ссылки на каналы.

Плеер может играть и из других источников — Spotify, Google Play Music, Soma.fm и др.

Есть кнопка Плей/Пауза, регулятор громкости, маленький экран, который показывает текущий трек. Звук выходит через миниджек или HDMI.

(далее…)

Уведомления для шоу DI.FM + бонус

Недавно в DI.FM мы запустили сервер Дискорд для фанатов.

В первые же дни мы получили запрос на то, что в этом сервере не хватает уведомлений о начинающихся шоу (на DI.FM есть т.н. шоу, часовые миксы от диджеев со всего мира, которые выходят в определенное время — всего около 450 выпусков ежемесячно).

У меня как раз был перерыв в написании интересного кода, и я решил заняться этим в свободное время.

Я сделал небольшой парсер API DI.FM, который получает список ближайших шоу, и отправляет уведомления на заготовленные вебхуки. В основе проекта — node.js express.

Для меня ценно, что это первый проект, в котором я с самого начала пишу юнит-тесты (хотя покрыто пока не все), и настроен линтер. Тесты запускаются перед коммитом и перед деплоем на CI.

Живет сервис на хероку, поэтому деплой максимально простой.

Исходный код: https://github.com/beshur/diUpcomingShows

Бонус

За компанию сделал рандомизатор каналов на DI.FM: https://beshur.github.io/diRandomizer/

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: