/** * Summary of say * @param mixed $ph Phrase * @param mixed $level Level (default 0) * @param mixed $member_id Member ID (default 0) * @return void */ function say($ph, $level = 0, $member_id = 0) { global $commandLine; global $voicemode; global $noPatternMode; global $ignorePushover; global $ignorePushbullet; global $ignoreGrowl; global $ignoreTwitter; $rec = array(); $rec['MESSAGE'] = $ph; $rec['ADDED'] = date('Y-m-d H:i:s'); $rec['ROOM_ID'] = 0; $rec['MEMBER_ID'] = $member_id; if ($level > 0) { $rec['IMPORTANCE'] = $level; } $rec['ID'] = SQLInsert('shouts', $rec); if ($member_id) { include_once DIR_MODULES . 'patterns/patterns.class.php'; $pt = new patterns(); $pt->checkAllPatterns($member_id); return; } if (defined('SETTINGS_HOOK_BEFORE_SAY') && SETTINGS_HOOK_BEFORE_SAY != '') { eval(SETTINGS_HOOK_BEFORE_SAY); } processSubscriptions('SAY', array('level' => $level, 'message' => $ph, 'member_id' => $member_id)); global $ignoreVoice; if ($level >= (int) getGlobal('minMsgLevel') && !$ignoreVoice && !$member_id) { $lang = 'en'; if (defined('SETTINGS_SITE_LANGUAGE')) { $lang = SETTINGS_SITE_LANGUAGE; } if (defined('SETTINGS_VOICE_LANGUAGE')) { $lang = SETTINGS_VOICE_LANGUAGE; } if (SETTINGS_TTS_ENGINE == 'google') { $voice_file = GoogleTTS($ph, $lang); } elseif (SETTINGS_TTS_ENGINE == 'yandex') { $voice_file = YandexTTS($ph, $lang); } else { $voice_file = false; } if (!defined('SETTINGS_SPEAK_SIGNAL') || SETTINGS_SPEAK_SIGNAL == '1') { $passed = time() - (int) getGlobal('lastSayTime'); // play intro-sound only if more than 20 seconds passed from the last one if ($passed > 20) { setGlobal('lastSayTime', time()); playSound('dingdong', 1, $level); } } if ($voice_file) { @touch($voice_file); playSound($voice_file, 1, $level); } else { if (IsWindowsOS()) { safe_exec('cscript ' . DOC_ROOT . '/rc/sapi.js ' . $ph, 1, $level); } else { if ($lang == 'ru') { $ln = 'russian'; } else { $ln = 'english'; } safe_exec('echo "' . $ph . '" | festival --language ' . $ln . ' --tts', 1, $level); } } } if (!$noPatternMode) { include_once DIR_MODULES . 'patterns/patterns.class.php'; $pt = new patterns(); $pt->checkAllPatterns($member_id); } if (defined('SETTINGS_PUSHOVER_USER_KEY') && SETTINGS_PUSHOVER_USER_KEY && !$ignorePushover) { include_once ROOT . 'lib/pushover/pushover.inc.php'; if (defined('SETTINGS_PUSHOVER_LEVEL')) { if ($level >= SETTINGS_PUSHOVER_LEVEL) { postToPushover($ph); } } elseif ($level > 0) { postToPushover($ph); } } if (defined('SETTINGS_PUSHBULLET_KEY') && SETTINGS_PUSHBULLET_KEY && !$ignorePushbullet) { include_once ROOT . 'lib/pushbullet/pushbullet.inc.php'; if (defined('SETTINGS_PUSHBULLET_PREFIX') && SETTINGS_PUSHBULLET_PREFIX) { $prefix = SETTINGS_PUSHBULLET_PREFIX . ' '; } else { $prefix = ''; } if (defined('SETTINGS_PUSHBULLET_LEVEL')) { if ($level >= SETTINGS_PUSHBULLET_LEVEL) { postToPushbullet($prefix . $ph); } } elseif ($level > 0) { postToPushbullet($prefix . $ph); } } if (defined('SETTINGS_GROWL_ENABLE') && SETTINGS_GROWL_ENABLE && $level >= SETTINGS_GROWL_LEVEL && !$ignoreGrowl) { include_once ROOT . 'lib/growl/growl.gntp.php'; $growl = new Growl(SETTINGS_GROWL_HOST, SETTINGS_GROWL_PASSWORD); $growl->setApplication('MajorDoMo', 'Notifications'); //$growl->registerApplication('http://localhost/img/logo.png'); $growl->notify($ph); } if (defined('SETTINGS_TWITTER_CKEY') && SETTINGS_TWITTER_CKEY && !$ignoreTwitter) { postToTwitter($ph); } if (defined('SETTINGS_HOOK_AFTER_SAY') && SETTINGS_HOOK_AFTER_SAY != '') { eval(SETTINGS_HOOK_AFTER_SAY); } }
getObject($objects[$i]['TITLE'])->setProperty("time", date('Y-m-d H:i:s')); getObject($objects[$i]['TITLE'])->raiseEvent("onNewMinute"); } $old_minute = $m; } if ($h != $old_hour) { $sqlQuery = "SELECT ID, TITLE\n FROM objects\n WHERE {$o_qry}"; //echo "new hour\n"; $old_hour = $h; $objects = SQLSelect($sqlQuery); $total = count($objects); for ($i = 0; $i < $total; $i++) { echo date('H:i:s') . ' ' . $objects[$i]['TITLE'] . "->onNewHour\n"; getObject($objects[$i]['TITLE'])->raiseEvent("onNewHour"); } processSubscriptions('HOURLY'); } $queue = SQLSelect("SELECT * FROM phistory_queue ORDER BY ID"); if ($queue[0]['ID']) { $total = count($queue); for ($i = 0; $i < $total; $i++) { $q_rec = $queue[$i]; $value = $q_rec['VALUE']; $old_value = $q_rec['OLD_VALUE']; SQLExec("DELETE FROM phistory_queue WHERE ID='" . $q_rec['ID'] . "'"); if ($value != $old_value) { SQLExec("DELETE FROM phistory WHERE VALUE_ID='" . $q_rec['VALUE_ID'] . "' AND TO_DAYS(NOW())-TO_DAYS(ADDED)>" . (int) $q_rec['KEEP_HISTORY']); $h = array(); $h['VALUE_ID'] = $q_rec['VALUE_ID']; $h['ADDED'] = $q_rec['ADDED']; $h['VALUE'] = $value;