MyChat Scripts: функція mGetUsersListInGroupsByNames, отримати список людей із декількох груп
Функція для отримання списку унікальних ідентифікаторів користувачів (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:
