Приклад простого скрипта на MSL

Приклад простого скрипта на MSL

Всі статті

Задача: розіслати списку користувачів інформацію довільного характеру.

Наприклад, є постачальник інтернет-послуг. Ця організація має підключення певної кількості користувачів, а для спілкування у внутрішній локальній мережі провайдеру використовується MyChat. Часто деякі абоненти невчасно оплачують послуги провайдера або просто забувають про це. Постачальник інтернет-послуг може повідомляти своїх абонентів про необхядність внести абонплату за допомогою MSL MyChat Script Language. Це вбудована скрипт-машина в MyChat Server. Можливості цієї системи досить великі.

Для початку потрібно створити звичайний текстовий файл, у якому будуть перераховані UIN-и боржників і період, а також файл з текстом повідомлення для них.

Наприклад, файл з UIN-ами «С:\UIN.txt» (формат “user|date”), на комп'ютері з MyChat Server містить текст:

  1. 5|01.07.2009-31.07.2009
  2. 678|01.07.2009-31.07.2009
  3. 4|01.07.2009-31.07.2009
  4. 567|01.07.2009-31.07.2009
  5. 56|01.07.2009-31.07.2009
  6. 456|01.06.2009-31.07.2009
  7. 67|01.07.2009-31.07.2009
  8. 34|01.07.2009-31.07.2009
  9. 5|01.07.2009-31.07.2009
  10. 7|01.07.2009-31.07.2009
  11. 97|01.06.2009-31.07.2009
  12. 44|01.07.2009-31.07.2009
  13. 676|01.07.2009-31.07.2009
 

А файл з текстом повідомлення «C:\MSG.txt» виглядає так:

  1. %user пожалуйста оплатите услугу доступа к сети Интернет, за период %date.
  2. В случае неуплаты в течении 2-х рабочих дней – Вы будете отключены
 

Тепер розглянемо процес створення скрипта, який буде відправляти це повідомлення боржникам кожні 4 години.

Для цього зайдемо у редактор скриптів на сервері:

Та виберемо зі списку подій – виконання скрипта кожні чотири години:

Додаємо наш скрипт:

  1. Program UsersAlerts;
  2. Var
  3. UsersCount, I, Uin: integer;
  4. Str, Msg, ms, Date, User: string;
  5.  
  6. Begin
  7. Msg:='';
  8. // получаем количество строк в файле с должниками
  9. UsersCount:= GetTextFileLinesCount('c:\uin.txt');
  10.  
  11. For i:=1 to GetTextFileLinesCount('c:\msg.txt') do
  12. Begin
  13. // в этом цикле вычитываем файл и склеиваем его в одну строчку
  14. LoadLineFromFile('c:\MSG.txt',i,str);
  15. Msg:=Msg+str+#13#10;
  16. End;
  17.  
  18. For i:=1 to UsersCount do
  19. Begin
  20. ms:=msg; //сохраняем Msg в ms
  21. LoadLineFromFile('c:\UIN.txt',i,str);//вычитываем строку из файла
  22. UIN:=strtoint(copy(str,1,pos('|',str)-1));//получаем Uin пользователя
  23. Date:=copy(str,pos('|',str)+1,length(str)-pos('|',str));//получаем дату
  24. User:=mGetNickFromUIN(UIN);//спрашиваем ник пользователя по его UINу
  25.  
  26. //заменяем в тексте сообщения %user на ник пользователя
  27. Insert(User,Ms,pos('%user',ms));
  28. Delete(Ms,pos('%user',ms),5);
  29.  
  30. //заменяем в тексте сообщения %date на дату
  31. Insert(Date,Ms,pos('%date',ms));
  32. Delete(Ms,pos('%date',ms),5);
  33.  
  34. //и отправляем сформированное сообщение пользователю
  35. mSendPrivateMessage(uin, Ms);
  36. End;
  37. End.
 

Це буде виглядати приблизно так:

Натискаємо на іконку з дискетою, зберігаємо скрипт і ставимо галку «Включити скрипт».

Готово, сервер буде виконувати поставлену задачу кожні 4 години та сповіщати боржників.  

Ще почитати:

AntiCAPS скрипт для публічних каналів MyChat Server
Що таке UIN і навіщо він потрібен?
Установка та оновлення MyChat в Active Directory за допомогою MSI

Всі статті  

 
 

Rambler's Top100