forked from rc/aircox
various fixes
This commit is contained in:
parent
4525e4952b
commit
d470ca39e6
|
@ -47,6 +47,8 @@ class SoundInfo:
|
||||||
year = None
|
year = None
|
||||||
month = None
|
month = None
|
||||||
day = None
|
day = None
|
||||||
|
hour = None
|
||||||
|
minute = None
|
||||||
n = None
|
n = None
|
||||||
duration = None
|
duration = None
|
||||||
|
|
||||||
|
@ -65,6 +67,7 @@ class SoundInfo:
|
||||||
r = re.search('^(?P<year>[0-9]{4})'
|
r = re.search('^(?P<year>[0-9]{4})'
|
||||||
'(?P<month>[0-9]{2})'
|
'(?P<month>[0-9]{2})'
|
||||||
'(?P<day>[0-9]{2})'
|
'(?P<day>[0-9]{2})'
|
||||||
|
'(_(?P<hour>[0-9]{2})h(?P<minute>[0-9]{2}))?'
|
||||||
'(_(?P<n>[0-9]+))?'
|
'(_(?P<n>[0-9]+))?'
|
||||||
'_?(?P<name>.*)$',
|
'_?(?P<name>.*)$',
|
||||||
file_name)
|
file_name)
|
||||||
|
@ -80,11 +83,14 @@ class SoundInfo:
|
||||||
self.year = int(r.get('year')) if 'year' in r else None
|
self.year = int(r.get('year')) if 'year' in r else None
|
||||||
self.month = int(r.get('month')) if 'month' in r else None
|
self.month = int(r.get('month')) if 'month' in r else None
|
||||||
self.day = int(r.get('day')) if 'day' in r else None
|
self.day = int(r.get('day')) if 'day' in r else None
|
||||||
|
self.hour = int(r.get('hour')) if 'hour' in r else None
|
||||||
|
self.minute = int(r.get('minute')) if 'minute' in r else None
|
||||||
self.n = r.get('n')
|
self.n = r.get('n')
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def __init__(self, path = ''):
|
def __init__(self, path = '', sound = None):
|
||||||
self.path = path
|
self.path = path
|
||||||
|
self.sound = sound
|
||||||
|
|
||||||
def get_duration(self):
|
def get_duration(self):
|
||||||
p = subprocess.Popen(['soxi', '-D', self.path],
|
p = subprocess.Popen(['soxi', '-D', self.path],
|
||||||
|
@ -161,9 +167,16 @@ class SoundInfo:
|
||||||
start__month = self.month,
|
start__month = self.month,
|
||||||
start__day = self.day,
|
start__day = self.day,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if self.hour is not None:
|
||||||
|
diffusion = diffusion.filter(
|
||||||
|
hour = self.hour,
|
||||||
|
minute = self.minute
|
||||||
|
)
|
||||||
|
|
||||||
|
diffusion = diffusion.first()
|
||||||
if not diffusion:
|
if not diffusion:
|
||||||
return
|
return
|
||||||
diffusion = diffusion[0]
|
|
||||||
|
|
||||||
logger.info('diffusion %s mathes to sound -> %s', str(diffusion),
|
logger.info('diffusion %s mathes to sound -> %s', str(diffusion),
|
||||||
self.sound.path)
|
self.sound.path)
|
||||||
|
@ -203,8 +216,9 @@ class MonitorHandler(PatternMatchingEventHandler):
|
||||||
si = SoundInfo(event.src_path)
|
si = SoundInfo(event.src_path)
|
||||||
self.sound_kwargs['program'] = program
|
self.sound_kwargs['program'] = program
|
||||||
si.get_sound(save = True, **self.sound_kwargs)
|
si.get_sound(save = True, **self.sound_kwargs)
|
||||||
if si.year != None:
|
if si.year is not None:
|
||||||
si.find_diffusion(program)
|
si.find_diffusion(program)
|
||||||
|
si.sound.save(True)
|
||||||
|
|
||||||
def on_deleted(self, event):
|
def on_deleted(self, event):
|
||||||
logger.info('sound deleted: %s', event.src_path)
|
logger.info('sound deleted: %s', event.src_path)
|
||||||
|
@ -225,6 +239,12 @@ class MonitorHandler(PatternMatchingEventHandler):
|
||||||
|
|
||||||
sound = sound[0]
|
sound = sound[0]
|
||||||
sound.path = event.dest_path
|
sound.path = event.dest_path
|
||||||
|
if not sound.diffusion:
|
||||||
|
program = Program.get_from_path(event.src_path)
|
||||||
|
if program:
|
||||||
|
si = SoundInfo(sound.path, sound = sound)
|
||||||
|
if si.year is not None:
|
||||||
|
si.find_diffusion(program)
|
||||||
sound.save()
|
sound.save()
|
||||||
|
|
||||||
|
|
||||||
|
@ -321,7 +341,7 @@ class Command(BaseCommand):
|
||||||
si = SoundInfo(path)
|
si = SoundInfo(path)
|
||||||
sound_kwargs['program'] = program
|
sound_kwargs['program'] = program
|
||||||
si.get_sound(save = True, **sound_kwargs)
|
si.get_sound(save = True, **sound_kwargs)
|
||||||
si.find_diffusion(program)
|
si.find_diffusion(program, save = True)
|
||||||
si.find_playlist(si.sound)
|
si.find_playlist(si.sound)
|
||||||
sounds.append(si.sound.pk)
|
sounds.append(si.sound.pk)
|
||||||
|
|
||||||
|
|
|
@ -137,11 +137,15 @@ class Monitor:
|
||||||
print('no source / no sound', current_sound, current_source)
|
print('no source / no sound', current_sound, current_source)
|
||||||
return
|
return
|
||||||
|
|
||||||
log = self.get_last_log(sound__isnull = False)
|
log = self.get_last_log(
|
||||||
|
models.Q(sound__isnull = False) |
|
||||||
|
models.Q(diffusion__isnull = False),
|
||||||
|
type = Log.Type.on_air
|
||||||
|
)
|
||||||
|
|
||||||
on_air = None
|
on_air = None
|
||||||
if log:
|
if log:
|
||||||
# we always check difference in sound
|
# we always check difference in sound info
|
||||||
is_diff = log.source != current_source.id or \
|
is_diff = log.source != current_source.id or \
|
||||||
(log.sound and log.sound.path != current_sound)
|
(log.sound and log.sound.path != current_sound)
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ def on_air(request):
|
||||||
# FIXME: by name???
|
# FIXME: by name???
|
||||||
station = stations.stations.filter(name = station)
|
station = stations.stations.filter(name = station)
|
||||||
if not station.count():
|
if not station.count():
|
||||||
return HttpResponse('')
|
return HttpResponse('{}')
|
||||||
else:
|
else:
|
||||||
station = stations.stations
|
station = stations.stations
|
||||||
|
|
||||||
|
|
|
@ -348,7 +348,7 @@ Player.prototype = {
|
||||||
var self = this;
|
var self = this;
|
||||||
window.setTimeout(function() {
|
window.setTimeout(function() {
|
||||||
self.update_on_air();
|
self.update_on_air();
|
||||||
}, 60*2000);
|
}, 60*5000);
|
||||||
|
|
||||||
if(!this.playlist.on_air)
|
if(!this.playlist.on_air)
|
||||||
return;
|
return;
|
||||||
|
@ -360,6 +360,9 @@ Player.prototype = {
|
||||||
req.status != 0))
|
req.status != 0))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if(!req.responseText.length)
|
||||||
|
return;
|
||||||
|
|
||||||
var data = JSON.parse(req.responseText)
|
var data = JSON.parse(req.responseText)
|
||||||
if(data.type == 'track')
|
if(data.type == 'track')
|
||||||
data = {
|
data = {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user