Плагин "ICQ RemoteCP"

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

Moderators: Korney San, marcipan

vladra
Posts: 4
Joined: 16 Oct 2008, 7:59 Thu

Post by vladra »

Rand26 wrote: Все сделал как написано преустановил все пару раз та и не полуилось добится предачи ссылок с рапиды в usd, может в следущей версии сделаете чтоб плагин сразу предавал ссылки с рапиды в usd, тогда бы цены ему небыло бы!
У меня тоже такое было, решилось банальным перезапуском ДМ.

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

Post by Korney San »

vladra wrote:А вот добавить ограничение на кличество одновременно скачиваемых одним пользователем файлов непомешало...
Смысл?
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
vladra
Posts: 4
Joined: 16 Oct 2008, 7:59 Thu

Post by vladra »

Korney San wrote:
vladra wrote:А вот добавить ограничение на кличество одновременно скачиваемых одним пользователем файлов непомешало...
Смысл?
Если ДМ пользуют через плуг несколько человек, то наверняка возникнет ситуация когда ктото поставит на закачку много файлов одновременно, соответственно остальные будут ждать закачки своих файлов очень долго.
x2088
Гуру
Posts: 556
Joined: 26 Jul 2007, 19:28 Thu
Contact:

Post by x2088 »

У меня UserGate с портом 3128. При этом плаг никак не конектится ни на HTTPS, ни на HTTP. Старый плаг подключается, но толку теперь с него...
Восстанавливаю забытые пассы на жабу, если правильный пасс есть в профиле клиента
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

vladra wrote:Если ДМ пользуют через плуг несколько человек, то наверняка возникнет ситуация когда ктото поставит на закачку много файлов одновременно, соответственно остальные будут ждать закачки своих файлов очень долго.
Может, ещё и ограничение на общий размер добавляемых файлов накладывать? И количество добавляемых файлов в час?
x2088 wrote:У меня UserGate с портом 3128.
У меня на работе тоже UserGate. Правда, для ICQ выделен свой IP и порт, но - как ни странно, подключается, правда, только по HTTPS - по HTTP не хочет. Ку?

P.S. I'm at home... :)
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
x2088
Гуру
Posts: 556
Joined: 26 Jul 2007, 19:28 Thu
Contact:

Post by x2088 »

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

Post by Korney San »

x2088 wrote:Korney San, скажите пожалуйста - как на нём порты открывать, а? У меня v2.8...
Без понятия. Сам не устанавливал и не смотрел, на работе им владеют админы. Знаю только, что версия у него 4.x...
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
jaded
Posts: 3
Joined: 16 Oct 2008, 8:44 Thu

Post by jaded »

vladra wrote:
Rand26 wrote: Все сделал как написано преустановил все пару раз та и не полуилось добится предачи ссылок с рапиды в usd, может в следущей версии сделаете чтоб плагин сразу предавал ссылки с рапиды в usd, тогда бы цены ему небыло бы!
У меня тоже такое было, решилось банальным перезапуском ДМ.

А вот добавить ограничение на кличество одновременно скачиваемых одним пользователем файлов непомешало...
http://rapidshare.com/files/180184887/M ... .part1.rar

Закачки с файлообменников работают через раз... А задумка вообще хорошая :)
Last edited by jaded on 08 Jan 2009, 15:00 Thu, edited 1 time in total.
G0rdon
Гуру
Posts: 110
Joined: 28 Jun 2008, 21:49 Sat
Location: Беларусь,Минск

Post by G0rdon »

Ужос....
незнаю как в плагине работает подключение и переподключение,но с ним проблемы..
У меня на компе работает нормально,на другом не переподключается....
Хотя плагин-альтернатива переподключается ...
хотелось бы посмотреть на код(часть кода) отвечающая за переподключение..
jaded
Posts: 3
Joined: 16 Oct 2008, 8:44 Thu

Post by jaded »

G0rdon wrote:Ужос....
незнаю как в плагине работает подключение и переподключение,но с ним проблемы..
У меня на компе работает нормально,на другом не переподключается....
Хотя плагин-альтернатива переподключается ...
хотелось бы посмотреть на код(часть кода) отвечающая за переподключение..
Компонента TICQClient
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

G0rdon wrote:хотелось бы посмотреть на код(часть кода) отвечающая за переподключение..
Я уже писал три страницы назад:
Работа с подключением идёт так.
Запускается подключение и фиксируется факт этого.
При подключении фиксируется его факт.
При перехвате отключения и установленной опции "Переподключаться" идёт переподключение.
Ежеминутно выполняется проверка на соответствие состояния подключения зафиксированным фактам.
Если фиксировалось, что плагин подключился, а сейчас он реально отключён - идёт переподключение.
Естественно, что в компоненте на все события, отвечающие за обработку ошибок, повешены соответствующие процедуры.

Попробуйте сменить сервер ICQ.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
G0rdon
Гуру
Posts: 110
Joined: 28 Jun 2008, 21:49 Sat
Location: Беларусь,Минск

Post by G0rdon »

Code: Select all

Работа с подключением идёт так. 
Запускается подключение и фиксируется факт этого. 
При подключении фиксируется его факт. 
При перехвате отключения и установленной опции "Переподключаться" идёт переподключение. 
Ежеминутно выполняется проверка на соответствие состояния подключения зафиксированным фактам. 
Если фиксировалось, что плагин подключился, а сейчас он реально отключён - идёт переподключение.
вот,хотелось бы посмотреть на реализованную практическую часть..
Мой вариант(не проверял блин пока на том компе,на которои не подключилось,у меня работает на ура(вроде))

procedure TForm1.Timer1Timer(Sender: TObject);\\тамер каждую минуту
begin
if IcqClient1.LoggedIn = false then connect;
end;

procedure TForm1.connect;
begin
Label4.caption:='connecting';
IcqClient1.UIN:=StrToInt(Edit3.Text);
IcqClient1.Password:=(Edit4.Text);
ICQClient1.ConvertToPlaintext:=true;
Icqclient1.Login(0);
end;

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

Post by Korney San »

G0rdon wrote:хотелось бы глянуть как переподключение реализовано у вас)
Раз пошла такая пьянка...

Code: Select all

procedure TDMTestPlugIn.ICQLogin(Sender: TObject);
begin { ICQ ОНЛАЙН }
...
 WasConnected:=true;
 WasDisconnected:=false;
 Connecting:=false;
...
end;

procedure TDMTestPlugIn.ICQLogOff(Sender: TObject);
begin { ICQ ОФФЛАЙН }
...
 WasConnected:=false;
 WasDisconnected:=false;
 Connecting:=false;
...
end;

procedure TDMTestPlugIn.ICQServerDisconnect(Sender: TObject; Reason: LongInt; Description: string);
begin // ICQ - Сервер отключил
 WasDisconnected:=true;
end;

procedure TDMTestPlugIn.ICQConnectionFailed(Sender: TObject);
begin // ICQ - не удалось подключиться
 WasDisconnected:=true;
 Connecting:=false;
end;

procedure TDMTestPlugIn.CommonInit;
begin
 ...
 //ICQ init
 Application.CreateHandle;             // убирает тормоза
 ICQ:=TICQClient.Create(Application);  // при ответе ICQ
 ICQ.OnMessageRecv := ICQMsgRecv;
 ICQ.OnError := ICQError;
 ICQ.OnLogin := ICQLogin;
 ICQ.OnLogOff := ICQLogOff;
 ICQ.OnUserInfoShort := ICQInfoShort;
 ICQ.OnInfoChanged := ICQInfoChanged;
 ICQ.TypingNotifications:=true;
 ICQ.ConvertToPlaintext := True;
 ICQ.DisableDirectConnections:=true;
 //отключения
 ICQ.OnServerDisconnect := ICQServerDisconnect;
 //авторизация
 ICQ.OnAuthRequest := ICQAuthRequest;
 //
 ...
 WasConnected:=false;
 WasDisconnected:=false;
 Connecting:=false;
 ...
end;

procedure TDMTestPlugIn.ICQSetup;
 var
  i: Integer;
  s: String;
begin
 ICQ.UIN:=Sets[cBotUIN];
 ICQ.Password:=[censored];
 ICQ.SecureLogin := True;
 i:=Sets[cNetServer];
 s:=Sets[cNetServers];
 if WordCount(s, [','])<(i+1) then
  begin
   i:=0;
   Sets[cNetServer]:=i;
  end;
 ICQ.ICQServer := ExtractWord(i+1, s, [',']);
 ICQ.ICQPort := Sets[cNetPort];
 case Sets[cProxyType] of
  1: ICQ.ProxyType:=P_HTTP;
  2: ICQ.ProxyType:=P_HTTPS;
  3: ICQ.ProxyType:=P_SOCKS4;
  4: ICQ.ProxyType:=P_SOCKS5;
  else
    ICQ.ProxyType:=P_NONE;
  end;
 ICQ.ProxyHost:=Sets[cProxyHost];
 ICQ.ProxyPort:=Sets[cProxyPort];
 ICQ.ProxyAuth:=Sets[cProxyAuth];
 ICQ.ProxyUserID:=Sets[cProxyLogin];
 if Sets[cProxyLogin]='' then
   ICQ.ProxyPass:=''
 else
   ICQ.ProxyPass:=[censored];
 ICQ.ProxyResolve := ICQ.ProxyType<>P_NONE;                     
end;

procedure TDMTestPlugIn.ConnectICQ;
begin
 ...
 ICQ.Login(S_ALLOWDAUTH);    //ВАЖНО! указанноый статус позволяет
                             //избежать завечивания IP адреса
 //
 WasConnected:=false;
 Connecting:=true;
...
end;

procedure TDMTestPlugIn.DisconnectICQ;
begin
...
 ICQ.LogOff;
 //
 WasDisconnected:=false;
 Connecting:=false;
end;

procedure TDMTestPlugIn.ICQError(Sender: TObject; ErrorType: TErrorType; ErrorMsg: String);
begin { ICQ - Ошибка }
...
 case ErrorType of
  ERR_SOCKET:
   begin
    if Sets[cShowErrorPopups] then
      PopUp('Socket '+BoolToStr(ICQ.LoggedIn, true)+#13+ErrorMsg, ptError);
   end;
  ERR_PROXY:
   begin
    if Sets[cShowErrorPopups] then
      PopUp('Proxy '+BoolToStr(ICQ.LoggedIn, true)+#13+ErrorMsg, ptError);
   end;
  ERR_PROTOCOL:
   begin
    if Sets[cShowErrorPopups] then
      PopUp('Protocol '+BoolToStr(ICQ.LoggedIn, true)+#13+ErrorMsg, ptError);
   end;
  ERR_CONNTIMEOUT:
   begin
    if Sets[cShowErrorPopups] then
      PopUp('Timeout '+BoolToStr(ICQ.LoggedIn, true)+#13+ErrorMsg, ptError);
   end;
  end;
 //
 if not ICQ.LoggedIn and WasConnected then
   WasDisconnected:=true;
 Connecting:=false;
end;

function TDMTestPlugIn.EventRaised(eventType: WideString; eventData: WideString): WideString;//вызывается из ДМ-ма при возникновении какого либо события
...
begin
 if eventType = 'plugin_start' then
   Enabled:=true;
 if eventType = 'plugin_stop' then
   Enabled:=false;
 if (eventType = 'dm_timer_60') then
  begin
   if ICQ.LoggedIn then //подключены?
    begin
     ICQ.SendKeepAlive; //поддерживаем соединение
     ICQSetXStatus;
    end
   else //выбило?
    begin
     if (WasDisconnected or WasConnected) and Sets[cBotReConnect] then
      begin
       if WasConnected and not WasDisconnected then
        begin
         if Sets[cShowErrorPopups] then
           PopUp('Неизвестная ошибка отключения от сети!', ptError);
        end;
       ConnectICQ;
      end;
    end;
   ...
  end;
...
end;
Подключение выполняется через процедуру ConnectICQ, отключение - DisconnectICQ.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
G0rdon
Гуру
Posts: 110
Joined: 28 Jun 2008, 21:49 Sat
Location: Беларусь,Минск

Post by G0rdon »

Вроде нормально,все должно работать((
Я вот только не понял зачем нужна проверка в function TDMTestPlugIn.EventRaised
if (WasDisconnected or WasConnected) and Sets[cBotReConnect]
зачем (WasDisconnected or WasConnected)?кажется без него было бы лучше....


ЗЫ:код кстати можно оптимизировать...
много ненужных beginов))
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

G0rdon wrote: Я вот только не понял зачем нужна проверка в function TDMTestPlugIn.EventRaised
if (WasDisconnected or WasConnected) and Sets[cBotReConnect]
зачем (WasDisconnected or WasConnected)?
Чтобы разбираться, когда плагин выбило, а когда диспетчер кнопку нажал...
G0rdon wrote: ЗЫ:код кстати можно оптимизировать...
много ненужных beginов))
Это Вы скажите компилятору, у которого без этих beginов не все варианты отрабатывают...
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Post Reply