Плагин "Thunk" (плагинописателям) (не разрабатывается)

Все что касается разработки, отладки, использования подключаемых модулей.

Moderators: Korney San, marcipan

Будет ли Вам, как автору какого-нибудь плагина, от этого польза?

ДА!!! Давно не хватало!!!
5
83%
НЕТ!!! Нафиг не нужно!
0
No votes
Не знаю
1
17%
 
Total votes: 6

User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Плагин "Thunk" (плагинописателям) (не разрабатывается)

Post by Korney San »

Сам задвинул идею, сам её и сделал...

Плагин выполняет:
1. Подключение к себе других плагинов DM
2. Трансляцию запросов плагинов в DM
3. Трансляцию событий DM во все подключённые плагины
4. Отображение хода загрузки и выгрузки подключённых плагинов

Плагин позволяет:
1. Просмотреть имена подключённых плагинов в своих свойствах в настроках DM и на форме настроек
2. Вызвать форму настроек подключённого плагина со своей формы настроек
3. Подключённому плагину зарегистрировать собственную команду через

Code: Select all

myIDmInterface.DoAction('RegisterAction', AnyAction+' '+Self.ID)
4. Подключённому плагину проверить, зарегистрирована ли команда через

Code: Select all

myIDmInterface.DoAction('CheckAction', AnyAction)
5. Подключённому плагину получить вызов своей команды из другого подключённого плагина через

Code: Select all

EventRaised(AnyAction, parameters)
и вернуть результат (если кто не знает, EventRaised - функция :) )

Работа проверена на двух тестовых плагинах.
В плане добавление регистрации событий, для отправления своих событий другим плагинам.

Версия 0.1.0.0
Для работы другого плагина через Thunk нужно сменить расширение другого плагина на .tnk !

Плагин пишется в основном для себя, за неимением нужного функционала в DM. Использование его возможностей в других плагинах только приветствуется.
Подробности, предложения доработок, сообщения об ошибках принимаются в личку или по ICQ 204446455

Урезанная версия Thunk Lite, предназначенная для подключения ОДНОГО плагина на определённый период времени, лежит здесь.

Основная идея плагина в графическом виде:
Image

Разработка прекращена из-за появления неплохой альтернативы.
Last edited by Korney San on 13 May 2009, 10:42 Wed, edited 1 time in total.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

Требуется доброволец или добровольцы для [пере]написания плагинов под новый стандарт Thunk-а.
Связь через личку, аську, почту, Я.Онлайн (ник KorneySan).
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
hazar
Posts: 4
Joined: 23 Nov 2008, 23:26 Sun
Location: Archara

Thunk Lite +onNET

Post by hazar »

Выражаю огромную благодарность за проделанную работу. Thunk Lite это то что хотелось видеть в доп. опциях ДМ. Сегодня ночью опробовал сиё чудо, в очередной раз разорвало связь и Thunk Lite правильно дал команду плагину onNET на включение(именно в тот момент когда это было необходимо). Связь была восстановлена и запущены закачки, и до 6:00 был в фоне, в 6 тихо откл. плагин. Думаю что Thunk как буфер между ДМ и плагинами займёт свою нишу.
С уважением !
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Re: Thunk Lite +onNET

Post by Korney San »

hazar wrote:Сегодня ночью опробовал сиё чудо, в очередной раз разорвало связь и Thunk Lite правильно дал команду плагину onNET на включение(именно в тот момент когда это было необходимо). Связь была восстановлена и запущены закачки, и до 6:00 был в фоне, в 6 тихо откл. плагин. Думаю что Thunk как буфер между ДМ и плагинами займёт свою нишу.
С уважением !
Не стоит преувеличивать возможности плагина. :oops:
Каждый делал свою работу - Thunk Lite подключал/отключал плагин onNet, плагин onNet проверял связь и запускал закачки.

Разработка Thunk сдвинулась с мёртвой точки - это главное. :)
Спецификация немного поменялась - в сторону гибкости.
Скоро выложу исходник плагина, рассчитанного на работу с/через Thunk.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
hazar
Posts: 4
Joined: 23 Nov 2008, 23:26 Sun
Location: Archara

Post by hazar »

Не стоит преувеличивать возможности плагина.
Каждый делал свою работу - Thunk Lite подключал/отключал плагин onNet, плагин onNet проверял связь и запускал закачки.
Согласен, каждый делал свою работу. Но без Thunk плагин onNET был неуправляем, т.е. невозможно было его остановить(тут он работал прекрасно в плане соединения и запуска). Так что не скромничайте :)
Всего вам доброго!
x2088
Гуру
Posts: 556
Joined: 26 Jul 2007, 19:28 Thu
Contact:

Post by x2088 »

Это типа хаб для плагов? Да?
Восстанавливаю забытые пассы на жабу, если правильный пасс есть в профиле клиента
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

x2088 wrote:Это типа хаб для плагов? Да?
Не типа, а хаб. Который позволяет им разговаривать друг с другом.

И скоро будут три плага, заточенные именно под это.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Kadet
Posts: 5
Joined: 24 Nov 2007, 18:14 Sat
Contact:

Post by Kadet »

А почему бы не написать плагин по-русски? Не думаю, что большинство пользователей знают английский :(
vasa_pmr
Профи
Posts: 71
Joined: 29 Mar 2009, 20:56 Sun

Post by vasa_pmr »

Kadet wrote:А почему бы не написать плагин по-русски? Не думаю, что большинство пользователей знают английский :(
???
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

Kadet wrote:А почему бы не написать плагин по-русски? Не думаю, что большинство пользователей знают английский :(
Если Вы про само слово "плагин", которое переводится как "модуль" - я его пишу так же, как и разработчики основной программы. :)
Если же про "текст внутри" - плагин ещё в стадии глубокой разработки самой начинки, чтобы было время заниматься переводом (который там, к тому же, практически не нужен).
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Kadet
Posts: 5
Joined: 24 Nov 2007, 18:14 Sat
Contact:

Post by Kadet »

Korney San wrote:(который там, к тому же, практически не нужен).
Что английский, что китайский :D
Идея хорошая, но открыв его тут же и закрыл. Что надо делать не понятно.
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

Kadet wrote:Идея хорошая, но открыв его тут же и закрыл. Что надо делать не понятно.
Если нужно связать два плагина между собой - они слегка дописываются (под спецификацию Thunk), копируются в папку Plugins вместе с Thunk, переименовываются в .tnk, после чего получают возможность из ОДНОГО плагина выполнить команду ДРУГОГО через вызов стандартной DoAction с нестандартными параметрами.
Thunk делает эту фишку, "забытую" разработчиками DM.
Яркий пример подобного принципа - Miranda.

P.S. Выложил в первый пост картинку - для доходчивости.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Kadet
Posts: 5
Joined: 24 Nov 2007, 18:14 Sat
Contact:

Post by Kadet »

Korney San wrote: P.S. Выложил в первый пост картинку - для доходчивости.

Спасибо
lolxfr
Опытный
Posts: 24
Joined: 09 Jan 2007, 18:29 Tue

Post by lolxfr »

Мне кажется было бы неплохо, если бы можно было добавить свой пункт в контекстное меню ДМ.
В данный момент это сделать через API нельзя,но можно реализовать - например перехватывая TrackPopupMenu Правда чтобы получить ИД закачки - нужно пробежать по списку закачек.

У меня почему-то такой перехват работает не совсем корректно
Допустим тыкаем на некий ***.zip
Изменяю меню,вызываю его,оно не меняется.
опять тыкаю на любой ***.zip Меняю меню,меняется.
То есть после смены расширения и первого тыкания - меню не меняется.После второго тыкания на тоже расширение-все ок

п.с. в нижепредставленном какое именно вызывается контекстное меню я не проверял.

Code: Select all

/* visual c++*/
               static DWORD WINAPI mouse_event_routine(LPVOID p)
	  {
//или SenMessage WM_CONTEXTMENU
		  mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_RIGHTUP/*те ли флаги*/,
			  ((POINT*)p)->x-1/*можно попробывать другое число*/,((POINT*)p)->y,0,0);
		  return 0L;
	  }
	  static BOOL WINAPI MyTrackPopupMenu(HMENU hMenu,UINT uFlags,int x,int y,
				int nReserved,HWND hWnd,CONST RECT * prcRect)
	  {
		  static BOOL repeat = FALSE;
		  if(repeat == FALSE)
		  {
			  POINT point;
			  GetCursorPos(&point);
			  QueueUserWorkItem(&mouse_event_routine,&point,0);
			  TrackPopupMenuEx(hMenu,uFlags,x,y,hWnd,NULL);
			  repeat = TRUE;
			  return 1;
		  }
		  else
		  {
			  repeat = FALSE;
		  }
		  uFlags |= TPM_RETURNCMD;
		  uFlags &= ~TPM_NONOTIFY;
		  AppendMenu(hMenu, MF_SEPARATOR,0,0);
		  InsertMenuItem(hMenu,-1,TRUE,&g_mii);
		  INT nRet = TrackPopupMenu(hMenu,uFlags,x,y,nReserved,hWnd,prcRect);
		  if(nRet)
		  switch(nRet)
		  {
				case ID_BANANA:
				{
				    MessageBoxW(hWnd,L"BANANA",L"MONKEY",0);
					break;
				}
				default:
					  PostMessage(hWnd,WM_COMMAND,nRet,0);
		  }
		  return nRet;  
	  }
Если автор Thunk добавит регистрацию своих менюшек через DoAction , думаю было бы совсем неплохо.

п.с.Добрый человек выкладывал обертку для плагина на с++ .плагина. Использовал ее.
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

lolxfr wrote: Если автор Thunk добавит регистрацию своих менюшек через DoAction , думаю было бы совсем неплохо.
Как только дойдут руки...
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Post Reply