Здравствуйте, в этой статье хотел бы рассказать как можно довольно такие легко создавать плагины к популярному менеджеру закачек — DownLoadMaster (DM). Раньше мне была необходимость создавать плагин к данному менеджеру закачек, который мог бы перехватывать ссылки с файлообменных сервисов (не всех конечно), то есть с тех сервисов, на которых необходимо ждать пока появится ссылка, и плагин как получил ссылку сразу же отправлял в DM данную ссылку на закачку. В данной статье мы рассмотрим, что нам потребуется для создание плагина и пройдемся по методам API, которые предоставляют нам разработчики для создания плагинов. Так что Вы сможете под свой вкус написать плагин, который сможет качать с yotube и другие. Плагин для DM компилируется в *.dll, собственно для создания плагина нам потребуются файлы
- файл объявления интерфейса
- файл проекта плагина
- реализация тестового плагина
Данные файлы я создаю помощью мастера создания плагинов, в сети нашел хороший мастер создания плагинов, которые намного упрощает работу при создании конкретного плагина, то есть он создает определенный шаблон, в данном случае шаблон только для плагина DM.
Данные шаблон можно скачать тут, после установки он появится во вкладке Other-New, там будет значок DM (называться он будет DownloadMaster Plugin), вы нажимаете на создание, после чего появлятся окно
Данное окно Вы заполняется как следует, после заполнения всех полей, необходимо нажать на кнопку «Ok». После этого появятся файлы проекта плагина. Файл проекта
- название вашего плагина.pas — файл регистрации плагина
- название плагинаImpl.pas — реализация тестового плагина
- DMPluginIntf.pas — файл описание интерфейса
- *.dpr — файл проекта плагина
- имя плагинаSetupForm.pas — файл формы настроек
Вот небольшое описание файлов, которые создаются мастером. Далее перейдем к методам API DM, которые мы будем использовать в следующих уроках.
- function DoAction(action: WideString; parameters: WideString): WideString; stdcall;
Это функция можно сказать является одной из главной, которая может создавать какие либо события, получать информацию, например добавлять закачки, получать информацию о закачке. action может принимать следующие параметры
- AddingURL — добавление закачки
- GetDownloadInfoByID — получение информации о закачке
- GetMaxSectionsByID — возвращает количество секций, которое может быть открыто одной закачкой, с указанным ID
- GetDownloadIDsList — получаем список идентификаторов закачек в DM
Остальные параметры можно посмотреть в файле
- function EventRaised(eventType: WideString; eventData: WideString): WideString; stdcall;
Которая помогает сделать какое-либо действие на определенной событие, eventType может быть следующим
- plugin_start — включаем плагин;
- plugin_stop — выключаем плагин;
- dm_timer_60 — возникает каждые 60 секунд
- dm_timer_10 — возникает каждые 10 секунд
- dm_timer_5 — возникает каждые 5 секунд
- (для отработки чего-либо каждую минуту);
- dm_download_state’, IntToStr(ID)+’ ‘+IntToStr(integer(State))) -
- возникает при изменении состояния закачки с указанным ID.
- State = (dsPause, dsPausing, dsDownloaded, dsDownloading, dsError, dsErroring, dsQueue);
- ‘dm_download_added — возникает когда добавлена новая закачка с указанным ID;
- dm_downloadall — возникает когда все закачки завершены;
- dm_start — возникает когда dm стартовал;
- dm_connect- возникает когда dm установил какое-либо соединение;’
- dm_changelanguage — сообщение о изменении языка в ДМ-е
Кроме этого, если Вам понадобится какое-то новое событие, Вы всегда сможете обратится к разработчикам для добавление данного события. Ну в принципе основное рассказал, более понятнее будет, когда рассмотрим какой-то либо пример, а рассмотрим мы его завтра, будем добавлять какую-нибудь ссылку и получим например о ней информацию или добавим ссылку такую, что необходимо будет пропарсить, а затем только можно будет качать, а у нас уже сразу будет конечная ссылка добавляться.