Проект. Генератор Бесконечного плейлиста
Начало
Давным-давно, в далёкой-далёкой галактике... Существовал канал 2×2. Не самая его первая версия, а та — легендарная версия легендарного 2007-го... Как же была гениальна идея собрать сетку вещания из мультов с взрослым рейтингом и/или взрослыми сюжетами! Наравне с «гоблинскими» переводами это стало неотъемлемой частью моей личности и навсегда останется как уникальный опыт.
Но со временем канал ушёл в кабельное вещание, а я — в интернет... И вот в погоне за тем ностальгическим чувством был начат проект «Бесконечный плейлист» aka «Свой 2×2 „с преферансом и куртизанками“».
Идея проста: берём горсть сериалов и шоу, из которых будем собирать свою сетку, с помощью «генератора плейлиста» формируем плейлист и запускаем на медиа-приставке на бесконечное проигрывание. По итогу достаточно переключиться на приставку и начать смотреть плейлист.
Реализация
Отправной точкой написания собственного генератора стало утверждение: какие-то сериалы можно смотреть вразнобой, а какие-то — строго по порядку. Значит, сериалы должны лежать в разных каталогах, например в Random и Straight. Случайно выбираем Random или Straight, заходим внутрь, случайно выбираем сериал, и потом в зависимости от того, какой это сериал («случайный» или «упорядоченный»), выбираем серию — случайно или по порядку. Записываем в плейлист и на новый круг...
Смотрю результат: поначалу всё хорошо, но ближе к середине видно, что «упорядоченные» серии кончились и идут только серии из «случайных» сериалов. Лд, значит, надо добавить веса случайности: если в Random десять сериалов, а в Straight один, то Straight должен выбираться в десять раз реже, чем Random. Делаю, запускаю, смотрю...
Ага, понятно: этот же принцип надо применять и к сериям одного типа, иначе если из тех десяти сериалов в Random во всех, кроме одного, будет по пять серий, а в одном — 50, то эти серии тоже будут образовывать «комки» в плейлисте. Переписываю, запускаю, смотрю...
Кайф, всё работает. Но хочется ещё одного: если серия разбита на части, то хочется посмотреть всю «серию» целиком, неважно, Random это или Straight. Так у некоторых серий в названии в конце появились приписки вида (Part 1), (Part 2), (Part 3) и т. д.
Финал
На этом пока всё. Проект выложен в открытый доступ.
Привет!