Избранное

Ctrl +  Позднее

Новые боты

20 мая 2012, 21:18

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

Старый был написан на коленке для собственных нужд и представлял собой службу на C# под виндоус. Основной его задачей было играть ассоциативные плейлисты, которые генерировались через Ластфм. Играть просто для себя. Круто же: едешь себе в маршрутке и вместо гоп-стопа слушаешь своё радио. После завершения всех работ было решено протестировать сервер вещания и ассоциативные плейлисты. Где быстро найти аудиторию, как не на бордах? После треда на тирече «Посоны, помогите затестить бота для интернет-радио» и началась эпоха лампача.

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

Площадкой вещания являлся сервис moeradio.ru, который перестал нормально справляться со своей работой: вещание вечно рвалось, были подлагивания и прочие недуги. Начался переезд на новый временный домен, был арендован хостинг, на котором был поднят Айскаст (нормальный ретранслятор). Кстати, занимательный факт: айскаст был дополнен небольшим хаком и перекомпилирован, а бот отправлял теги через модифицированный заголовок. Благодаря этому ретранслятор на лету переводил теги в нужную конечному клиенту кодировку. Многие популярные плееры получали кодировку в utf-8, а некоторые упоротые (вроде WMP) получали cp-1251. Из-за всего этого русские буквы в тегах всегда были русскими, а не кракозябрами, как в большинстве интернет-радиостанций. Вот так-то.

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

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

Боту пришлось следовать новым трендам и учиться проводить тематические эфиры. Код, неподверженный расширению обрастал костылями, в которых копаться было всё труднее и труднее. Багов становилось всё больше, желания копаться в этом — всё меньше.

Ещё в течение года радио как-то работает, но за ним нужно ежедневно следить. Бот может поехать по своему курсу и зациклится, например, на Регине Спектор. Найти проблему в костылях сложно, а делать костыль для костылей уже не хочется. После адовых недель частых дисконнектов, циклов Регины и Эйнауди, был произведен вайп ассоциативной базы данных, которая велась всю жизнь радио, и выключено само радио.

Были оставлены только самые важные наработки, а все внутренности радио ушли на свалку истории.

Учитывая весь имеющийся опыт и возможные развития событий, я делаю нового бота. Бота, которого можно оставить хоть на год автономной работы, и он не подведет. Бота, основная задача которого — саморазвитие. Бота, который лучше будет понимать свою аудиторию. Бота, который, что уж там, охуенен!

К данному моменту готово ядро, скрипты анализа и обучения. Новому боту вместо виртуалбокса с виндовс 2003 будет достаточно ноды на ОпенВЗ с лайтовым дебианом, так как бэкенд нового бота полностью написан на Питоне с вкраплениями С++.

С очень высокой вероятностью после релиза наработки появятся на гитхабе под GPL-соусом. Репозиторий для дебиана точно будет.

Некоторые подробности работы буду публиковать тут, так что стей тюнед.