Vugluskr
Java popcorn прокино прожизнь программирование *длядуши Не так давно я рассказывал про хуйнюшку, которая фильмы качает домой с сервака. С тех пор я всё это время с ней сношался вечерами. И вот наконец версия 0.99 готова. Что в результате имеем. Сервер — мониторит transmission на предмет скачиваний. Для каждого торрента, если тот содержит фильмы (определяем по расширению), создает запись, ломится в imdb, если находит что-то подходящее — берем название, делаем .nfo, берем постеры и баннеры. Если это сериал — то создаем структуру сезонов-эпизодов. Для фильмов картинки берутся с fanart, для сериалов — с tvdb. Если всё нашлось, то при отстуствии действий со стороны админа, через час фильма будет выставлена на скачку для клиента, если она уже докачалась в трасмишне; если не докачалась — подождем докачки, потом так же час буферного времени и вперёд. Если не нашлось (название торрента совсем хуёвое), то будем ждать админа. Админ через веб-интерфейс может поправить всю детализацию, удалить к хуям, добавить/заменить постер/фанарт и т.д.
Клиентик. Живет дома, раз в N минут ломится на сервак, в сокет. Посредством json-протокольчика они с сервером обемниваются данными — авторизация и каталог доступного для скачивания. Клиент определяет, что ему нужно скачать. Смотрит на размеры файлов, делает разбиение на потоки. У клиента есть несколько ограничителей:
— количество потоков на скачивание лимитировано
— в конфиге настраиваются так называемые caps — ограничения по дням недели и/или времени суток. Штоп оно не жрало весь наш дохленький канальчик, пока мы с женой всякие вконтактики вечером читаем.
— каждый поток скачивает не более N байт от файла.
То есть, например, если файл — 25 гиг, клиент разбивает задачу на 75 частей по 330 мб (условно) и начинает это дело сосать. Итак, после всех ограничений, клиентик определил что ему качать, можно ли качать (не забит ли пул тредов) и каким образом ему качать (медленно и печально или стремительно и борзо). После этого, он опять общается с сервером, запрашивает разрешение. Сервер выдает ключики, клиент открывает коннекты на другой порт и начинает сливать доброе добро в несколько горл. Тредики пишут в один файл асинхронно, ведется учет меток и позиций. Есть обслуживание обрывов связи, зависания рутера, отказа канала. Есть принудительное понижение "жадности", если отклик хуевый. Есть возвраты и перекачивание частей, если вдруг учет лажанул.
По окончании скачивания, берутся баннер/постер, nfo, всё это дело правильно именуется и укладывается, и в финале дергается ненаглядный попкорн, штоп он проапдейтил свою базку, на предмет новой фильмы.

Чего хотелось достичь. Во-первых, минимизировать моё человеческое участие во всём процессе. Этого я достиг полностью. Если начальный торрент называется хоть как-то более-менее правильно, то практически наверняка всё случится само собой. За это спасибо imdb-шному поиску — релевантность выдачи крайне на высоте.
Во-вторых, постеры-баннеры. NMJ встроенный в попкорн в этом плане хромает на все 4 лапы, сука. Самостоятельно постоянно промахивается и не находит картинок. А смотреть на правильные обложки/задники гораздо приятнее, чем на умолчательные картинки.
В-третьих, непрерывность процесса. Я постоянно забывал перебрасывать скачанные фильмы, апдейтить попкорн. И плюс ко всему, ставишь на закачку из дома — рутер повис или канал ебнулся и все встало раком. Раздражало пиздец. Это тоже победил.
В-четвертых, хотелось сделать клиентик "одним куском" без ебнутых зависимостей, без базы данных, без развесистых настроек. Этого достиг. Один jar, с одним конфигом из 10 строк. Можно отдавать друзьям, можно качать с другого места и т.д. Переносимость, мультиплатформенность, етц :) Java rulez.
И последнее. Ставишь сливаться большой файл. Жена детей накормила, спать уложила, села в чятиках болтать, а канал засран шопестец, она начинает ныть, мол "интернетов нету". И так каждый день. Очень хотелось сделать нормальный шедулинг. Тоже сделано.
Итого, я отличный молодец, все поставленные цели успешно отпобедил.
trapdoor
офигенчик popcorn Начала читать Diamond Age. Довольно бодренько, не то, что Криптономикон, который я с трудом осилила. Возможно из-за смены формата и языка, мб оригинал бы и не такой нудный был бы. А может просто сеттинг более интересный сам по себе.
trapdoor
popcorn Arrow это какой-то бэтмен для девочек, судя по ресницам ГГ. Периодически попахивает сумерками, но в целом вполне смотрибельно.
Dimez
c200 popcorn Вчера восстанавливал popcornhour.com
Грёбаные индусокодеры при перепрошивке в алгоритме форматируют флеш, насколько я понял из обсуждений, высокоуровнево и, соответственно, без помечания бэдов. В NAND самсунга появились бэды и всё, плеер труп. Однако умельцы всё расковыряли. Подключил консоль, разлил на SATA специальный образ с YAMON'ом, закоротил флеш при загрузке, загрузился с диска, забэкапил на tftp устройство-специфичные вещи, отформатировал NAND несколько раз, куча бэдов пофиксилась, залил восстановительные и забэкапленные блоки с tftp, плеер как новый. А так материнку заказывать 50 ойро + 20 доставка. Или ремонтировать тут, примерно за ту же цену.