Как стать автором
Обновить

Сервис для любителей халявы, или как создать сервис для создания и хранения m3u-плейлистов

Предисловие


Всем привет. На днях я решил полистать Яндекс.Дзен и увидел, что крупный технологический гигант устраивал конкурс для разработчиков. По условию конкурса, разрабы должны были создать приложение на JavaScript. Мы с другом, решили принять участие в конкурсе. И начали думать, что можно создать, чтобы было оригинально и интересно в то же время. И тогда у нас родилась идея создать сервис для хранения m3u файлов. Мы разделили обязанности (Он за само приложение, а я за серверную часть). Для такого простого проекта, я создал простой сервер на PHP+MySQL. Спустя многое время я реализовал сервер, и даже сумел сделать Frontend часть. Но, друг "открестился" от нашего дела. Я остался один, точнее говоря я и мой код. И я забил на этот код, и не лазил в него долгое время.


Возвращение к разработке


Спустя долгое время я вернулся к коду, и решил его исправлять. и начал с переработки главной страницы. Я эмигририровал с ужасаного MDL на Bulma.


image


Дальше, я переделал генерацию цифрового кода, теперь он (генератор), выглядит так


$numbers= '123456789';
$code = substr(str_shuffle($numbers), 0, 12);

Дальше, я перешёл к самому сложному для меня, как начинающему программисту, реализация API. Я решил, зачем мне REST API, если можно написать, простой API, пусть и с костылями, за то работающий. Спустя много "if" и "else" я реализовал API, по GET запросам разработчик мог получить статус плейлиста (есть ли он, или нет), получить сам плейлист. Я подключил ORM-библиотеку RedBeanPHP для легкого управление плейлистами, и обмена информацией с базой данных. Благодаря её я и реализовал проверку наличия плейлиста.


Разграничение платформ


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


image


А API для других устройств, выведет сообщение в формате JSON:


{ "mess" : "Ошибка получения данных", "codemess" : "Code_not_exist" }

Для меня было интересно реализовать этот проект, теперь каждый пользователь может создать свое приложение на базе моего сервиса. Интересно, то что в проекте не использовалось не одного JavaScript, все было написано на php, кроме Bulma. Даже была реализована поддержка встраивания рекламы, но она сейчас отключена.


Тестировал я на VLC Media Player, а также ForkPlayer. И все работало. Сервис скоро будет выпущен, и будет работать в штатном режиме, а сейчас он доступен только на локальной машине.


Спасибо за чтение !

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.