Додати повідомлення на дошку оголошень.

 

Синтаксис

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 ([email protected])
// 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.


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

Сьогодні Лесь святкаує свій день народження!
Вітаємо його з цим святом і бажаємо всього самого світлого та доброго!


Дивитися ще

DayOfTheWeek

Fetch

FormatDateTime

IncDay

Length

mGetBirthdayUsers

mGetUserAttribute

mGetUserFullNameByPreset

mDBStorageGetData

mDBStorageSetData

Now

StrToInt