diff --git a/airtime_mvc/application/models/Schedule.php b/airtime_mvc/application/models/Schedule.php index ad9a31089..577ea702b 100644 --- a/airtime_mvc/application/models/Schedule.php +++ b/airtime_mvc/application/models/Schedule.php @@ -524,12 +524,13 @@ class Application_Model_Schedule { foreach ($items as $item){ - $storedFile = Application_Model_StoredFile::Recall($item["file_id"]); - $uri = $storedFile->getFilePath(); - $showEndDateTime = new DateTime($item["show_end"], $utcTimeZone); $trackStartDateTime = new DateTime($item["start"], $utcTimeZone); $trackEndDateTime = new DateTime($item["end"], $utcTimeZone); + + if ($trackStartDateTime->getTimestamp() > $showEndDateTime->getTimestamp()){ + continue; + } /* Note: cue_out and end are always the same. */ /* TODO: Not all tracks will have "show_end" */ @@ -537,8 +538,12 @@ class Application_Model_Schedule { $di = $trackStartDateTime->diff($showEndDateTime); $item["cue_out"] = $di->format("%H:%i:%s").".000"; + $item["end"] = $showEndDateTime->format("Y-m-d H:i:s"); } + $storedFile = Application_Model_StoredFile::Recall($item["file_id"]); + $uri = $storedFile->getFilePath(); + $start = Application_Model_Schedule::AirtimeTimeToPypoTime($item["start"]); $data["media"][$start] = array( 'id' => $storedFile->getGunid(), diff --git a/python_apps/pypo/pypopush.py b/python_apps/pypo/pypopush.py index 396302754..0a6bde357 100644 --- a/python_apps/pypo/pypopush.py +++ b/python_apps/pypo/pypopush.py @@ -173,6 +173,7 @@ class PypoPush(Thread): if problem_at_iteration is not None: self.logger.debug("Change in chain at link %s", problem_at_iteration) + self.modify_cue_point_of_first_link(current_chain) self.push_to_liquidsoap(current_chain[problem_at_iteration:]) @@ -249,11 +250,13 @@ class PypoPush(Thread): link_start = datetime.strptime(link['start'], "%Y-%m-%d-%H-%M-%S") diff_td = tnow - link_start + diff_sec = self.convert_timedelta_to_seconds(diff_td) - self.logger.debug("media item was supposed to start %s ago. Preparing to start..", diff_td) - original_cue_in_td = timedelta(seconds=float(link['cue_in'])) - link['cue_in'] = self.convert_timedelta_to_seconds(original_cue_in_td + diff_td) - + if diff_sec > 0: + self.logger.debug("media item was supposed to start %s ago. Preparing to start..", diff_sec) + original_cue_in_td = timedelta(seconds=float(link['cue_in'])) + link['cue_in'] = self.convert_timedelta_to_seconds(original_cue_in_td) + diff_sec + def convert_timedelta_to_seconds(self, td): return (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6