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

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

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

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

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

            5|01.07.2009-31.07.2009
            678|01.07.2009-31.07.2009
            4|01.07.2009-31.07.2009
            567|01.07.2009-31.07.2009
            56|01.07.2009-31.07.2009
            456|01.06.2009-31.07.2009
            67|01.07.2009-31.07.2009
            34|01.07.2009-31.07.2009
            5|01.07.2009-31.07.2009
            7|01.07.2009-31.07.2009
            97|01.06.2009-31.07.2009
            44|01.07.2009-31.07.2009
            676|01.07.2009-31.07.2009
        

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

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

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

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

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

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

Program UsersAlerts;
            Var
                UsersCount, I, Uin: integer;
                Str, Msg, ms, Date, User: string;

            Begin
                Msg:='';
                // получаем количество строк в файле с должниками
                UsersCount:= GetTextFileLinesCount('c:\uin.txt');

                For i:=1 to GetTextFileLinesCount('c:\msg.txt') do
                Begin
                    // в этом цикле вычитываем файл и склеиваем его в одну строчку
                    LoadLineFromFile('c:\MSG.txt',i,str);
                    Msg:=Msg+str+#13#10;
                End;

                For i:=1 to UsersCount do
                Begin
                    ms:=msg; //сохраняем Msg в ms
                    LoadLineFromFile('c:\UIN.txt',i,str);//вычитываем строку из файла
                    UIN:=strtoint(copy(str,1,pos('|',str)-1));//получаем Uin пользователя
                    Date:=copy(str,pos('|',str)+1,length(str)-pos('|',str));//получаем дату
                    User:=mGetNickFromUIN(UIN);//спрашиваем ник пользователя по его UINу

                    //заменяем в тексте сообщения %user на ник пользователя
                    Insert(User,Ms,pos('%user',ms));
                    Delete(Ms,pos('%user',ms),5);

                    //заменяем в тексте сообщения %date на дату
                    Insert(Date,Ms,pos('%date',ms));
                    Delete(Ms,pos('%date',ms),5);

                    //и отправляем сформированное сообщение пользователю
                    mSendPrivateMessage(uin, Ms);
                End;
            End.
        

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

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

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

 
Служба поддержки