"Для разработчиков", "Серверные скрипты", "Описание функций", "Группы", "mGetUsersListInGroupsByNames".
Функция для получения списка уникальных идентификаторов пользователей (UIN) из набора групп. Имена групп указываются через запятую или через символ "|", без пробелов между ними, регистр букв имеет значение.
function mGetUsersListInGroupsByNames(sGroupNames: string): string;
Параметр |
Тип |
Значение |
---|---|---|
sGroupNames |
string |
названия групп пользователей через запятую или символ "|". Регистр букв важен. |
Текстовая строка со списком UIN-ов пользователей, которые входят в группы. Номера уникальны и не повторяются, даже если пользователь входит в несколько групп одновременно. Группы можно перечислять через запятую или через символ "|".
Если группы не существуют либо в них нет пользователей — функция вернёт пустую строку.
Скрипт "навешен" на событие по времени "Every 5 minutes". В момент срабатывания, например, в 10:30, ищет файл "d:\messages\broadcast\10.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: