forked from rc/aircox
		
	work on sound monitor; cast Sound.duration into Integer; handle add/remove cases even when no -s option is given to sounds_monitor
This commit is contained in:
		@ -96,7 +96,7 @@ class Sound (Nameable):
 | 
			
		||||
    path = models.FilePathField(
 | 
			
		||||
        _('file'),
 | 
			
		||||
        path = settings.AIRCOX_PROGRAMS_DIR,
 | 
			
		||||
        match = '*(' + '|'.join(settings.AIRCOX_SOUND_FILE_EXT) + ')$',
 | 
			
		||||
        match = r'(' + '|'.join(settings.AIRCOX_SOUND_FILE_EXT).replace('.', r'\.') + ')$',
 | 
			
		||||
        recursive = True,
 | 
			
		||||
        blank = True, null = True,
 | 
			
		||||
    )
 | 
			
		||||
@ -105,9 +105,10 @@ class Sound (Nameable):
 | 
			
		||||
        blank = True, null = True,
 | 
			
		||||
        help_text = _('HTML code used to embed a sound from external plateform'),
 | 
			
		||||
    )
 | 
			
		||||
    duration = models.TimeField(
 | 
			
		||||
    duration = models.IntegerField(
 | 
			
		||||
        _('duration'),
 | 
			
		||||
        blank = True, null = True,
 | 
			
		||||
        help_text = _('duration in seconds'),
 | 
			
		||||
    )
 | 
			
		||||
    date = models.DateTimeField(
 | 
			
		||||
        _('date'),
 | 
			
		||||
@ -136,7 +137,7 @@ class Sound (Nameable):
 | 
			
		||||
        """
 | 
			
		||||
        mtime = os.stat(self.path).st_mtime
 | 
			
		||||
        mtime = tz.datetime.fromtimestamp(mtime)
 | 
			
		||||
        return tz.make_aware(mtime, timezone.get_current_timezone())
 | 
			
		||||
        return tz.make_aware(mtime, tz.get_current_timezone())
 | 
			
		||||
 | 
			
		||||
    def file_exists (self):
 | 
			
		||||
        return os.path.exists(self.path)
 | 
			
		||||
@ -144,7 +145,7 @@ class Sound (Nameable):
 | 
			
		||||
    def check_on_file (self):
 | 
			
		||||
        """
 | 
			
		||||
        Check sound file info again'st self, and update informations if
 | 
			
		||||
        needed. Return True if there was changes.
 | 
			
		||||
        needed (do not save). Return True if there was changes.
 | 
			
		||||
        """
 | 
			
		||||
        if not self.file_exists():
 | 
			
		||||
            if self.removed:
 | 
			
		||||
@ -152,11 +153,15 @@ class Sound (Nameable):
 | 
			
		||||
            self.removed = True
 | 
			
		||||
            return True
 | 
			
		||||
 | 
			
		||||
        old_removed = self.removed
 | 
			
		||||
        self.removed = False
 | 
			
		||||
 | 
			
		||||
        mtime = self.get_mtime()
 | 
			
		||||
        if self.date != mtime:
 | 
			
		||||
            self.date = mtime
 | 
			
		||||
            self.good_quality = False
 | 
			
		||||
            return True
 | 
			
		||||
        return old_removed != self.removed
 | 
			
		||||
 | 
			
		||||
    def save (self, check = True, *args, **kwargs):
 | 
			
		||||
        if check:
 | 
			
		||||
@ -450,9 +455,25 @@ class Program (Nameable):
 | 
			
		||||
        return os.path.join(settings.AIRCOX_PROGRAMS_DIR,
 | 
			
		||||
                            slugify(self.name + '_' + str(self.id)) )
 | 
			
		||||
 | 
			
		||||
    def ensure_dir (self, subdir = None):
 | 
			
		||||
        """
 | 
			
		||||
        Make sur the program's dir exists (and optionally subdir). Return True
 | 
			
		||||
        if the dir (or subdir) exists.
 | 
			
		||||
        """
 | 
			
		||||
        path = self.path
 | 
			
		||||
        if not os.path.exists(path):
 | 
			
		||||
            os.mkdir(path)
 | 
			
		||||
 | 
			
		||||
        if subdir:
 | 
			
		||||
            path = os.path.join(path, subdir)
 | 
			
		||||
            if not os.path.exists(path):
 | 
			
		||||
                os.mkdir(path)
 | 
			
		||||
        return os.path.exists(path)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def find_schedule (self, date):
 | 
			
		||||
        """
 | 
			
		||||
        Return the first schedule that matches a given date
 | 
			
		||||
        Return the first schedule that matches a given date.
 | 
			
		||||
        """
 | 
			
		||||
        schedules = Schedule.objects.filter(program = self)
 | 
			
		||||
        for schedule in schedules:
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user