[Сценарий] С днем рождения!

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

[Сценарий] С днем рождения!

Сообщение Amarok » Вс мар 08, 2015 10:46 am

Научил Алису поздравлять хозяев с днем рождения.
Для этого нужно:
1. что б Алисочка знала сегодняшнее число
2. что б Алиса знала дату рождения

Итак, приступаем к обучению нашей девочки:
У меня все пользователи находятся в классе Peoples. Добавляем к классу свойство birthday. Далее, заполняем это свойство у каждого пользователя вписывая день рождения (число.месяц) без нолей.

Создаем сценарий birthday:

Код: Выделить всё

$today=gg("Time.DayOfMonthNum");
$today.=".";
$today.=gg("Time.MonthNum");
$objects=getObjectsByClass("Peoples");
foreach($objects as $obj) {
if (gg($obj['TITLE'].".birthday") == $today){
$from=gg('ThisComputer.EMail');
$to=gg($obj['TITLE'].".EMail4SMS");
$subj="HappyBirthday";
$bodytext="С днем рождения! ";
$bodytext.=getRandomLine(birthday);
$bodytext.=" (Алиса)";
SendMail($from, $to, $subj, $bodytext);}}
 
Файл birthday.txt кладем в htdocs\texts

В onNewMinute добавляем:

Код: Выделить всё

if (($h==13 and $m=="00")) { RunScript('birthday'); } //Поздравляю с днем рождения   
Вложения
birthday.zip
(1.04 КБ) 512 скачиваний
Последний раз редактировалось Amarok Вс мар 08, 2015 11:04 am, всего редактировалось 1 раз.
За это сообщение автора Amarok поблагодарили (всего 4):
sregeipt (Пн мар 09, 2015 5:09 am) • Vovix (Чт окт 15, 2015 2:49 pm) • Otto (Вт май 31, 2016 2:57 pm) • kas5858 (Вт янв 17, 2017 12:35 am)
Рейтинг: 4.65%
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: С днем рождения!

Сообщение Amarok » Вс мар 08, 2015 10:55 am

Кстати, приветствуется пополнение "базы поздравлений" (файла birthday.txt). Только одна просьба: поздравлялка должна быть нейтральна к полу, возрасту и семейному положению)
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Controer
Сообщения: 44
Зарегистрирован: Чт апр 09, 2015 8:09 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: С днем рождения!

Сообщение Controer » Пн апр 13, 2015 6:23 am

Amarok писал(а):Научил Алису поздравлять хозяев с днем рождения.
Для этого нужно:
1. что б Алисочка знала сегодняшнее число
2. что б Алиса знала дату рождения

Итак, приступаем к обучению нашей девочки:
У меня все пользователи находятся в классе Peoples. Добавляем к классу свойство birthday. Далее, заполняем это свойство у каждого пользователя вписывая день рождения (число.месяц) без нолей.

Создаем сценарий birthday:

Код: Выделить всё

$today=gg("Time.DayOfMonthNum");
$today.=".";
$today.=gg("Time.MonthNum");
$objects=getObjectsByClass("Peoples");
foreach($objects as $obj) {
if (gg($obj['TITLE'].".birthday") == $today){
$from=gg('ThisComputer.EMail');
$to=gg($obj['TITLE'].".EMail4SMS");
$subj="HappyBirthday";
$bodytext="С днем рождения! ";
$bodytext.=getRandomLine(birthday);
$bodytext.=" (Алиса)";
SendMail($from, $to, $subj, $bodytext);}}
 
Файл birthday.txt кладем в htdocs\texts

В onNewMinute добавляем:

Код: Выделить всё

if (($h==13 and $m=="00")) { RunScript('birthday'); } //Поздравляю с днем рождения     
А где найти onNewMinute , или это такой сценарий?

У меня все пользователи находятся в классе Peoples. Добавляем к классу свойство birthday. Далее, заполняем это свойство у каждого пользователя вписывая день рождения (число.месяц) без нолей.

Можете выложить скриншот примера, а то я не разберусь.
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: С днем рождения!

Сообщение Amarok » Пн апр 13, 2015 7:27 am

Screenshot_1.jpg
Screenshot_1.jpg (18.54 КБ) 14328 просмотров
Screenshot_2.jpg
Screenshot_2.jpg (8.99 КБ) 14328 просмотров
Screenshot_3.jpg
Screenshot_3.jpg (89.53 КБ) 14328 просмотров
И
Screenshot_5.jpg
Screenshot_5.jpg (12.5 КБ) 14327 просмотров
За это сообщение автора Amarok поблагодарил:
kawkay (Сб апр 25, 2015 10:42 pm)
Рейтинг: 1.16%
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
alexon
Сообщения: 8
Зарегистрирован: Вт фев 17, 2015 8:26 pm
Благодарил (а): 0
Поблагодарили: 0

Re: С днем рождения!

Сообщение alexon » Пт окт 09, 2015 4:04 pm

А можете подробнее объяснить где создать класс Peoples и как присвоить свойство birthday.
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 531 раз
Контактная информация:

Re: С днем рождения!

Сообщение Vovix » Чт окт 15, 2015 2:43 pm

Amarok, я посмел немного переделать сценарий birthday,

цель: я хотел, что-бы в свойстве у объекта (пользователя) .Birthday, записывать не только день и месяц (да еще и без ноля впереди), а еще и год (вдруг в дальнейшем пригодиться), т.е. там у меня дата рождения записана в обычном, привычном виде, например: 01.12.1973
ну и у меня используется класс Users (в вашем примере Peoples)

вот код

Код: Выделить всё

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.".Brithday"));
    if (($USd == $TCd)&($USm == $TCm)) {
         $fullName=gg($user.".fullName");
        $bodytext=$fullName.": ";
         $bodytext.=getRandomLine(birthday);
        $bodytext.=" С днем рождения! (Алиса)";
        say($bodytext,1);   
        runScript('send_mes', array('to'=>$fullName,'subj'=>"- HappyBirthday -",'msg'=>$bodytext,'what'=>"SMS"));
    } 
  
}
if ($fullName=='unknown') {
    say ("На сегодня я дней рождения не обнаружила.",-1);
}
За это сообщение автора Vovix поблагодарили (всего 3):
Amarok (Чт окт 15, 2015 4:07 pm) • kas5858 (Вт янв 17, 2017 1:09 am) • Samir77 (Ср апр 18, 2018 12:44 am)
Рейтинг: 3.49%
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
alexon
Сообщения: 8
Зарегистрирован: Вт фев 17, 2015 8:26 pm
Благодарил (а): 0
Поблагодарили: 0

Re: С днем рождения!

Сообщение alexon » Пн окт 19, 2015 4:53 pm

А на мой вопрос ни кто не ответит?
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: С днем рождения!

Сообщение Amarok » Пн окт 19, 2015 5:05 pm

alexon писал(а):А на мой вопрос ни кто не ответит?
Peoples.zip
(2.16 КБ) 394 скачивания
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: С днем рождения!

Сообщение ErmolenkoM » Пн окт 19, 2015 10:18 pm

alexon писал(а):А можете подробнее объяснить где создать класс Peoples и как присвоить свойство birthday.
Читаем ВиКи. Раздел Азбука. Про объекты и свойства тут: http://majordomo.smartliving.ru/Main/BasicsObjects
aka msh555
Cubian на Cubietruck, Connect
alexon
Сообщения: 8
Зарегистрирован: Вт фев 17, 2015 8:26 pm
Благодарил (а): 0
Поблагодарили: 0

Re: С днем рождения!

Сообщение alexon » Чт окт 22, 2015 1:02 pm

Amarok писал(а):
alexon писал(а):А на мой вопрос ни кто не ответит?
Peoples.zip
Не могу настроить. Вроде все правильно делаю. А код который в peoples.zip куда прикрутить?
Ответить