jFap - Менеджер загрузок

Что это за х?! Это программа - качалка всего. В базовом виде теперь это просто менеджер загрузок - программа помощи быстрой стабильной и удобной загрузки файлов из интернета.
"Старый" функционал, также как и много нового, теперь обеспечивается набором модулей расширения (плагинов) к ней.

Как этим пользоваться?

Вот быстрая справка по элементам управления главного окна:

Меню организовано следующим образом:

Файл
    Выход - Завершит работу программы
Закачка
    Добавить закачку - Добавить новую закачку. Вызовет диалог добаления.
    Запустить - Запустит выделенную закачку.
    Остановить - Остановит выделенную закачку.
    Удалить - Удалит выделенную закачку.
    Копировать URL - Пока не сделано.
Настройки
    Настройка - Откроет диалог настроек.
    Одновременно закачек - Установка число одновременно загружаемых закачек.
?
    Справка - Пока не сделано.
    О программе - Пока не сделано.

Заметка: Если запускать, останавливать, удалять группу (это блок закачек, сворачивающийся в одну - заголовочную, о которой тут и идёт речь) - это действие будет применяться ко всем закачкам в этой группе. Исключая один момент: могут присутствовать и вложенные группы - они игнорируют любые над собой действия, их можно только раскрыть и свернуть.

Интерфейс клавиатуры:

INS - Добавляет закачку
R - Запускает
S - Останавливает
DEL - удаляет закачку
Стрелками вверх, вниз, кнопками PgUp, PgDown, End, Home можно перемещаться по списку закачек
Стрелками влево, вправо можно подниматься к заголовку группы, раскрывать и закрывать группы
Ctrl + C - на списке загрузок скопирует в буфер обмена текст выделенной строки, а на окне консоли - её содержимое.
Alt + F4 - выход из программы.

Добавление новой загрузки:

При выборе добавления новой загрузки выводится диалог в общем случае выглядящий следующим образом:

Отдельно отмечу:
Кнопка "§" записывает путь папки сохранения как по умолчанию, т. е. при всех следующих вызовах этого диалога будет изначально устанавливаться этот путь, до новой смены умолчания.
Всё что ниже выпадающего списка выбора плагина - зависит от конкретного плагина.
"Загрузить файл по URL" - тут общий случай, когда нет плагинов для работы с этим сайтом, или данный режим намеренно выбран (всегда присутствует в списке) - в этом режиме программа работает как простая качалка, записывающая в указанный (или самонастроеный, если поле оставлено пустым) файл данные, которые выдаст сервер по запрашиваемому адресу.
Пункт "Загружать в (n) пиров" - программа умеет грузить один блок данных установив несколько соединений с сервером, что значительно ускоряет процесс загрузки. Это поле определяет максимально разрешённое число соединений с сервером для получения запрашиваемых данных.

Плагины:

Плагины - это средство расширения функционала программы. Сами плагины - это библиотеки .dll, совместимые с программой. Для их подключения такие библиотеки нужно:
  1. Положить в папку с программой (туда, где 2fap.exe) и удостоверится, что добавляемый файл в своём имени не содержит пробелов и знаков ";"!
  2. Запустить программу, зайти в Настройки->Настройка->Плагины и нажать "Опросить имеющиеся библиотеки" для сбора и сохранения сведений о доступных плагинах. Отдельно отмечу что, в отличие от всех прочих диалогов настроек результаты сбора всегда сохраняются, даже если окно настроек было закрыто с отменой.
Удаляются плагины в последовательности, обратной установке.
Если ты сам хочешь добавить что-то своё к программе - предлагаю обратиться к документации разработчика плагинов.

Командная строка:

Запуск программы с URL в качестве первого аргумента спровоцирует автоматическое открытие окна добавления загрузки с этим URL
Последующие аргументы:
-l:Имя_библиотеки.dll - принудительный запуск этого плагина. Введено для удобства отладки плагинов.

Файл конфигурации settings.ini

[GENERAL]
DefSavePath=   Это путь к папке сохранения по умолчанию, устанавливается при открытии диалога добавления новой загрузки
DefUserAgent=   HTTP юзерагент, которым по умолчанию представляется программа. (переопределять умолчание могут плагины)
ProxyMoode=   Режим работы прокси. 0=Прямое соединение, 1=Взять настройки из ОС, 2=Брать настройки из этого файла
Следующие три настройки используются только если ProxyMoode=2.
ProxyHTTP=    Адрес:порт прокси-сервера для HTTP протокола.
ProxyFTP=    Для FTP протокола.
ProxySOCKS=    Адрес:порт SOCKS прокси. Если установлен - отключает ProxyHTTP и ProxyFTP, т. е. все запросы пойдут через указанный сервер.
MaxLoads=   Число одновременно разрешённых загрузок.
MinimalBlock=   Определяет стратегию создания пиров для загрузок в более чем один пир. Настоятельно рекомендуется не менять умолчания, но для соединений FastInternet (Dial-UP) и более медленных возможно подойдут меньшие значения, а для интернета с 100мб/с и более коаналом - более большие. Однако стоит помнить, что ширина твоего канала интернета не всегда определяет скорость подключения к конкретному серверу.
LogMaxMem= Существует, но не реализован. Должен определять предельные размеры буферов логов у закачек.
[PLUGINS]
LibsSz=    Размер, символов, значащей части Libs= (т. е. без учёта "Libs=")
Libs= Список известных плагинов. В формате: имя_библиотеки.dll - пробел - Его_обозначение_в_диалоге_добавления - точка с запятой - следующий плагин. Все имена не должны содержать пробелов, это относится и к именам файлов библиотек в папке с программой!
DomainsSz=   Размер, символов, значащей части Domains= (т. е. без учёта "Domains=")
Domains=    Домены и IP обрабатываемых плагинами сайтов. Строка в формате: URI - пробел - блока из Libs=, начиная с нуля, определяющий плагин - пробел - номер следующего плагина - ... - точка с запятой - следующий URI. Тут порядок номеров плагинов определяет приоритеты: самый левый (первый) будет автоматически устанавливаться в диалоге добавления загрузки по вводу подходящего URL.
[WINDOW]   В этом разделе хранятся метрики размеров и положения различных элементов интерфейса управления программы.

Известные глюки:

    Некоторым сайтам, ограничивающим число пиров, нужно вручную выставлять "Загружать в (n) пиров" в 1, иначе при загрузке данных программа сбивается, не может корректно ограничить число соединений и в итоге портит загружаемые данные. Также это правило настоятельно рекомендуемо для загрузки HTML страниц с сайтов и тому подобных запросов генерируемых данных. А более подробно - программа сбивается если сервер не отвечает отказом на созданный пир, но и не передаёт через него полезных данных, вообще. На данный момент известны: mail.ru и depositfiles.com.
    Не грузит с некоторых серверов по причине отсутствия хотя-бы базовой реализации HTTP заголовков. (некоторые серверы отдают то, что надо только если установлен заголовок reffer)
    При наличии нескольких сотен и более загрузок их состояния могут отображаться некорректно, отсутствовать содержимое консолей, некоторые загружаются  с нарушением их порядка в списке.
    Знаю о редких случайных глюках, когда клинит загрузку. Обычно при этом программа также портит загружаемые данные. Прошу сообщать от таком только в случае уверенной повторяемости, даже после перезапуска программы (что настоятельно рекомендуется, если такое произошло).
    Иногда программа довольно прожорлива к ОЗУ. Наличие в списке нескольких десятков тысяч загрузок может порождать проблемы с производительностью.
    Иногда наблюдал заклинивание загрузок на одном месте. Во всех случаях коррелировало с проблемами со стороны сервера. Остановка и повторный запуск возобновляет нормальную работу.

Лицензия

Данная программа распространяется как есть. Автор не несёт ответственности за последствия её использования.
Запрещено торговать программой (за исключением взимания разумной цены за носители) без ведома и разрешения автора.
Выкладка в прочих местах разрешена, однако в любом случае должна сопровождаться ссылкой на tesall.ru как место официального расположения программы и обратной связи с автором, а также указания что это тестовая первичная версия, использовать которую следует с осторожностью.
Все плагины разрешено выкладывать только после моего одобрения на предмет проверки совместимости и качества, последяя подразумевает предоставление мне исходников, включительно в виду возможной автокоррекции т. к. на данный момент я не берусь гарантировать обратную совместимость SDK плагинов.

Состав

2fap.exe Основной исполняемый файл программы.
2fapShare.dll
Билиотека вспомогательных функций программы и её плагинов.
settings.ini Файл сохранения настроек программы.
HELP
И всё что в ней - файлы справки к программе.
adultmanga.dll Плагин загрузки комиксов с Ридманги.
imgur.dll Плагин загрузки галлерей и видеороликов с имджхостера imgur.com.
PornTubes.dll Плагин загрузки видеороликов с сайтов видеохостингов. Текущий список поддерживаемых можно посмотреть в инфо библиотеки.
libcurl.dll Библиотека CURL, необходима для работы программы.
Если в твоей системе уже установлен CURL версий v7.53.1 и выше - удали этот файл.
Заметка: обязательны библиотеки CURL собранные с внешней связью с msvcrt.dll, в противном случае функции прокси работать не будут.

Совместимость

Для своей работы требует IBM-PC совместимую ЭВМ с поддержкой защищённого режима работы процессора, операционную систему (ОС) с поддержкой WinAPI v4 с расширениями UNICODE.
А по русски:
Windows 95, 98, Me, IF, SP3 с обновлениями/пакетами MSLU и KernelEx.
Linux, FreeBSD с установленным пакетом Wine
ReactOS - не пробовал, потенциально ДА, отпишитесь, у кого она работает.
Windows 2000, XP, Vista, 7, 8, 10