MyChat Scripts: функция mAddNewBBSMessage для создания объявления на общей доске
"Для разработчиков", "Серверные скрипты", "Описание функций", "Доска объявлений", "mAddNewBBSMessage".
Добавить новое сообщение на доску объявлений.
Синтаксис
function mAddNewBBSMessage(const sMsg:string; const dtExpire: double; const bStick: boolean): integer;
Параметры и возвращаемые значения
Параметр |
Тип |
Значение |
sMsg |
string |
текст сообщения; |
dtExpire |
double |
дата окончания действия объявления. Пересчитывается автоматически в UTC; |
bStick |
boolean |
если true, то сообщение будет размещено сверху всех сообщений, игнорируя сортировку по дате. |
Результат функции
>0 |
сообщение успешно размещено, результат = индексу сообщения в базе данных; |
-1 |
сообщение не может быть пустым; |
-2 |
дата окончания срока действия объявления не может быть меньше текущей даты. |
Пример
Пример для автоматического поздравления пользователей чата с днём рождения. Поздравления размещаются на доске объявлений, скрипт "навешивается" на событие "User defined script"\ "Every hour".
// ---------------------------------------
// Script created by Alexey Pikurov (support@nsoft-s.com)
// 18.01.2021 20:45:13
// ---------------------------------------
var
iUIN: integer;
dtExpired: double;
sUsersList, sUserFullName, sMsg, sGender, sToday: string;
begin
dtExpired := Now; // получаем текущую дату
sToday := FormatDateTime('ddmmyyyy', dtExpired);
// если мы уже работали сегодня, то ничего не делаем, чтобы
// не поздравить одних и тех же людей по второму кругу
if mDBStorageGetData('birthday-script') = sToday then exit
else mDBStorageSetData('birthday-script', sToday);
sUsersList := mGetBirthdayUsers(dtExpired); // получаем список UIN-ов людей, у которых сегодня день рождения
while length(sUsersList) > 0 do begin
iUIN := StrToInt(Fetch(sUsersList, ','));
sUserFullName := mGetUserFullNameByPreset(iUIN, 0); // 0 — "Александр Сергеевич Пушкин"
if mGetUserAttribute(iUIN, 'Sex') = '2' then sGender := 'её' // получение пола пользователя
else sGender := 'его';
// формируем строку для поздравления
sMsg := 'Сегодня ' + sUserFullName + ' празднует день рождения!' +
CRLF +
'Подравляем ' + sGender + ' с этим праздником и желаем всего самого ' +
'светлого и доброго!';
// если сегодня суббота или воскресенье, то добавляем нужное количество дней до понедельника
case DayOfTheWeek(dtExpired) of
6: IncDay(dtExpired, 2);
7: IncDay(dtExpired, 1);
end;
// ...и размещаем поздравление на доске объяалений, чтобы было видно всем пользователям
mAddNewBBSMessage(sMsg, dtExpired, false);
end;
end.
Результат работы