Код: Выделить всёprocedure SendBrowserInfo(iUIN, iUINTo, iCID, iCIDTo: integer);
var
s, sIP, sWEBSupportBrowserInfo, sWEBSupportRefLink, sWEBSupportsSysLanguage, sWEBSupportsPlatformOS,
sGeoIP, sCountry, sCity: string;
begin
sIP := mGetCIDAttribute(iCID, 'IP');
sWEBSupportBrowserInfo := mGetCIDAttribute(iCID, 'UserAgent');
sWEBSupportRefLink := mGetCIDAttribute(iCID, 'Reflink');
sWEBSupportsSysLanguage := mGetCIDAttribute(iCID, 'Lang');
sWEBSupportsPlatformOS := mGetCIDAttribute(iCID, 'OS');
s := '-=УВЕДОМЛЕНИЕ ОНЛАЙН-ЧАТА "ДИАГНОСТ56.РФ"=-' + CRLF + CRLF +
'IP-адрес клиента: ' + sIP;
if length(sWEBSupportBrowserInfo) > 0 then s := s + CRLF + 'Браузер гостя: ' + sWEBSupportBrowserInfo + CRLF;
if length(sWEBSupportRefLink) > 0 then s := s + CRLF + 'Пишет с сайта: ' + sWEBSupportRefLink;
if length(sWEBSupportsSysLanguage) > 0 then s := s + CRLF + 'Язык системы: ' + sWEBSupportsSysLanguage;
if length(sWEBSupportsPlatformOS) > 0 then s := s + CRLF + 'Платформа: ' + sWEBSupportsPlatformOS;
sGeoIP := GeoIPGetQuickInfo(sIP);
sCountry := Fetch(sGeoIP, '|');
sCity := sGeoIP;
if length(sCountry) > 0 then begin
sGeoIP := sCountry;
if length(sCity) > 0 then sGeoIP := sGeoIP + ', ' + sCity;
s := s + CRLF + CRLF + sGeoIP;
end else sGeoIP := '';
mSendPrivateMessage(iUIN, iUINTo, s, 21, true);
mSendCustomMsgToClientConsoleByCID(iCIDTo, 'WEB support session from UIN ' + inttostr(iUIN), 'newmsg', false, true, 78);
end;
procedure SendHelloMessage(iUIN, iUINTo: integer);
var
s: string;
iHour: integer;
dt: Double;
begin
dt := Now;
if DayOfTheWeek(dt) < 6 then begin
iHour := HourOf(dt);
if (iHour >= 8) and (iHour <= 16) then s := 'Здравствуйте, что Вас интересует?'
else s := 'Здравствуйте! К сожалению, сейчас мы не сможем Вам ответить. Но Вы можете задать любой вопрос в этом чате, и мы пришлем ответ на указанный Вами e-mail в рабочее время (с 8:00 до 16:00)';
end else s := 'Здравствуйте, мы работаем с понедельника по пятницу, с 8:00 до 16:00. Но Вы можете задать любой вопрос в этом чате, и мы пришлем ответ на указанный Вами e-mail';
mSendPrivateMessage(iUINTo, iUIN, s, 1, true);
end;
function OnPrivateRequest(iCID, iUIN, iUINTo, iRole, iRoleReciever, iTask: integer): boolean;
var
sKey, sKeyData, sDateNow: string;
iWhat, iCIDTo: integer;
begin
SetScriptTimeOut(10000); // на всякий случай, вдруг будет долго работать
if mGetRoleNameByID(iRole) = 'WEB guests' then begin
iCIDTo := mGetUserCID(iUINTo);
sKey := 'websupp' + IntToStr(iUIN) + '-' + IntToStr(iUINTo);
//mDBStorageDeleteKey(sKey);
//mDBStorageSetData(sKey, '123');
sKeyData := mDBStorageGetData(sKey);
sDateNow := FormatDateTime('ddmmyyyy', Now);
if length(sKeyData) = 0 then iWhat := 1 // ни разу не подключался к серверу
else if sKeyData = sDateNow then iWhat := 2 // уже подключался сегодня
else iWhat := 3; // подключался раньше, не сегодня
mDBStorageSetData(sKey, sDateNow);
// юзер подключается первый раз и оператор онлайн
if (iCIDTo <> -1) and (iWhat = 1) then begin
SendBrowserInfo(iUIN, iUINTo, iCID, iCIDTo);
SendHelloMessage(iUIN, iUINTo);
end else
// если пользователь подключается первый раз вообще либо впервые за день
if (iWhat = 1) or (iWhat = 3) then SendHelloMessage(iUIN, iUINTo);
end;
result := true;
end;
begin
end.