четверг, 26 марта 2009 г.

Про мёд

Приходит Пятачок к Винни Пуху и спрашивает:
Винни, а у тебя случайно не осталось ещё немного неправильного мёда?
_____________________________
Нравится? Подпишись на RSS!


понедельник, 9 марта 2009 г.

Интегрируем MyChat и .... 1С!

Один из наших клиентов задал такой вопрос: "у нас есть база 1С, мы хотим, чтобы по нажатию на кнопку информация, которая выгружается в файл, рассылалась определённым людям в чате".

Нет проблем. Начиная с версии 3.9.5 у нас есть встроенный скриптовый движок MSL на сервере чата. Схема взаимодействия:
  1. нажимаем кнопку в 1С;
  2. формируется специальный текстовый файл (ASCII) на диске, скажем, "c:\mychat.txt";
  3. формат текстового файла простой: строка начинается с цифры, затем пробел, затем текстовая строка, которая передаётся пользователю. Цифра - это UIN пользователя, который зарегистрирован в чате;
  4. MyChat Server раз в 30 секунд смотрит на диск и если видит файл, то вычитывает его, удаляет и рассылает нужным пользователям сообщения.
Для того, чтобы узнать UIN-ы пользователей, которым мы будем слать сообщения, заходим в "Управление пользователями" (Alt+U) на MyChat Server.

Схема относительно простая, теперь переходим к написанию скрипта. Заходим на MyChat Server, открываем "Редактор скриптов" (Alt+S). Затем в открывшемся окне редактора слева выбираем раздел "User defined scripts", "Every 30 seconds".


Теперь, собственно, исходный текст скрипта:

program Info1C;
var
s,st_file,st_uin,st_message:string;
x,i,uin,n:integer;
begin
st_file:='c:\mychat.txt';

if FileExists(st_file) then begin
x:=GetTextFileLinesCount(st_file);
for i:=1 to x do begin
LoadLineFromFile(st_file,i,s);
n:=pos(' ',s);
st_uin:=copy(s,1,n-1);
delete(s,1,n+2);
st_message:=s;
uin:=strtoint(st_uin);

mSendPrivateMessage(uin,st_message);
end;
DeleteFile(st_file);
end;
end.
Ну и вкратце опишу, что же делает этот исходник. Функция FileExists проверяет, существует ли файл "c:\mychat.txt". Затем с помощью функции GetTextFileLinesCount мы узнаём, сколько строк в файле будет (т.е. сколько будет сообщений рассылаться).

После этого организовываем цикл FOR и построчно вычитываем наш текстовый файл, разбиваем каждую строчку на две части: UIN пользователя и собственно сообщение, после чего функцией mSendPrivateMessage шлём приватное сообщение нужному пользователю.

И в самом конце удаляем файл "c:\mychat.txt", чтобы исключить зацикливание.

После того, как скрипт написан, жмём Ctrl+F9, чтобы проверить правильность написания и не забываем включить галочку вверху "включить скрипт". Сообщения будут приходить от встроенного робота Elisa (uin=0).

Всё, работа началась.
_____________________________
Нужный материал? Подпишись на RSS!


воскресенье, 8 марта 2009 г.

Весна. Мартовское обновление MyChat

6 числа, как раз перед праздником 8 марта, вышла новая версия нашего чата для локальных, корпоративных и домовых сетей MyChat.

В первую очередь в данной версии был сделан упор на доработку тех функций, которые уже есть в продукте и доведение их "до кондиции". В итоге чатом стало пользоваться ещё удобнее, особенно это оценят корпоративные пользователи, которые приобретают MyChat для организации связи внутри компании.

Стоит упомянуть об улучшенной панели контактов (Alt+Q), в которой теперь видно, какие люди в данный момент подключены к серверу, а какие нет (online/offline). Если пользователь отключен от сервера - его картинка (аватар) рисуется серым цветом. Как только он появится в сети, картинка сразу окрасится всеми цветами.

Для того, чтобы быть в курсе того, что нужный вам человек подключился к серверу, теперь можно воспользоваться автоматическим напоминателем. Просто щёлкаем правой кнопкой мышки по контакту в панели контактов (Alt+Q) и выбираем пункт "Извещения". Ставим галочку и теперь, как только человек подключится к MyChat серверу, программа автоматически известит Вас об этом. Также это можно сделать из канала или привата, просто запросив информацию о пользователе. Таким образом, совершенно необязательно иметь запись о человеке в своей панели контактов.

Также, по просьбе администраторов, сделана возможность загрузки готового набора контактов пользователям прямо с сервера, но в слугка изменённом варианте. Ведь далеко не каждый рядовой человек будет кропотливо создавать себе список контактов всей организации. Гораздо логичнее сделать его один раз и загрузить всем пользователям MyChat прямо с сервера.

Контакты можно как экспортировать в файл, а затем разослать всем или некоторым пользователям, так и взять готовый сформированный набор у кого-либо.
Причём, раньше новый набор загружался только "поверху", теперь же появилась возможность удалять старый набор, заменяя его новым.

Также в версии 3.9.5 добавлена такая нужная вещь, как проверка правописания. По умолчанию она выключена, чтобы не расходовать системные ресурсы, но включить её можно одним щелчком мышки в канале или привате на панели инструментов. Слова, которые по мнению спеллчекера, написаны неправильно, подчёркиваются волнистой красной линией. Пока поддерживается только русский язык. Для любителей Албанскаго языГа проверку правописания можно легко отключить :-)

Мелочей вообще очень много, можно сказать, что версия 3.9.5 это своего рода кумулятивный пакет обновлений, о которых просили пользователи.

В самом конце хочется написать о важной технологии, которая только начинает развиваться в MyChat, но, надеюсь, превратится в мощный и удобный инструмент. Это скриптовый язык MSL (MyChat Script Language). Первоначально схема работы и технологии обкатывались на нашем бесплатном скриптовом движке WinScript, а затем было принято решение о переносе наработок в MyChat Server. Поддерживаются практически все функции WinScript + функции, специфичные для сервера чата, а это почти 200 всевозможных подпрограмм. Конечно, с помощью этого скриптового движка нельзя написать всё что угодно, но всё равно сделать можно очень и очень многое. Читайте справку, пробуйте, пишите на support@nsoft-s.com, мы всегда идём навстречу нашим пользователям.
_____________________________
Хочешь быть в курсе свежих версий MyChat? Подпишись на RSS!