return _('Recurring Stream for %s') % self.schedule
-class RecurringStreamOccurence(models.Model):
- diffusion = models.ForeignKey(RecurringStreamDiffusion, on_delete=models.CASCADE)
- datetime = models.DateTimeField(_('Date/time'), db_index=True)
+class RecurringOccurenceMixin:
@property
def jingle(self):
def end_datetime(self):
return self.datetime + datetime.timedelta(minutes=self.diffusion.schedule.get_duration())
+ def get_jingle_filepath(self):
+ return self.diffusion.jingle.get_local_filepath() if self.diffusion.jingle_id else None
+
+
+class RecurringStreamOccurence(models.Model, RecurringOccurenceMixin):
+ diffusion = models.ForeignKey(RecurringStreamDiffusion, on_delete=models.CASCADE)
+ datetime = models.DateTimeField(_('Date/time'), db_index=True)
+
@property
def stream(self):
return self.diffusion.stream
def is_stream(self):
return True
- def get_jingle_filepath(self):
- return self.diffusion.jingle.get_local_filepath() if self.diffusion.jingle_id else None
-
class RecurringRandomDirectoryDiffusion(models.Model):
# between soundfiles and nonstop zones, this is used for the "mix
return _('Recurring Random Directory for %s') % self.schedule
-class RecurringRandomDirectoryOccurence(models.Model):
+class RecurringRandomDirectoryOccurence(models.Model, RecurringOccurenceMixin):
diffusion = models.ForeignKey(RecurringRandomDirectoryDiffusion, on_delete=models.CASCADE)
datetime = models.DateTimeField(_('Date/time'), db_index=True)
- @property
- def jingle(self):
- return self.diffusion.jingle
-
- @property
- def jingle_id(self):
- return self.diffusion.jingle_id
-
- @property
- def duration(self):
- return self.diffusion.schedule.get_duration() * 60
-
- @property
- def end_datetime(self):
- return self.datetime + datetime.timedelta(minutes=self.diffusion.schedule.get_duration())
-
def is_stream(self):
return False
- def get_jingle_filepath(self):
- return self.diffusion.jingle.get_local_filepath() if self.diffusion.jingle_id else None
-
def file_path(self):
directory = self.diffusion.directory
return os.path.join(directory, random.choice(os.listdir(directory)))