MyChat Scripts: функция mAddNewBBSMessage для создания объявления на общей доске

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.

 

Результат работы

Автоматическое поздравление пользователей MyChat с днями рождений
 

Ещё посмотреть

DayOfTheWeek

Fetch

FormatDateTime

IncDay

Length

mGetBirthdayUsers

mGetUserAttribute

mGetUserFullNameByPreset

mDBStorageGetData

mDBStorageSetData

Now

StrToInt