Page 1 of 18

Заявки пользователей для создателей расширений

Posted: 17 Mar 2006, 8:05 Fri
by Tauman
Если принимаются заявки и предложения, то я начну :):
  1. ReloadDM - плагин, добавляющий кнопку, при нажатии на которую Download Master перезапускался (закрывался и снова открывался). Бывает необходимо при изменении настроек или подключении нового плагина. Идея взята с плагина ReloadTC для Total Commander.
  2. Keyconfig - плагин, позволяющий переназначить абсолютно все горячие клавиши. Стандартными средствами можно настроить только 8 клавиш. Идея взята с одноименного плагина для Mozilla Firefox.

Posted: 17 Mar 2006, 8:20 Fri
by marcipan
Tauman, думаю нужно выложить их в: "Плагины (Plug-ins)" и оформить как предыдущие с Вашими скриншотами, а там возможно и "хотелки" пойдут.

Posted: 17 Mar 2006, 8:33 Fri
by Tauman
marcipan
Я не плагинописатель, это названия несуществующих пока плагинов, чтобы их легче было назвать, скриншоты пока не по чем делать :(.
На форуме Mozilla.Ru там похожая тема есть :), подумал может тут сделать что-то подобное.

Posted: 18 Mar 2006, 3:34 Sat
by SCHMaster
2marcipan
Tauman делал скриншоты с уже готовых плагинов (моего производства :wink: ). За что ему огромнейшее спасибо, как и за написание HELP-а к этим-же плагинам - тут в-а-аще спасибище (ну нехватает у меня уже просто пороху еще и на писанину хелпа, как, впрочем и документации вообще - на работе начальство пилит по тому-же поводу постоянно :D ) !!!

2Tauman
---------------------------------
ReloadDM - плагин, добавляющий кнопку ....
1. Куда кнопку?
2. Перегрузить из плагина непроблема (кстати ReloadTC не плагин а внешняя программа :)), но зачем? При изменении какаих-либо настроек, тем более если вызвана форма настроек, нормальный программист просто обязан предусмотреть считывание настроек, а иначе для чего они нужны? Ссылки на TotalCommander неуместны, т.к. существует принципиальные различия как в архитектуре плагинов для ТС и для DM, так и назначение перегрузки TC:
TotalCommander нужно перегружать
1. При установке нового плагина, и то не всегда.
2. При изменении приоритета загрузки Lister плагинов (*)
3. При изменении некоторых параметров загрузки Lister плагинов (*)

(*) Перезагрузка необходима, если в момент внесения изменений в INI файл ТС загружен (открыто окно) один или несколько Lister плагинов. Если открытых окон нет, достаточно отправить сообщение Total Commander "выгрузить все плагины" и "перечитать настройки".

Что из этого присутствуетв DownloadMaster? Ничего? Так нужна перегрузка DM или нет?

---------------------------------
Keyconfig - плагин, позволяющий переназначить абсолютно все горячие клавиши
Существующий API просто не дает таких возможностей. И вряд-ли даст в будущем. Подробнее?
Во-первых каким образом ты представляешь механизм работы такого плагина? Если сама программа использует определенное кол-во каких либо хоткеев, то добавить что-то еще весьма сложно (хотя можно, но это уже смахивает на хакерство).
Во-вторых это возможно если....
.... предусмотрена такая возможность авторами в API для плагинов (не подходит)
.... Существует открытый список внутренних комманд (как в LightAlloy, тип WM_ЧТО_ТО_ТАМ и многих других программах, тоже неподходит)
.... тупо "править" фал настроек DM, и то, если там такие настройки вообще присутствуют - не берем те 8-клавишь (опять неподходит)

Прошу прощения за такой "разнос", зато (вроде) аргументировано :D

Posted: 19 Mar 2006, 19:07 Sun
by Tauman
SCHMaster
TotalCommander нужно перегружать:

1. При установке нового плагина, и то не всегда.
2. При изменении приоритета загрузки Lister плагинов (*)
3. При изменении некоторых параметров загрузки Lister плагинов (*)
...
Что из этого присутствует в DownloadMaster? Ничего? Так нужна перегрузка DM или нет?
Только что специально сделал маленький тест, происходит ли изменение настроек DM без перезагрузки. Пробовал скачивать маленькую страничку (скажем http://google.com) для быстроты. Скачивал ее с подключенным плагином Descriptions и без. При включенном плагине попрежнему создается description.txt и открывается в редакторе, как и указано в настройках плагина. Отключаю плагин, и без перезагрузки DM description.txt перестает создаваться. То есть настройки сразу изменяются без перезагрузки, во всяком случае, с этим плагином. Хорошо, а теперь интересно, изменяются ли настройки самого DM без перезагрузки. В Настройках - Закачки - Разное пытаемся закачать ту страницу с включенной опцией: "Обновлять файл descropt.ion при сохранении закачанного файла". При отключенном состоянии даже без перезагрузки, descript.ion перестает создаваться. Все, первый плагин отпадает, из-за ненадобности!
ЗЫ: Кстати, почему эта тема так тебя задела ;)?
-----------------------------------------------------------------
Во-первых, каким образом ты представляешь механизм работы такого плагина? Если сама программа использует определенное кол-во каких либо хоткеев, то добавить что-то еще весьма сложно (хотя можно, но это уже смахивает на хакерство).
На самом деле в программе не 8 хоткеев, а больше. Но только эти 8 можно переназначать в Настройках - Интерфейс - Горячие клавиши. Остальные можно узнать в справке, в разделе Разное - Горячие клавиши. Лично мне нужно переназначить сочетание клавиш для Переместить Вверх (Alt+Up) и Переместить Вниз (Alt+Down) в списке закачек. Эти сочетания не совпадают с аналогичными командами в программе USDownloader, там это выполняется по (Ctrl+Up) и (Ctrl+Down). Имхо, было бы удобнее если в двух программах эти команды будут выполняться одинаковыми сочетаниями клавиш.

Posted: 20 Mar 2006, 3:30 Mon
by SCHMaster
2Tauman
Ну во-первых - что значит "тема задела"? Просто написал с пояснением :).
Во-вторых. Если DM не применяет настройки без перегрузки ( :?: ), то выход не в написании плагина, а в исправлении такого состояния дел :wink:
В-третьих с хоткеями повторю
это возможно если....
.... предусмотрена такая возможность авторами в API для плагинов (не подходит)
.... Существует открытый список внутренних комманд (как в LightAlloy, тип WM_ЧТО_ТО_ТАМ и многих других программах, тоже неподходит)
.... тупо "править" фал настроек DM, и то, если там такие настройки вообще присутствуют - не берем те 8-клавишь (опять неподходит)
- ничего из этого просто нет. Опять-же - плагин тут не поможет. Не тот топик :D

Posted: 18 Apr 2006, 18:34 Tue
by sorockinalex
Привет! Возможно ли написать плагин, который все настройки DM и базу писал бы в папку с самой программой, а то, что в реестре и в в Documents And Settings насрано удалял бы и блокировал туда запись???? Только писал бы в папку с программой! Очень нужно!!! Просто жизненно необходимо!!!

Так же прошу проголосовать ТУТ, если вы хотите, чтобы Download Master стал портабельной программой и разработчики послушали нас! Очень прошу всех проголосовать! Что такое портабельная программа - там можете узнать. Также есть любопытная ссылка на простенький портабельный менеджер закачек. Заходите!

Posted: 19 Apr 2006, 1:29 Wed
by SCHMaster
Возможно ли написать плагин, который все настройки DM и базу писал бы в папку с самой программой
При нынешнем API плагинов, да и при используемой архитектуре самой программы сие невозможно.
...чтобы Download Master стал портабельной программой и разработчики послушали нас!
Вряд-ли... Читай про архитектуру Download Master, и технологию COM (что это такое - в поисковике). Проще написать новую программу, чем переписывать готовое.

ПЛАГИН: Проверка качества связи

Posted: 20 Apr 2006, 7:18 Thu
by fecell
ПЛАГИН: Проверка качества связи
Техническое задание. (краткое)
Цель: Улучшение работоспособности ПО.
Задача: Необходимо создать плагин, который будет проверять качество связи, далее "связь", и при необходимости выполнять переподключение к сети.
Требования: Плагин должен предоставлять пользователю возможность выбора следующих параметров: 1) Интервал(ы) проверки связи, 2) Методы проверки связи, 3) Предпочитаемые сетевые подключения. Плагин должен осуществлять проверку активного расписаний, включая расписания плагина "Advanced Scheduler" - для функционирования только в указанных временных интервалах.
Методы проверки связи: Плагин должен поддерживать 4 основных метода проверки связи: 1) ICMP ECHO, 2) проверка http сервера (get 404.html), 3) провекра ftp сервера (connect 21), 4) direct connect - connect на указанный порт.
Дополнительно: Плагин дожен давать возможность выбирать несколько контрольных хостов. Плагин дожен давать возможность для каждого контрольного хоста указать предельное количество ошибок (коэффициент надежности). Плагин должен осуществлять анализ каждой проверки исходя из заданных коэффициентов.
Особое внимание: Особое внимание необходимо уделить проблеме взаимосвязи с основным расписанием (дабы не возникло ситуации, когда плагин начинает реконнект, а другой плагин-расписание в это время начинает дисконнект, дисконнект будет выполнен с ошибкой в момент подключения указанного подключения и расписание работать не будет).
----

Posted: 21 Apr 2006, 1:20 Fri
by SCHMaster
Задумка классная... Но IMHO с такими заявками (в хорошем смысле) не к пагинописателям, а скорее к разработчикам DM. Большую половину из указанного, мягко говоря, довольно сложно реализовать используя интерфейс плагинов.
Дабы не заниматься (всем нам) лишней писанионой, приведу описание API для плагинов. И уже исходя из этого нужно составлять запросы-предложения.

Code: Select all

	ОПИСАНИЕ ИНТЕРФЕЙСА МЕНЕДЖЕРА ЗАКАЧЕК Download Master (DMPluginIntf.pas)

	В интерфейсе предусмотрены 2 основные функции для реализации 
взаимодействия с программой EventRaised и DoAction, и одна функция для отображения окна 
настроек вашего плагина PluginConfigure, которую вам тоже необходимо 
реализовать самостоятельно. Реализация остальных функций одинакова для всех 
плагинов и может быть взята из примера.

======function DoAction(action: WideString; parameters: WideString): WideString; stdcall;
//выполнить какие-либо действия в ДМ

 	action = 'AddingURL' - добавление УРЛ-а на закачку.
	parameters = '<url>http://www.westbyte.com/plugin</url> <sectionslimit>2</sectionslimit>';
		допустимые имена параметров:
		'url', 'referer', 'description', 'savepath', 'filename', 'user', 'password', 'sectionslimit', 'priority', 'cookies', 'post', 'hidden', 'start', 'mirror1', 'mirror2', 'mirror3', 'mirror4', 'mirror5'
   
	Например: DoAction('AddingURL', '<url>http://www.westbyte.com/plugin</url> <hidden>1</hidden>')
		- добавляем закачку http://www.westbyte.com/plugin без открытия окна добавления закачки (hidden=1)

     Возможные значения параметров (в формате: (action: WideString; parameters: WideString)):
        ('AddingURL', '<url>http://www.westbyte.com/plugin</url> <hidden>1</hidden>') - добавление на закачку указанного УРЛ-а без открытия окна добавления закачки;
        ('GetDownloadInfoByID', IntToStr(ID)) - возвращаем информацию (в XML формате) о закачке с указанным ID;
        ('GetMaxSectionsByID', IntToStr(ID)) - возвращаем максимальное к-во секций которое может быть открыто закачкой с указанным ID;
        ('GetDownloadIDsList', '') - получаем список ID (разделенных пробелами) всех закачек из списка. В качестве параметра может быть указано состояние закачки для возврата списка закачек которые находятся в этом состоянии ('GetDownloadIDsList', IntToStr(State));
	                Например: ('GetDownloadIDsList', '3') - возвращаем список ID для качающихся в данный момент закачек (dsDownloading = 3).  
			Возможные значения параметра состояния - (dsPause = 0, dsPausing = 1, dsDownloaded = 2, dsDownloading = 3, dsError = 4, dsErroring = 5, dsQueue = 6);

	('GetTempDir', '') - получить путь к папке где храняться временные файлы
	('GetPluginDir', '') - получить путь к папке где находяться плагины
	('GetListDir', '') - получить путь к папке где храняться файлы списков
	('GetProgramDir', '') - получить путь к папке где находиться программа
	('GetLanguage', '') - получить текущий используемый язык
	('GetProgramName', '') - получить название менеджера закачки
	('GetCategoriesList', '') - получить в формате stringlist-a список категорий
	('GetSpeedsList', '') - получить в формате stringlist-a список скоростей
	('GetConnectionsList', '') - получить в формате stringlist-a список соединений RAS
	('GetLogDir', '') - получить путь к папке где храняться файлы логов

        ('StartSheduled', '') - стартовать все запланированные закачки;
        ('StopSheduled', '') - остановить все запланированные закачки;
        ('StartAll', '') - стартовать все незавершенные закачки;
        ('StopAll', '') - остановить все закачки;
        ('StartNode', IntToStr(NodeID)) - стартовать все незавершенные из определенной категории (подкатегории включаются только если в опциях программы указана настройка "Отображать закачки из подкатегорий");
        ('StopNode', IntToStr(NodeID)) - остановить все в указанной категории (подкатегории включаются только если в опциях программы указана настройка "Отображать закачки из подкатегорий");
        ('StartDownloads', IntToStr(ID)) - стартовать/(поставить в очередь) закачку(и) с указанным(и) ID (если закачек несколько, то ID указываются через пробел, например: ('StartDownloads', '21 456 20'));
        ('StopDownloads', IntToStr(ID)) - остановить закачку(и) с указанным(и) ID (если закачек несколько, то ID указываются через пробел, например: ('StopDownloads', '13 2527'));
        ('ChangeSpeed', IntToStr(SpeedMode)) - изменить скорость;
        ('RunApp', '<app>'+RunStr+'</app>'+'<param>'+RunParamStr+'</param>') - запустить приложение с указанными параметрами;
        ('ConnectRAS', '<connection>'+ConnectionName+'</connection><attempts>'+IntToStr(_Task.ConnectionAttempts)+'</attempts><period>'+IntToStr(_Task.ConnectionPeriod)+'</period>') - установить соединение с указанными параметрами;
        ('DisconnectRAS', ConnectionName) - разорвать указанное соединение, если соединение не указано, то разрываются все активные в данный момент;
        ('ShutDown', '') - выключить ПК;
        ('HibernateMode', '') - перейти в спящий режим;
        ('StandByMode', '') - перейти в ждущий режим;
        ('Exit', '') - вийти из программы
        ('ChangeMaxDownloads', IntToStr(MaxDownloads)) - изменить максимальное к-во одновременных закачек;
        ('AddStringToLog', '<id>'+IntToStr(ID)+'</id>'+'<type>'+IntToStr(Type)+'</type>'+'<logstring>Log String</logstring>') - добавить в лог закачки с указанным ID строку Log String, типа Type (0 - Out, 1 - In, 2 - Info (по-умолчанию), 3 - Error);
        ('ShowDownloadProperties', '<id>'+IntToStr(ID)+'</id>') - выводим окно свойств закачки с указанным ID;
        ('ShowDownloadWindow', '<id>'+IntToStr(ID)+'</id>') - выводим окно закачки с указанным ID;

Пишите мне на: slava@westbyte.com для добавления необходимых вам действий.

========function EventRaised(eventType: WideString; eventData: WideString): WideString; stdcall;
//вызывается из ДМ-ма при возникновении какого либо события

Cобытия в формате (eventType: WideString; eventData: WideString):
	

1. ('plugin_start', '') - включаем плагин;
2. ('plugin_stop', '') - выключаем плагин;
3. ('dm_timer_60', '') - возникает каждые 60 секунд 
3.2. ('dm_timer_10', '') - возникает каждые 10 секунд 
3.3. ('dm_timer_5', '') - возникает каждые 5 секунд 
	(для отработки чего-либо каждую минуту);
4. ('dm_download_state', IntToStr(ID)+' '+IntToStr(integer(State))) - 
	возникает при изменении состояния закачки с указанным ID.
	State = (dsPause, dsPausing, dsDownloaded, dsDownloading, dsError, dsErroring, dsQueue);
5. ('dm_download_added', IntToStr(ID)) - возникает когда добавлена новая закачка с указанным ID;
6. ('dm_downloadall', '') - возникает когда все закачки завершены;
7. ('dm_start', '') - возникает когда dm стартовал;
8. ('dm_connect', '') - возникает когда dm установил какое-либо соединение;
9. ('dm_changelanguage', language) - сообщение о изменении языка в ДМ-е
Пишите мне на: slava@westbyte.com для добавления необходимых вам событий.

=============procedure PluginConfigure(params: WideString); stdcall;
вызов из ДМ-ма окна конфигурации плагина

1. ('<language>VALUE</language>') - где VALUE название текущего языка 
	установленного в программе.
	Например: ('<language>ukrainian</language>')

	Вам необходимо реализовать окно настроек как минимум для 2-х языков 
	русского и английского и выдавать соотв. окно для заданного языка.
	Пример кода:
	  if (language = 'russian') or (language = 'ukrainian') or (language = 'belarusian') then
	    //выводим на русском
	  else
	    //выводим на английском

=================================================================================
						(с)2006 Вячеслав Витер  

Posted: 28 Jun 2006, 13:21 Wed
by AntiTurk
А можно замутить такой МИНИ-МИНИ плагин, с помощью которого наш любимый DM будет просить ПАРОЛЬ на ВЫХОД из программы, ну и на вход тоже, но это уже не так важно :D Очень надо.

Это идеально реализовано в других продуктах: Антивирус Касперсого, Agnitum Outpost Firewal и др.

help me!

Posted: 05 Jul 2006, 19:36 Wed
by eXecuter
Всем привет!
У меня большая просьба: нужен простой, но специфический плагин:
Я всегда запускаю максимум 1 закачку, и в связи с особенностью сети необходимо, чтобы каждые 30 - 40 секунд:
{
-> включалось ограничение этой закачки на 1 поток
-> сразуже выключалось ограничение закачки в 1 поток
}
Другими словами чтобы DM каждые 30 сек закрывал потоки и открывал их заново. Причина в том, что у нас первые 500KB потока идут на максимальной скорости, а затем режутся :evil:
Если кто может помочь, пожалуйста, help!
Я так понимаю работы на 10 минут, но я не программер :evil:

Заранее благодарен!

Re: ПЛАГИН: Проверка качества связи

Posted: 03 Aug 2006, 6:37 Thu
by oran
fecell wrote:ПЛАГИН: Проверка качества связи
Поддерживаю идею... А то когда на ночь оставляю, бывает - пару часов все нормально, а потом вдруг помехи на линии, fallback to v34 и до утра на 33600... :evil:
Если на уровне плагинов такое невозможно, то, может, разработчики обратят внимание? :?

Posted: 17 Aug 2006, 16:04 Thu
by Capone
ПЛАГИН ДЛЯ ДРУЖБЫ С ПИРИНГОВЫМИ СЕТЯМИ!!!

Posted: 19 Sep 2006, 3:22 Tue
by VMChaZ
Есть такая идея.
В режиме "автоматическая скорость закачки" учитывается только траффик, генерируемый браузером IE (т.е. пользователь открывает страницу - скорость падает, страница открылась - скорость закачки снова возрастает).
В то же время в Win2k/XP есть такой сервис: BITS (фоновая передача данных, вроде), которая учитывает траффик от ВСЕХ приложений на локальной машине. Я поискал, есть менеджер закачек, реализующий эту функцию, с открытыми исходниками (WinBITS,на sourceforge.net). Возможно ли сделать плагин, добавляющий метод передачи данных через этот сервис?