sound_monitor: filesystem monitoring using watchdog

This commit is contained in:
bkfox
2015-12-29 12:05:59 +01:00
parent 2445690da3
commit d70593a461
7 changed files with 257 additions and 104 deletions

View File

@ -192,9 +192,9 @@ class Sound (Nameable):
self.check_on_file()
if not self.name and self.path:
self.name = os.path.basename(self.path) \
.splitext() \
.replace('_', ' ')
self.name = os.path.basename(self.path)
self.name = os.path.splitext(self.name)[0]
self.name = self.name.replace('_', ' ')
super().save(*args, **kwargs)
def __str__ (self):
@ -221,7 +221,7 @@ class Stream (models.Model):
delay = models.TimeField(
_('delay'),
blank = True, null = True,
help_text = _('plays this playlist at least every delay')
help_text = _('delay between two sound plays')
)
begin = models.TimeField(
_('begin'),
@ -516,6 +516,24 @@ class Program (Nameable):
sound.path.replace(self.__original_path, self.path)
sound.save()
@classmethod
def get_from_path (cl, path):
"""
Return a Program from the given path. We assume the path has been
given in a previous time by this model (Program.path getter).
"""
path = path.replace(settings.AIRCOX_PROGRAMS_DIR, '')
while path[0] == '/': path = path[1:]
while path[-1] == '/': path = path[:-2]
if '/' in path:
path = path[:path.index('/')]
path = path.split('_')
path = path[-1]
qs = cl.objects.filter(id = int(path))
return qs[0] if qs else None
class Diffusion (models.Model):
"""
A Diffusion is an occurrence of a Program that is scheduled on the