Нет проблем. Начиная с версии 3.9.5 у нас есть встроенный скриптовый движок MSL на сервере чата. Схема взаимодействия:
- нажимаем кнопку в 1С;
- формируется специальный текстовый файл (ASCII) на диске, скажем, "c:\mychat.txt";
- формат текстового файла простой: строка начинается с цифры, затем пробел, затем текстовая строка, которая передаётся пользователю. Цифра - это UIN пользователя, который зарегистрирован в чате;
- MyChat Server раз в 30 секунд смотрит на диск и если видит файл, то вычитывает его, удаляет и рассылает нужным пользователям сообщения.
Схема относительно простая, теперь переходим к написанию скрипта. Заходим на 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).
Всё, работа началась.
Комментариев нет:
Отправить комментарий