Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
tfosn
Понадобилось автоматически добавлять новых пользователей в определенную группу пользователей, сделано это следующим скриптом.
Ранее делали это вручную... [smilie=dash3.gif]
Скрипт перебирает всех пользователей, получает название из поля "Название компании", с этим названием создается группа пользователе, пользователь добавляется в эту группу.

Код: Выделить всё
// ---------------------------------------
// Script created by tfosn
// 13.12.2019 10:09:42
// ---------------------------------------

var
  sUsersList, polzovatelJSON, dt, s: string;
  iUIN, x: integer;
begin
SetScriptTimeOut(300000);
  sUsersList := mGetUsersListByState(-2); //сетевой статус пользователя.
                              //-2 все зарегистрированные пользователи.
                                //-1 отключен от сервера, офлайн;
                                        // 0 "Свободен", онлайн;
                                        // 1 "Нет на месте", онлайн;
                                        // 2 "Не беспокоить", онлайн.
 
    while length(sUsersList) > 0 do begin //перебор всех пользователей
      iUIN := strtoint(GetNextSt(sUsersList, ','));
      //mLogScript(IntToStr(iUIN), 'iUIN Пользователя');//вывод в консоль iUIN Пользователя
      polzovatelJSON:=mGetUserDataAsJSON(iUIN, 'WorkCompanyName')//Получение поля WorkCompanyName пользователя по его UIN в формате JSON
                                                   //Список доступных полей пользователя https://nsoft-s.com/mcserverhelp/index.html?scriptsfuncusersmgetuserdataasjson.htm
        if JSONGetString(polzovatelJSON, 'WorkCompanyName', dt) = 0 then
          if dt = '' then
          dt := 'Не заполнено поле WorkCompanyName';
           //mLogScript(dt, 'Группа');//вывод в консоль имени группы пользователей
            mCreateUsersGroup(dt); //создание группы пользователей
            x:=mAddUserToGroup(iUIN, dt); //добавление пользователя в созданую группу пользователей
            case x of
            0: s := 'пользователь успешно добавлен в группу';
            -1: s := 'такого пользователя не существует';
            -2: s := 'группа с таким названием не существует';
            -3: s := 'пользователь уже находится в этой группе.';
          end;
        //mLogScript(s, '');//вывод в консоль результата добавления пользователя в созданую группу пользователей
    end;
end.