Функція для отримання списку унікальних ідентифікаторів користувачів (UIN) із набору груп. Назви груп вказуються через кому або через символ "|", без пробілів між ними, регістр літер має значення.

 

Синтаксис

function mGetUsersListInGroupsByNames(sGroupNames: string): string;

 

Параметри та значення, що повертаються

Параметр

Тип

Значення

sGroupNames

string

назви груп користувачів через кому або символ "|". Регістр літер важливий.

 

Результат функції

Текстовий рядок зі списком UIN-ів користувачів, які входять до груп. Номери є унікальними і не повторюються, навіть якщо користувач входить до декількох груп одночасно. Групи можна перераховувати через кому або через символ "|".


Якщо групи не існують або в них немає користувачів, функція поверне порожній рядок.

 

Приклад

Скрипт "навішений" на подію за часом "Every 5 minutes". У момент спрацювання, наприклад, о 10:30, шукає файл "d:messagesbroadcast10.30.txt" і відправляє сповіщення з підтвердженням прочитання з текстом із цього файлу всім користувачам групи "Співробітник".


Якщо назва файлу починається з латинської "w", наприклад, "w10.30.txt", то сповіщення надсилається тільки у робочі дні, з понеділка по п'ятницю. "Термін придатності" оповіщення ставиться до кінця поточної доби.


const
  sGroups = 'Співробітник'; // групи через кому або символ "|", яким потрібно відправляти оповіщення
  sPath = 'd:\messages\broadcast\'; // шлях, звідки брати файли для оповіщень
var
  sFullName, sFileName, sMsg, sUsersList: string;
  iDay: integer;
  bFlag: boolean;
begin
  iDay      := DayOfTheWeek(Now);
  sFileName := FormatDatetime('hh.nn', Now) + '.txt';
  sFullName := sPath + sFileName;
  bFlag     := false;
    if FileExists(sFullName) then bFlag := true 
      else if iDay < 6 then begin
        sFullName := sPath + 'w' + sFileName;
        bFlag := FileExists(sFullName);     
      end;
    
    if bFlag then begin
      sMsg := Trim(LoadTextFromFile(sFullName, 0));
      
        if length(sMsg) > 0 then begin
          sUsersList := mGetUsersListInGroupsByNames(sGroups);
          
            if length(sUsersList) > 0 then
              mSendBroadcast(sMsg, sUsersList, EndOfTheDay(Now), 1);
        end;  
    end;
end.


Результат роботи скрипту

Оповіщення з підтвердженням прочитання відправлене від імені вбудованого робота MyChat Server:

Оповіщення в MyChat Client з підтвердженням прочитання, результат скрипту


Дивитися ще

EndOfTheDay

DayOfTheWeek

FileExists

FormatDatetime

Length

LoadTextFromFile

mSendBroadcast

Now

Trim