Здесь я привожу список модулей, основанных на доработанном Plugin SDK, и их зависимости.
За доработку Plugin SDK огромное спасибо товарищу DRONу с Королевства Delphi.
Сервисы первого уровня:
1. Окно подтверждения с таймером (ServiceAskForm). Проверочный модуль.
По команде выводит окно подтверждения с кнопками ОК и Отмена и указанными заголовком, текстом, кнопкой по умолчанию, временем закрытия, временем фокусировки на окно. В результате возвращает уникальный идентификатор окна.
Результат закрытия окна (нажатую кнопку) возвращает в событии.
2. Объём папки (ServiceDirSize). Проверочный модуль.
По команде вычисляет объём указанной папки, который возвращает в результате.
3. Перезагрузка (ServiceReboot).
По команде перезагружает компьютер (также может выключить), не зависит от операционной системы.
4. Дополнительная информация загрузки (ServiceExtDldInfo, бывший ServiceSizeTimeDiff). Проверочный модуль.
Вычисляет для каждой активной загрузки:
объём скачанного за 5 сек;
время, прошедшее с момента запуска (перехода в состояние "Скачивается");
запоминает оставшееся время (для использования в OSD);
По команде возвращает данные в результате.
Также может возвратить предыдущий размер файла (для использования в возможном аналоге Trayindicator);
5. Шифратор (ServiceCipher).
Простой шифратор по ключу. По команде [де]шифрует переданные данные и возвращает в результате.
6. Регулярные выражения (ServiceRegExpr). Проверочный модуль.
Возвращает результат проверки текста на совпадение с регулярным выражением.
7. Система (ServiceSystem).
Определяет:
время работы системы;
время неактивности пользователя;
заголовок и файл полноэкранного приложения.
8. Значки в трее (ServiceTrayIcons). Проверочный модуль.
Допускает произвольное количество значков в трее, вывод произвольного значка (по дескриптору из программы или модуля) и подсказки к нему, вывод произвольного одноуровневого всплывающего меню у значка, передачу событий (щелчков мышью по значку или в меню) в события (EventRaised) модулей.
9. Перезапуск DM (ServiceRestart).
Перезапускает DM по команде, нажатию кнопки "Настройка" или щелчку в меню "Плагины". Таким образом, проверочный модуль ему не требуется, но будьте аккуратны.
10. Фильтр загрузок (ServiceFilter). Проверочный модуль.
Выбирает из списка загрузок индентификаторы загрузок, соответствующие заданным условиям (13 полей). Можно задать список загрузок, исключаемых из поиска. Некоторые поля требуют установленного ServiceRegExpr.
Сервисы второго уровня:
1. Proxy Manager 0.2 Проверочный модуль.
Основное назначение: дать возможность контролировать и использовать настройки прокси серверов из одного места, т.к. доступа к встроенному в DM менеджеру прокси нет.
Зависимости: ServiceCipher (не включён в архив)
2. Link to USD 0.1
Основное назначение: проверка ссылок на возможность скачивания при помощи Universal Share Downloader, передача ссылок в USD.
Зависимости: ServiceRegExpr (не включён в архив)
3. Command Centre (в процессе тестирования, RC)
Основное назначение: выполнение команд (именованных последовательностей операций с DM) из модулей, описание команд задаётся при помощи скриптов, совместимых с FastScript.
Зависимости: ServiceDirSize, ServiceReboot, ServiceSystem, определяются
Альфа-комплект и проверочный модуль.
Альфа-комплект содержит Command Centre, ServiceRestart и скрипт, выполняющий перезапуск DM по команде из проверочного модуля.
4. Remote Users 0.1 Проверочный модуль
Основное назначение: хранилище идентификаторов и уровней доступа пользователей для модулей удалённого управления.
Зависимости: нет
Модули:
Auto Switch Extended 0.4.3
Основное назначение: переключение на следующую загрузку, когда скорость текущей упала ниже заданной.
Зависимости: ServiceExtDldInfo (включён в архив)
Rebooter Extended 0.3
Основное назначение: перезагрузка компьютера при падении скорости скачивания.
Зависимости: ServiceAskForm, ServiceDirSize, ServiceReboot, ServiceSizeTimeDiff (включены в архив)
ICQ Remote (в процессе тестирования, RC)
Основное назначение: удалённое управление DM через ICQ. Наследник и последователь дела ICQ RemoteCP.
Зависимости: ServiceCipher, ServiceTrayIcons, Proxy Manager, Command Centre, Remote Users.
Auto URL Replace 0.3
Основное назначение: автозамена ссылок на файлы одинакового размера с одного источника.
Зависимости: ServiceFilter, ServiceRegExpr.
Downloads Cleaner 0.1
Основное назначение: очистка списка загрузок с отбором ненужных по 15 критериям.
Зависимости: ServiceFilter, ServiceRegExpr.
Примечание.
Сервисы, не задействованные в модулях, прошли только предварительное тестирование и могут содержать ошибки.
Модули с сервис-ориентированной моделью
Moderators: Korney San, marcipan
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Модули с сервис-ориентированной моделью
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Re: Модули с сервис-ориентированной моделью
Молодец. Далеко пойдешь. Я вообще задумал весь доунлоад менеджер (приемник несостоявшегося Extended Downloader и UF Download Manager) построить на плагинах. Еще не скоро он кому-то составит конкуренцию, но начало многообещающее. Пример такой схемы: среда разработки qt creator. Не смотря на ресурсоемкость пока удается вписатся в 10 мб оперативки. Зато перспектива расширения весьма не плохая. Но есть и недостатки - язык разработки плагинов только с++/qt. а также компилятор mingw. Но так как проект опенсорс (LGPL, для линковки с своими закрытыми плагинами), то особых проблем с созданием плагина позволяющего писать на других языках пусть и с ограничниями возникнуть не должно. Неудачный опыт с первыми двумя проектами дал мне понять что бессмыслено писать то что написано до нас. Я пересмотрел свои взгляды на программу в целом и перевел ее под лицензию LGPL, что позволяет мне не тратить время и пользоватся уже написаными продуктами такими как cURL, Extension System из Qt Creator.
Чтобы совсем уж не оффтопить скажу одно. С системой плагинов, да и доунлоад мастрером в целом разработчикам надо что-то делать. Так как я в одиночку нет, а конкуренты уже в спину дышут по удобству (по функционалу некоторые и перешли). Но надо и должное отдать. По сравнению с другими бесплатными и или опенсорс качалками дм пока еще борется успешно.
Это все. Спасибо за внимание.
Чтобы совсем уж не оффтопить скажу одно. С системой плагинов, да и доунлоад мастрером в целом разработчикам надо что-то делать. Так как я в одиночку нет, а конкуренты уже в спину дышут по удобству (по функционалу некоторые и перешли). Но надо и должное отдать. По сравнению с другими бесплатными и или опенсорс качалками дм пока еще борется успешно.
Это все. Спасибо за внимание.
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Re: Модули с сервис-ориентированной моделью
Я уже слышал от других пользователей DM предложения написать свой менеджер. Или взять исходники этого и...vasa_pmr wrote:Молодец. Далеко пойдешь.
Начну с конца. Я пока не нашел бесплатную (да и хотя бы платную - была бы программа, а кряк найдётся ) качалку, в которой хотя бы была сама система плагинов. Не говоря уже о "широте" DM. И не мечтая о подобии Miranda, где любой модуль может перехватить нужную ему функцию/данные, добавить свои и прочее. А поддержка протоколов кроме HTTP и FTP в виде плагинов для DM вообще фантастика - в то время как я лично написал для Миранды псевдопротокол. На Delphi.vasa_pmr wrote:С системой плагинов, да и доунлоад мастрером в целом разработчикам надо что-то делать.
...
По сравнению с другими бесплатными и или опенсорс качалками дм пока еще борется успешно.
Что касается самой системы плагинов...
С самого начала пользования DM и разработки под него всяких примочек меня нервирует безразличие разработчиков к обращениям. Что по электронной почте - складывается ощущение, что они включили АнтиСпам Касперского на полную мощность. Что по ICQ - за три года я ни разу не видел в онлайне указанный в контактах номер, а потом он вообще исчез из раздела. Что на форуме - молниеносная реакция следует лишь на сообщения, несущие угрозу репутации программы, все остальные - просматриваются ли хотя бы?Пишите мне на: slava@westbyte.com для добавления необходимых вам событий.
(с)2006 Вячеслав Витер
Поэтому я решил сделать всё сам. И даже изобрёл небольшой велосипед, который может похвастаться функцией, недоступной в DM - "горячее" подключение и отключение плагинов. Но этот путь, даже на мой непрофессиональный взгляд, был тупиковым - и я решил попросить помощи. И нашёл её. Заинтересовавшийся человек сделал возможным существование "сердца" идеи Thunk - межплагинного обмена, пусть и чисто по-русски, через... её самую. Этот человек развязал мне руки.
Я переписываю код своих плагинов - в них слишком много повторяющихся участков. Достаточно для выделения в самостоятельную часть - а уже к ней обращаются все, кому нужно. И вот они:
сервис первого уровня - чисто функция, не требующая каких-либо настроек;
сервис второго уровня - функция, для работы которой требуются настройки либо сервис (первого или второго уровня);
модуль - русское значение слова plugin, то самое расширение, которое выполняет полезную работу при помощи сервисов и, возможно, других модулей.
Я поражён простотой решения моей проблемы и удивлён, как разработчики DM прошли мимо него и придумали тот способ написания плагинов, который описан в SDK. Не говоря уже о нежелании добавить обработчик новой функции.
И я расслаиваю свои плагины на сервисы и модули, оставляя в каждом лишь основу, необходимую для работы, а не для засорения памяти дублированием "одинаковых" данных.
Вот такой вот "крик души".
P.S. Покажите мне качалку, у которой можно через плагины управлять загрузками вплоть до удаления, а сами плагины писать на Delphi - и я сменю пристрастия.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Re: Модули с сервис-ориентированной моделью
при подключенном сервисе вот такая ошибка почемутоKorney San wrote:1. Окно подтверждения с таймером (ServiceAskForm). Проверочный модуль.
По команде выводит окно подтверждения с кнопками ОК и Отмена и указанными заголовком, текстом, кнопкой по умолчанию, временем закрытия, временем фокусировки на окно. В результате возвращает уникальный идентификатор окна.
Результат закрытия окна (нажатую кнопку) возвращает в событии.
XPProSP3 (zver) DM 5.13.2.1317 Опера 12.01.1532
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Re: Модули с сервис-ориентированной моделью
Странно. Пару плагинов работают и в ус не дуют...ponand wrote:при подключенном сервисе вот такая ошибка почемуто
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Re: Модули с сервис-ориентированной моделью
странно то, что почемуто, только если из трея закрывать ...Korney San wrote:Странно. Пару плагинов работают и в ус не дуют...
провел различные эксперементы вылитает даже при отключенных всех плагинах и серверах кроме него
XPProSP3 (zver) DM 5.13.2.1317 Опера 12.01.1532
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Re: Модули с сервис-ориентированной моделью
Что ж, буду следить. Может, найду.ponand wrote:странно то, что почемуто, только если из трея закрывать ...
провел различные эксперементы вылитает даже при отключенных всех плагинах и серверах кроме него
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд