CC-1942: Add ability to set timezone in preferences
-change timezone in python
This commit is contained in:
parent
84ec62eeca
commit
b538f1cc82
6 changed files with 69 additions and 29 deletions
|
@ -16,12 +16,36 @@ require_once 'MusicDir.php';
|
||||||
require_once 'Playlist.php';
|
require_once 'Playlist.php';
|
||||||
require_once 'StoredFile.php';
|
require_once 'StoredFile.php';
|
||||||
require_once 'Schedule.php';
|
require_once 'Schedule.php';
|
||||||
|
require_once 'Preference.php';
|
||||||
require_once 'Shows.php';
|
require_once 'Shows.php';
|
||||||
require_once 'Users.php';
|
require_once 'Users.php';
|
||||||
require_once 'RabbitMq.php';
|
require_once 'RabbitMq.php';
|
||||||
require_once 'DateHelper.php';
|
require_once 'DateHelper.php';
|
||||||
require_once __DIR__.'/controllers/plugins/RabbitMqPlugin.php';
|
require_once __DIR__.'/controllers/plugins/RabbitMqPlugin.php';
|
||||||
|
|
||||||
|
global $CC_CONFIG, $CC_DBC;
|
||||||
|
$dsn = $CC_CONFIG['dsn'];
|
||||||
|
|
||||||
|
$CC_DBC = DB::connect($dsn, FALSE);
|
||||||
|
if (PEAR::isError($CC_DBC)) {
|
||||||
|
echo "ERROR: ".$CC_DBC->getMessage()." ".$CC_DBC->getUserInfo()."\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
||||||
|
|
||||||
|
//DateTime in PHP 5.3.0+ need a default timezone set.
|
||||||
|
date_default_timezone_set(Application_Model_Preference::GetTimezone());
|
||||||
|
|
||||||
|
Logging::setLogPath('/var/log/airtime/zendphp.log');
|
||||||
|
|
||||||
|
Zend_Validate::setDefaultNamespaces("Zend");
|
||||||
|
|
||||||
|
$front = Zend_Controller_Front::getInstance();
|
||||||
|
$front->registerPlugin(new RabbitMqPlugin());
|
||||||
|
|
||||||
|
|
||||||
|
/* The bootstrap class should only be used to initialize actions that return a view.
|
||||||
|
Actions that return JSON will not use the bootstrap class! */
|
||||||
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
||||||
{
|
{
|
||||||
protected function _initDoctype()
|
protected function _initDoctype()
|
||||||
|
@ -69,29 +93,5 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
||||||
$view = $this->getResource('view');
|
$view = $this->getResource('view');
|
||||||
$view->headTitle(Application_Model_Preference::GetHeadTitle());
|
$view->headTitle(Application_Model_Preference::GetHeadTitle());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function _initDbConnection(){
|
|
||||||
global $CC_CONFIG, $CC_DBC;
|
|
||||||
$dsn = $CC_CONFIG['dsn'];
|
|
||||||
|
|
||||||
$CC_DBC = DB::connect($dsn, FALSE);
|
|
||||||
if (PEAR::isError($CC_DBC)) {
|
|
||||||
echo "ERROR: ".$CC_DBC->getMessage()." ".$CC_DBC->getUserInfo()."\n";
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
|
||||||
|
|
||||||
//DateTime in PHP 5.3.0+ need a default timezone set.
|
|
||||||
date_default_timezone_set(Application_Model_Preference::GetTimezone());
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function _initMisc(){
|
|
||||||
Logging::setLogPath('/var/log/airtime/zendphp.log');
|
|
||||||
|
|
||||||
Zend_Validate::setDefaultNamespaces("Zend");
|
|
||||||
|
|
||||||
$front = Zend_Controller_Front::getInstance();
|
|
||||||
$front->registerPlugin(new RabbitMqPlugin());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,9 @@ class RabbitMqPlugin extends Zend_Controller_Plugin_Abstract
|
||||||
{
|
{
|
||||||
public function dispatchLoopShutdown()
|
public function dispatchLoopShutdown()
|
||||||
{
|
{
|
||||||
RabbitMq::PushScheduleFinal();
|
if (RabbitMq::$doPush) {
|
||||||
|
$md = array('schedule' => Schedule::GetScheduledPlaylists());
|
||||||
|
RabbitMq::SendMessageToPypo("update_schedule", $md);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -59,7 +59,6 @@ class Application_Model_Preference
|
||||||
$result = $CC_DBC->GetOne($sql);
|
$result = $CC_DBC->GetOne($sql);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function GetHeadTitle(){
|
public static function GetHeadTitle(){
|
||||||
|
@ -263,6 +262,9 @@ class Application_Model_Preference
|
||||||
|
|
||||||
public static function SetTimezone($timezone){
|
public static function SetTimezone($timezone){
|
||||||
Application_Model_Preference::SetValue("timezone", $timezone);
|
Application_Model_Preference::SetValue("timezone", $timezone);
|
||||||
|
date_default_timezone_set($timezone);
|
||||||
|
$md = array("timezone" => $timezone);
|
||||||
|
RabbitMq::SendMessageToPypo("update_timezone", $md);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function GetTimezone(){
|
public static function GetTimezone(){
|
||||||
|
|
|
@ -3,7 +3,7 @@ require_once 'php-amqplib/amqp.inc';
|
||||||
|
|
||||||
class RabbitMq
|
class RabbitMq
|
||||||
{
|
{
|
||||||
static private $doPush = FALSE;
|
static public $doPush = FALSE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a flag to push the schedule at the end of the request.
|
* Sets a flag to push the schedule at the end of the request.
|
||||||
|
@ -17,7 +17,7 @@ class RabbitMq
|
||||||
* Will push the schedule in the range from 24 hours ago to 24 hours
|
* Will push the schedule in the range from 24 hours ago to 24 hours
|
||||||
* in the future.
|
* in the future.
|
||||||
*/
|
*/
|
||||||
public static function PushScheduleFinal()
|
/* public static function PushScheduleFinal()
|
||||||
{
|
{
|
||||||
global $CC_CONFIG;
|
global $CC_CONFIG;
|
||||||
if (RabbitMq::$doPush) {
|
if (RabbitMq::$doPush) {
|
||||||
|
@ -42,6 +42,32 @@ class RabbitMq
|
||||||
|
|
||||||
self::SendMessageToShowRecorder("update_schedule");
|
self::SendMessageToShowRecorder("update_schedule");
|
||||||
}
|
}
|
||||||
|
} */
|
||||||
|
|
||||||
|
public static function SendMessageToPypo($event_type, $md)
|
||||||
|
{
|
||||||
|
global $CC_CONFIG;
|
||||||
|
|
||||||
|
$md["event_type"] = $event_type;
|
||||||
|
|
||||||
|
$conn = new AMQPConnection($CC_CONFIG["rabbitmq"]["host"],
|
||||||
|
$CC_CONFIG["rabbitmq"]["port"],
|
||||||
|
$CC_CONFIG["rabbitmq"]["user"],
|
||||||
|
$CC_CONFIG["rabbitmq"]["password"]);
|
||||||
|
$channel = $conn->channel();
|
||||||
|
$channel->access_request($CC_CONFIG["rabbitmq"]["vhost"], false, false, true, true);
|
||||||
|
|
||||||
|
$EXCHANGE = 'airtime-schedule';
|
||||||
|
$channel->exchange_declare($EXCHANGE, 'direct', false, true);
|
||||||
|
|
||||||
|
$data = json_encode($md);
|
||||||
|
$msg = new AMQPMessage($data, array('content_type' => 'text/plain'));
|
||||||
|
|
||||||
|
$channel->basic_publish($msg, $EXCHANGE);
|
||||||
|
$channel->close();
|
||||||
|
$conn->close();
|
||||||
|
|
||||||
|
self::SendMessageToShowRecorder("update_schedule");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function SendMessageToMediaMonitor($event_type, $md)
|
public static function SendMessageToMediaMonitor($event_type, $md)
|
||||||
|
|
|
@ -96,7 +96,11 @@ while ($showTime < $endDate) {
|
||||||
}
|
}
|
||||||
$showNumber = $showNumber + 1;
|
$showNumber = $showNumber + 1;
|
||||||
}
|
}
|
||||||
RabbitMq::PushScheduleFinal();
|
|
||||||
|
if (RabbitMq::$doPush) {
|
||||||
|
$md = array('schedule' => Schedule::GetScheduledPlaylists());
|
||||||
|
RabbitMq::SendMessageToPypo("update_schedule", $md);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,11 @@ def handle_message(body, message):
|
||||||
|
|
||||||
if(command == 'update_schedule'):
|
if(command == 'update_schedule'):
|
||||||
SCHEDULE_PUSH_MSG = m['schedule']
|
SCHEDULE_PUSH_MSG = m['schedule']
|
||||||
|
elif (command == 'update_timezone'):
|
||||||
|
logger.info("Setting timezone to %s", m['timezone'])
|
||||||
|
os.environ['TZ'] = m['timezone']
|
||||||
|
time.tzset()
|
||||||
|
|
||||||
# ACK the message to take it off the queue
|
# ACK the message to take it off the queue
|
||||||
message.ack()
|
message.ack()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue