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

Разработка комплексного менеджера загрузок с сетевым интерфейсом

Приветствую вас, Хаброчитатели!!


Общий треп:)

В этом топике мне хочется рассказать о одной из моих идей в области программирования.
Я думаю, всем активным пользователям интернета известен не один менеджер загрузок, а с десяток. Вполне закономерен вопрос «Зачем создавать еще один?». Попробую объяснить свои мотивы. Я задумался над этим проектом по нескольким причинам:
  • Во-первых, я не обнаружил ни одного загрузчика с файлообменных сервисов, написанного на Си (или любом другом не интерпретируемом языке программирования). Все дело в том, что интерпретаторы, кроме того что замедляют работу программы, в какой-то степени снижают ее надежность (у меня последнее время участились случаи, когда после работы загрузчика всю ночь, он перестает реагировать на какие-либо действия, и вешает всю систему)
  • Во-вторых, для полного покрытия потребностей загрузки, на данный момент мне требуются 2 программы (я использую JDownloader и OrbitDownloader) — одна работает с файлообменниками и, в зависимости от ситуации, с обычными http или ftp загрузками. Вторая, благодаря тесной интеграции с IE работает на загрузку продутктов MS с Dreamspark.com. Отсутствие единой программы порой очень затрудняет их использование, так как каждая из них стремится забрать весь трафик на себя.
  • И в-третьих, (что самое важное) мне хочется организовать возможность управления программой по локальной сети. Я занялся организацией домашней сети и хочу один ПК выделить под «центр загрузок». Поскольку в большинстве своем в интернет я выхожу с ноутбука, приходится загрузки останавливать, если требуется взять его с собой.
  • Ну и в-четвертых, это отличный способ выучить не только язык, но и основа работы сети и сетевых программ:)


Общая схема

Исходя из всего вышесказанного, мне представляется программа с клиент-серверной архитектурой. На каждый ПК в сети устанавливается агент загрузчика, который перехватывает ссылки на загрузку (скорее всего сам проверяет корректность ссылки т.е. наличие плагина к файлообменнику из локального списка), после чего выводит окошко с настройками загрузки (куда сохранить, как назвать и т.д.) и передает инструкции к началу закачки в серверную часть.
В свою очередь сервер-загрузчик, приняв все указания, начинает скачивать файл. Причем сперва он сохраняет файл в собственной директории на сервере, и только после его окончательного скачивания копирует в указанное место запросившего компьютера.

Запчасти для Франкенштейна

Это та часть, из-за которой и была написана эта статья…
Так как написать «с нуля» подобную программу для меня не реально, она будет базироваться на Open Source проектах, в выборе которых я попрошу помочь Вас. На данном этапе я это представляю так:
В основе будет лежать FreeDownloadManager — он мне не особо нравится из-за немаленького размера. В данный момент он выбран только из-за того, что я уже рылся в его исходниках, хотя и не особо глубоко:)
Плагины, на первое время, я предполагаю брать от JDownloader и FreeRapidDownloader. Для этого придется написать небольшую программку, которая будет выполнять роль транспорта: обрабатывать ссылку, возвращать прямой URL, и активировать плагины, т.к они написаны на Java, и возможности непосредственной интеграции их в программу я не вижу. Так же подобная архитектура позволит легко расширять списки имеющихся плагинов, основываясь на базах других программ. Если кто знает Open Sourse проект, который использует плагины к файлообменникам компилирующиеся в машинный код, буду неимоверно благодарен.
И требуется Ваш совет по поводу Torrent-клиента. Требования все те же — легковесность, открытость, желательно использование C/C++.

P.S. Этот пост был написан не для получения инвайта (от которого я тоже не откажусь :)), а как обращение к наиболее информированной аудитории. Буду признателен за примеры программ, код которых может как-то повлиять на разработку или ценные идеи по реализации. Так же буду рад если такая программа уже существует (тогда просто присоединюсь к существующему проекту) или если найдутся добровольцы, которые решат мне помочь (а так же примут на себя ответственность по наставлению меня на путь истинный. Я уже упоминал о слабых знаниях языка, которые компенсируются быстрой обучаемостью и целеустремленностью).
P.P.S. Из-за незнания устройства песочницы, не уверен в возможности участия в комментариях и дальнейшем обсуждении :( Так же извиняюсь за характер изложения, сочинения не являются моей сильной стороной.

Заранее Спасибо всем откликнувшимся.

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