Page 18 of 49
Posted: 03 Jan 2009, 22:27 Sat
by vladra
Rand26 wrote:
Все сделал как написано преустановил все пару раз та и не полуилось добится предачи ссылок с рапиды в usd, может в следущей версии сделаете чтоб плагин сразу предавал ссылки с рапиды в usd, тогда бы цены ему небыло бы!
У меня тоже такое было, решилось банальным перезапуском ДМ.
А вот добавить ограничение на кличество одновременно скачиваемых одним пользователем файлов непомешало...
Posted: 04 Jan 2009, 7:44 Sun
by Korney San
vladra wrote:А вот добавить ограничение на кличество одновременно скачиваемых одним пользователем файлов непомешало...
Смысл?
Posted: 04 Jan 2009, 8:53 Sun
by vladra
Korney San wrote:vladra wrote:А вот добавить ограничение на кличество одновременно скачиваемых одним пользователем файлов непомешало...
Смысл?
Если ДМ пользуют через плуг несколько человек, то наверняка возникнет ситуация когда ктото поставит на закачку много файлов одновременно, соответственно остальные будут ждать закачки своих файлов очень долго.
Posted: 04 Jan 2009, 10:56 Sun
by x2088
У меня UserGate с портом 3128. При этом плаг никак не конектится ни на HTTPS, ни на HTTP. Старый плаг подключается, но толку теперь с него...
Posted: 04 Jan 2009, 19:54 Sun
by Korney San
vladra wrote:Если ДМ пользуют через плуг несколько человек, то наверняка возникнет ситуация когда ктото поставит на закачку много файлов одновременно, соответственно остальные будут ждать закачки своих файлов очень долго.
Может, ещё и ограничение на общий размер добавляемых файлов накладывать? И количество добавляемых файлов в час?
x2088 wrote:У меня UserGate с портом 3128.
У меня на работе тоже UserGate. Правда, для ICQ выделен свой IP и порт, но - как ни странно, подключается, правда, только по HTTPS - по HTTP не хочет. Ку?
P.S. I'm at home...
Posted: 08 Jan 2009, 11:41 Thu
by x2088
Korney San, скажите пожалуйста - как на нём порты открывать, а? У меня v2.8...
Posted: 08 Jan 2009, 12:09 Thu
by Korney San
x2088 wrote:Korney San, скажите пожалуйста - как на нём порты открывать, а? У меня v2.8...
Без понятия. Сам не устанавливал и не смотрел, на работе им владеют админы. Знаю только, что версия у него 4.x...
Posted: 08 Jan 2009, 14:57 Thu
by jaded
vladra wrote:Rand26 wrote:
Все сделал как написано преустановил все пару раз та и не полуилось добится предачи ссылок с рапиды в usd, может в следущей версии сделаете чтоб плагин сразу предавал ссылки с рапиды в usd, тогда бы цены ему небыло бы!
У меня тоже такое было, решилось банальным перезапуском ДМ.
А вот добавить ограничение на кличество одновременно скачиваемых одним пользователем файлов непомешало...
http://rapidshare.com/files/180184887/M ... .part1.rar
Закачки с файлообменников работают через раз... А задумка вообще хорошая
Posted: 08 Jan 2009, 14:59 Thu
by G0rdon
Ужос....
незнаю как в плагине работает подключение и переподключение,но с ним проблемы..
У меня на компе работает нормально,на другом не переподключается....
Хотя плагин-альтернатива переподключается ...
хотелось бы посмотреть на код(часть кода) отвечающая за переподключение..
Posted: 08 Jan 2009, 15:11 Thu
by jaded
G0rdon wrote:Ужос....
незнаю как в плагине работает подключение и переподключение,но с ним проблемы..
У меня на компе работает нормально,на другом не переподключается....
Хотя плагин-альтернатива переподключается ...
хотелось бы посмотреть на код(часть кода) отвечающая за переподключение..
Компонента TICQClient
Posted: 08 Jan 2009, 17:48 Thu
by Korney San
G0rdon wrote:хотелось бы посмотреть на код(часть кода) отвечающая за переподключение..
Я уже писал три страницы назад:
Работа с подключением идёт так.
Запускается подключение и фиксируется факт этого.
При подключении фиксируется его факт.
При перехвате отключения и установленной опции "Переподключаться" идёт переподключение.
Ежеминутно выполняется проверка на соответствие состояния подключения зафиксированным фактам.
Если фиксировалось, что плагин подключился, а сейчас он реально отключён - идёт переподключение.
Естественно, что в компоненте на все события, отвечающие за обработку ошибок, повешены соответствующие процедуры.
Попробуйте сменить сервер ICQ.
Posted: 08 Jan 2009, 23:59 Thu
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;
хотелось бы глянуть как переподключение реализовано у вас)
Posted: 09 Jan 2009, 9:25 Fri
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.
Posted: 09 Jan 2009, 14:12 Fri
by G0rdon
Вроде нормально,все должно работать((
Я вот только не понял зачем нужна проверка в function TDMTestPlugIn.EventRaised
if (WasDisconnected or WasConnected) and Sets[cBotReConnect]
зачем (WasDisconnected or WasConnected)?кажется без него было бы лучше....
ЗЫ:код кстати можно оптимизировать...
много ненужных beginов))
Posted: 09 Jan 2009, 16:21 Fri
by Korney San
G0rdon wrote:
Я вот только не понял зачем нужна проверка в function TDMTestPlugIn.EventRaised
if (WasDisconnected or WasConnected) and Sets[cBotReConnect]
зачем (WasDisconnected or WasConnected)?
Чтобы разбираться, когда плагин выбило, а когда диспетчер кнопку нажал...
G0rdon wrote:
ЗЫ:код кстати можно оптимизировать...
много ненужных beginов))
Это Вы скажите компилятору, у которого без этих beginов не все варианты отрабатывают...