MyChat Scripts: функція 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 ([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.
Результат роботи
Сьогодні Лесь святкаує свій день народження!
Вітаємо його з цим святом і бажаємо всього самого світлого та доброго!