-implemented. Removed ability to specify time ranges for now, and defaulted to looking from now to 24 hours ahead. Being able to specify time ranges was removed, since we are not using bi-directional communication between pypofetch and Airtime server.
44 lines
1.4 KiB
PHP
44 lines
1.4 KiB
PHP
<?php
|
|
require_once 'php-amqplib/amqp.inc';
|
|
|
|
class RabbitMq
|
|
{
|
|
static private $doPush = FALSE;
|
|
|
|
/**
|
|
* Sets a flag to push the schedule at the end of the request.
|
|
*/
|
|
public static function PushSchedule() {
|
|
RabbitMq::$doPush = TRUE;
|
|
}
|
|
|
|
/**
|
|
* Push the current schedule to RabbitMQ, to be picked up by Pypo.
|
|
* Will push the schedule in the range from 24 hours ago to 24 hours
|
|
* in the future.
|
|
*/
|
|
public static function PushScheduleFinal()
|
|
{
|
|
global $CC_CONFIG;
|
|
if (RabbitMq::$doPush) {
|
|
$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(Schedule::GetScheduledPlaylists());
|
|
$msg = new AMQPMessage($data, array('content_type' => 'text/plain'));
|
|
|
|
$channel->basic_publish($msg, $EXCHANGE);
|
|
$channel->close();
|
|
$conn->close();
|
|
}
|
|
}
|
|
|
|
}
|
|
|