Пн май 13, 2019 10:43 am Пн май 13, 2019 10:43 am
//////////////////////////////////////////////////////////////
// //
// MyChat Server Script Language //
// //
// Скрипт автоматических поздравлений с днями рождений //
// версия 1.1 от 13.05.2019 //
// //
// Copyright(c) Alexandr //
// //
// Проверяется весь список пользователей //
// Если необходимо ограничить список пользователей //
// Можно изменить функцию получения списка пользователей //
// на mGetUsersListByParams //
// Выполнять каждый час //
// Вопросы, пожелания, комментарии: //
// http://www.nsoft-s.com/forum/viewforum.php?f=35 //
// //
// История версий: //
// - изменен скрипт в соответствии с новыми функциями //
// //
//////////////////////////////////////////////////////////////
var
s, sUserFullName, sMsg, s2, sToday, sOld, date, ddmm : string;
iUIN, iSex, i, y, d, m: integer;
sPol: string;
begin
sToday := Copy(FormatDateTime('dd.mm.yyyy', Now),1,5); // получаем текущую дату
// читаем из реестра запись о прошлом запуске
RegGetString(HKEY_CURRENT_USER, 'Software\MyChatServerScripts\BirthdayReminder', sOld);
// если мы ужа работали сегодня, то ничего не делаем, чтобч
// не поздравить одних и тех же людей по второму кругу
if sToday<>sOld then begin
// записываем в реестр текущую дату
RegSetString(HKEY_CURRENT_USER, 'Software\MyChatServerScripts\BirthdayReminder', sToday);
// и перебираем их всех по одному
for i := 1 to mGetMaxRegisteredUIN() do begin
date := mGetUserAttribute(i, 'Home_Birthday');
ddmm := Copy(date,1,5);
if ((ddmm=sToday) and (date<>'01.01.1900.00.00.00')) then begin
sPol := mGetUserAttribute(iUIN, 'Sex');
sUserFullName := mGetUserFullNameByPreset(i, 0); // ... и полного имени
case iSex of
0, 1: s2 := 'его';
2: s2 := 'её';
end;
// формируем строку для поздравления
sMsg := 'Сегодня ' + sUserFullName + ' празднует день рождения!' +
CRLF +
'Подравляем ' + s2 + ' с этим праздником и желаем всего самого ' +
'светлого и доброго!';
// ...и размещаем её на доске объяалений, чтобы было видно всем пользователям,
// а дату окончания объявления выставляем до конца текущего дня
mAddNewBBSMessage(false, sMsg, EndOfTheDay(Now));
end;
end;
end;
end.