Поздравления от Алисы в Majordomo и Telegram

Научим Алису поздравлять пользователей с Днём рождения.

Что бы поздравления не были скучными создадим архив поздравлений для Алисы.
Настройки - Текстовые файлы - Добавить

Название: birthday
Данные:

Поздравить рада с днём рожденья, Здоровья, счастья пожелать, С улыбкой, добрым настроеньем Свой путь по жизни продолжать.
Желаю радости всегда И настроенья бодрого, Не знать печали никогда И в жизни всего доброго.
Желаю я простого счастья И тихой радости земной. И пусть житейские ненастья Всегда обходят стороной.
Желаю жить еще сто лет И жизнью наслаждаться, Не знать ни горя и ни бед, Почаще улыбаться. Простить врагов, найти друзей От всей души желаю. Любить себя, любить людей, Ведь люди удивляют!
Пусть в этот день все ярче солнце светит, Цветы под ноги стелются ковром, Желаю крепкого здоровья, счастья, смеха, Всего того, что называется добром.
С днём рожденья поздравляю, Здоровья, счастья я желаю, Успехов в творческом труде, Любви и радости в семье! 
С днём рожденья поздравляю, Здоровья, счастья я желаю, Успехов в творческом труде, Любви и радости в семье! Желаю жизни без тревог, Прогнать печали за порог, Желаю жить - не унывать И про друзей не забывать!
Желаю жизни без тревог, Прогнать печали за порог, Желаю жить - не унывать И про друзей не забывать!
Желаю забыть про болезни, невзгоды. Желаю здоровья на долгие годы!
Желаю в жизни лишь успеха, меньше грусти, больше смеха, Дорогу жизни подлинней И много радости на ней!
Желаю неба чистого и солнышка лучистого: Мира вечного и счастья бесконечного, Здоровья, радости, успеха, Побольше радостного смеха.
Желаю крепкого сибирского здоровья, безумной любви, надежных и верных друзей!
Поздравляю с днём варенья! Желаю, чтоб всё было, и за это ничего не было.
Живи, балдей и в жизни будет все окей! =)



В объектах добавим классу Users два свойства birthday и telegram.
Их нужно заполнить. Вписать дату рождения к пр. 01.01.1999 в свойство birthday



и ID пользователя с приложения Telegram в свойство telegram.


 Далее в сценариях создаём новый сценарий с названием birthday.
Сценарии - Добавить новый сценарий


Вот с таким кодом.

say ("Проверим, есть ли сегодня дни рождения у кого-нибудь из пользователей.",-1);
$TCd=gg("ThisComputer.DateD");
$TCm=gg("ThisComputer.DateM");
$fullName='unknown';
$objects=getObjectsByClass("Users");
foreach($objects as $obj) {
     $user=$obj['TITLE'];
     list($USd, $USm, $USy) = explode(".", gg($user.".birthday"));
    if (($USd == $TCd)&($USm == $TCm)) {
         $telega=gg($user.".telegram");
         $fullName=gg($user.".fullName");
         $bodytext=$fullName.": ";
         $bodytext.=getRandomLine(birthday);
        $bodytext.=" С днем рождения! (Алиса)";  
     if($telega == FALSE){
       say('Сегодня у пользователя "'.$fullName.'" День рождения, не забудь поздравить! :)',3); 
     } else { 
        include_once(DIR_MODULES . 'telegram/telegram.class.php');
        $telegram_module = new telegram();
        $telegram_module->sendMessageToUser($telega, $bodytext);
     }
    } 
  
}
if ($fullName=='unknown') {
    say ("На сегодня я дней рождения не обнаружила.",-1);
}



И сохраняем.


Далее заходим в Объекты - Timer - ClockChime - Методы - Timer-> onNewMinute - Настроить


И добавляем в код вот такую строчку.

if (($h==13 and $m=="00")) { RunScript('birthday'); } //Поздравляю с днем рождения


Сохраняемся.

Далее нам нужен второй метод.
Объекты - Timer - ClockChime - Методы - Timer-> onNewHour - Настроить

Возможно метод будет пустой, делаем всё как на картинке и добавляем вот этот разовый код.

$h=(int)date('G',time());

$day[0]="воскресенье";
$day[1]="понедельник";
$day[2]="вторник";
$day[3]="среда";
$day[4]="четверг";
$day[5]="пятница";
$day[6]="суббота";

$month[1]="января";
$monthAlt[1]="ЯНВАРЬ";
$month[2]="февраля";
$monthAlt[2]="ФЕВРАЛЬ";
$month[3]="марта";
$monthAlt[3]="МАРТ";
$month[4]="апреля";
$monthAlt[4]="АПРЕЛЬ";
$month[5]="мая";
$monthAlt[5]="МАЙ";
$month[6]="июня";
$monthAlt[6]="ИЮНЬ";
$month[7]="июля";
$monthAlt[7]="ИЮЛЬ";
$month[8]="августа";
$monthAlt[8]="АВГУСТ";
$month[9]="сентября";
$monthAlt[9]="СЕНТЯБРЬ"; 
$month[10]="октября";
$monthAlt[10]="ОКТЯБРЬ";
$month[11]="ноября";
$monthAlt[11]="НОЯБРЬ";
$month[12]="декабря";
$monthAlt[12]="ДЕКАБРЬ";

sg("ThisComputer.DateD",date( "d", time()));
sg("ThisComputer.DateM",date( "m", time()));
sg("ThisComputer.DateY",date( "Y", time()));
sg("ThisComputer.Date",date( "d.m.Y", time()));
sg("ThisComputer.Day",$day[date("w")]);
sg("ThisComputer.Month",$month[date("n")]);
sg("ThisComputer.MonthAlt",$monthAlt[date("n")]);

Жмём Обновить.
Далее нам нужно запустить метод. Ниже жмём на надпись test.
Он добавит объекту ThisComputer нужные свойства.



Откроется пустое окно браузера, закрываем его.

Далее удаляем весь разовый код в методе onNewHour и вводим новый.

$h=(int)date('G',time());

// раскидываем дату и время если сейчас 00:00 час
if (($h=="00")) {
$day[0]="воскресенье";
$day[1]="понедельник";
$day[2]="вторник";
$day[3]="среда";
$day[4]="четверг";
$day[5]="пятница";
$day[6]="суббота";

$month[1]="января";
$monthAlt[1]="ЯНВАРЬ";
$month[2]="февраля";
$monthAlt[2]="ФЕВРАЛЬ";
$month[3]="марта";
$monthAlt[3]="МАРТ";
$month[4]="апреля";
$monthAlt[4]="АПРЕЛЬ";
$month[5]="мая";
$monthAlt[5]="МАЙ";
$month[6]="июня";
$monthAlt[6]="ИЮНЬ";
$month[7]="июля";
$monthAlt[7]="ИЮЛЬ";
$month[8]="августа";
$monthAlt[8]="АВГУСТ";
$month[9]="сентября";
$monthAlt[9]="СЕНТЯБРЬ"; 
$month[10]="октября";
$monthAlt[10]="ОКТЯБРЬ";
$month[11]="ноября";
$monthAlt[11]="НОЯБРЬ";
$month[12]="декабря";
$monthAlt[12]="ДЕКАБРЬ";

sg("ThisComputer.DateD",date( "d", time()));
sg("ThisComputer.DateM",date( "m", time()));
sg("ThisComputer.DateY",date( "Y", time()));
sg("ThisComputer.Date",date( "d.m.Y", time()));
sg("ThisComputer.Day",$day[date("w")]);
sg("ThisComputer.Month",$month[date("n")]);
sg("ThisComputer.MonthAlt",$monthAlt[date("n")]);
}

Всё готово. Проверить в действии можно если одному из пользователей в качестве даты рождения ввести сегодняшнюю дату и запустить сценарий birthday набрав в браузере:

http://IP-адрес-majordomo:80/objects/?script=birthday

или же нажав на ссылку в самом сценарии.




Комментарии

Популярные сообщения из этого блога

Motor Shield L293D + Arduino

Перенос Armbian на SSD

Радиореле 220В 433МГц c кодировкой сигнала eV1527