### Description Build and use the schedule events only in playout, the events generated by legacy are not used anymore. This ensure that we don't have to maintain 2 different implementation in 2 different languages. We still need the php function to run to make sure the side effects of this function are executed (filling the schedule in the DB).
116 lines
3.9 KiB
PHP
116 lines
3.9 KiB
PHP
<?php
|
|
|
|
set_include_path(__DIR__ . '/..' . PATH_SEPARATOR . get_include_path());
|
|
set_include_path(__DIR__ . '/../../../library' . PATH_SEPARATOR . get_include_path());
|
|
|
|
require_once __DIR__ . '/../Show.php';
|
|
|
|
require_once __DIR__ . '/../StoredFile.php';
|
|
|
|
require_once __DIR__ . '/../Playlist.php';
|
|
|
|
require_once __DIR__ . '/../Schedule.php';
|
|
|
|
require_once __DIR__ . '/../Preference.php';
|
|
|
|
require_once __DIR__ . '/../RabbitMq.php';
|
|
|
|
require_once __DIR__ . '/../../configs/conf.php';
|
|
|
|
require_once __DIR__ . '/../../../install_minimal/include/AirtimeIni.php';
|
|
|
|
require_once __DIR__ . '/../../../install_minimal/include/AirtimeInstall.php';
|
|
|
|
require_once __DIR__ . '/../../../library/propel/runtime/lib/Propel.php';
|
|
|
|
Propel::init(__DIR__ . '/../../configs/airtime-conf.php');
|
|
|
|
AirtimeInstall::DbConnect(true);
|
|
$con = Propel::getConnection();
|
|
$sql = 'DELETE FROM cc_show';
|
|
$con->exec($sql);
|
|
$sql = 'DELETE FROM cc_show_days';
|
|
$con->exec($sql);
|
|
$sql = 'DELETE FROM cc_show_instances';
|
|
$con->exec($sql);
|
|
|
|
/*
|
|
// Create a playlist
|
|
$playlist = new Application_Model_Playlist();
|
|
$playlist->create("Calendar Load test playlist ".uniqid());
|
|
|
|
// Add a file
|
|
$values = array("filepath" => __DIR__."/test10001.mp3");
|
|
$storedFile = Application_Model_StoredFile::Insert($values, false);
|
|
$result = $playlist->addAudioClip($storedFile->getId());
|
|
|
|
// Add a file
|
|
$values = array("filepath" => __DIR__."/test10002.mp3");
|
|
$storedFile2 = Application_Model_StoredFile::Insert($values, false);
|
|
|
|
$result = $playlist->addAudioClip($storedFile2->getId());
|
|
$result = $playlist->addAudioClip($storedFile2->getId());
|
|
|
|
echo "Created playlist ".$playlist->getName()." with ID ".$playlist->getId()."\n";
|
|
*/
|
|
// Create the shows
|
|
|
|
function createTestShow($showNumber, $showTime, $duration = '1:00')
|
|
{
|
|
$data = [];
|
|
$strTime = $showTime->format('Y-m-d H:i');
|
|
echo "Adding show: {$strTime}\n";
|
|
$data['add_show_name'] = 'automated show ' . $showNumber;
|
|
$data['add_show_start_date'] = $showTime->format('Y-m-d');
|
|
$data['add_show_start_time'] = $showTime->format('H:i');
|
|
$data['add_show_duration'] = $duration;
|
|
$data['add_show_no_end'] = 0;
|
|
$data['add_show_repeats'] = 0;
|
|
$data['add_show_description'] = 'automated show';
|
|
$data['add_show_url'] = 'http://www.OfirGal.com';
|
|
$data['add_show_color'] = '';
|
|
$data['add_show_genre'] = 'Ofir';
|
|
$data['add_show_background_color'] = '';
|
|
$data['add_show_record'] = 0;
|
|
$data['add_show_hosts'] = '';
|
|
$showId = Application_Model_Show::create($data);
|
|
// echo "show created, ID: $showId\n";
|
|
|
|
// populating the show with a playlist
|
|
$instances = Application_Model_Show::getShows($showTime, $showTime);
|
|
$instance = array_pop($instances);
|
|
$show = new Application_Model_ShowInstance($instance['instance_id']);
|
|
// echo "Adding playlist to show instance ".$show->getShowInstanceId()."\n";
|
|
$show->scheduleShow([1]);
|
|
// echo "done\n";
|
|
// $show->scheduleShow(array($playlist->getId()));
|
|
}
|
|
|
|
$showTime = new DateTime();
|
|
|
|
$resolution = 'hour';
|
|
$showNumber = 1;
|
|
$numberOfDays = 180;
|
|
$numberOfHours = 0;
|
|
$endDate = new DateTime();
|
|
$endDate->add(new DateInterval('P' . $numberOfDays . 'DT' . $numberOfHours . 'H'));
|
|
echo 'End date: ' . $endDate->format('Y-m-d H:i') . "\n";
|
|
|
|
while ($showTime < $endDate) {
|
|
echo $showTime->format('Y-m-d H:i') . ' < ' . $endDate->format('Y-m-d H:i') . "\n";
|
|
if ($resolution == 'minute') {
|
|
createTestShow($showNumber, $showTime, '0:01');
|
|
$showTime->add(new DateInterval('PT1M'));
|
|
} elseif ($resolution == 'hour') {
|
|
createTestShow($showNumber, $showTime);
|
|
$showTime->add(new DateInterval('PT1H'));
|
|
}
|
|
++$showNumber;
|
|
}
|
|
|
|
if (Application_Model_RabbitMq::$doPush) {
|
|
// The side effects of this function are still required to fill the schedule, we
|
|
// don't use the returned schedule.
|
|
Application_Model_Schedule::getSchedule();
|
|
Application_Model_RabbitMq::SendMessageToPypo('update_schedule', []);
|
|
}
|