LiS-31 — Универсальный загрузчик
Лирическое отступление
В последнее время заметна тенденция к принципу "одного окна", и не только в Российской административной системе :). Человека окружает все больше и больше разнообразных сервисов, но увеличение количества программ для работы с ними не есть гуд...
Благодаря этому широко развиваются кмплексные программы. Для примера сравните количество и популярность мультипротокольных IM-клиентов и их специализированных аналагов. Или посмотрите как браузеры начинают вбирать в себя все больше и больше функций... Теперь каждый из них может похвастаться наличием RSS-ридера, а так же множеством дополнений для работы с почтой или прослушивания он-лайн радио. Дальше всех, под лозунгом "Весь интернет из одной программы", пошли Опера и SeaMonkey.
Описание ситуации
Но это стремление удивительным образом обходит область Download-менеджеров... Нет ни одного примера, который бы мог претендовать на "загрузку оттовсюду".
Существующие способы загрузки файлов можно разделить на 3 группы:
1) Классические Download-менеджеры.
2) Программы автоматического скачивания с файлообменных сетей (на подобие Depositfiles или RapidShare).
3) Торренты.
У каждой группы есть свои плюсы и минусы. Так например 1-ая группа наиболее развита, в силу наиболее раннего зарождения. Но ее вытесняют 2-я и 3-я. Несмотря на свой расцвет вторая группа, не смогла достаточно сформироваться из-за краткости своей истории и естественного противодействия сос стороны самих сетей. Главный минус данных программ это их реализация - мне не удалось найти ни одной программы, написанной на компилируемом языке (например Си или Си++). Торренты, же по своей природе стремятся перекрыть весь интернет-канал, усложняя параллельную работу с 1-ой или 2-ой группой.
Собственно идея
Так вот перехдя к сути хочется сказать, что мне очень нехватает программы, которая бы соединяла в себе сразу 3 группы.
Естественно она должна быть OpenSourse, иначе ее ждет забвение т.к. одному человеку невозможно следить за достаточным количеством файлообменных сетей, для поддержания актуальности плагинов. Исходя из этого я решил посмотреть какой из загрузчиков может послужить основой этого проекта. И нашел Gift и GUI к нему - KCeasy. К сожалению, оба проекта заброшены 5 и 2 года назад, соответственно.
GiFT представляет собой кросплатформенный p2p-демон. Протоколы торрент-сетей выполнены плагинами, что способствует расширению функционала программы. Для начала будет достаточно реализовать протокол BitTorrent, который, к сожалению, не поддерживается, и HTTP и FTP. Это позволит объединить 1ю и 3ю группы.
Для работы с файлообменными сетями я предлагаю использовать уже имеющиеся плагины от других программ. Для этого достаточно написать небольшой модуль-преобразователь, который будет получать ссылку на файлообменник, а возвращать прямую ссылку на закачку. Это позволяет решить сразу несколько проблем: Во-первых, интерпретируемые языки используются на совсем незначительное время, и после этого освобождают память компьютера от виртуальной машины. Во-вторых, подобные преобразователи можно сделать для нескольких программ, что расширит список поддерживаемых сервисов и даст возможность выбора в использовании виртуальной машины для интерпретации модуля. Я знаю как минимум о наличии плагинов на Java, .NET и Python. К тому же никто не мешает, со временем, переписать эти плагины на Си, или любом другом машинном языке.
P.S. Буду рад помощи. Как практической, так и советам. Может кто найдет еще плагины для GiFT (я нашел Gnutella, OpenFT, Ares(но неуверен что это протокол)), или более подходящую под указанные цели программу. Так же буду рад какой-либо документации по этим программам т.к. я не нашел ничего.
P.P.S. Если кто знает как можно восстановить проект по make-файлу, буду признателен. Все хранящиеся сборки лишены файла проекта, или я нетуда смотрю))