forked from rc/aircox
work on timezone bug -- still need run checks
This commit is contained in:
@ -84,8 +84,7 @@ class Monitor:
|
||||
if not current_sound or not current_source:
|
||||
return
|
||||
|
||||
log = Log.objects.get_for(model = Sound) \
|
||||
.filter(station = self.station) \
|
||||
log = Log.objects.get_for(self.station, model = Sound) \
|
||||
.order_by('date').last()
|
||||
|
||||
# only streamed
|
||||
@ -113,7 +112,7 @@ class Monitor:
|
||||
Log tracks for the given sound (for streamed programs); Called by
|
||||
self.trace
|
||||
"""
|
||||
logs = Log.objects.get_for(model = Track) \
|
||||
logs = Log.objects.get_for(self.station, model = Track) \
|
||||
.filter(pk__gt = log.pk)
|
||||
logs = [ log.related_id for log in logs ]
|
||||
|
||||
@ -160,11 +159,11 @@ class Monitor:
|
||||
if not self.cancel_timeout:
|
||||
return
|
||||
|
||||
diffs = Diffusions.objects.get_at().filter(
|
||||
diffs = Diffusions.objects.at(self.station).filter(
|
||||
type = Diffusion.Type.normal,
|
||||
sound__type = Sound.Type.archive,
|
||||
)
|
||||
logs = station.get_played(models = Diffusion)
|
||||
logs = station.played(models = Diffusion)
|
||||
|
||||
date = tz.now() - datetime.timedelta(seconds = self.cancel_timeout)
|
||||
for diff in diffs:
|
||||
@ -188,14 +187,14 @@ class Monitor:
|
||||
station = self.station
|
||||
now = tz.now()
|
||||
|
||||
diff_log = station.get_played(models = Diffusion) \
|
||||
diff_log = station.played(models = Diffusion) \
|
||||
.order_by('date').last()
|
||||
if not diff_log or \
|
||||
not diff_log.related.is_date_in_range(now):
|
||||
return None, []
|
||||
|
||||
# sound has switched? assume it has been (forced to) stopped
|
||||
sounds = station.get_played(models = Sound) \
|
||||
sounds = station.played(models = Sound) \
|
||||
.filter(date__gte = diff_log.date) \
|
||||
.order_by('date')
|
||||
|
||||
@ -228,7 +227,7 @@ class Monitor:
|
||||
now = tz.now()
|
||||
|
||||
args = {'start__gt': diff.date } if diff else {}
|
||||
diff = Diffusion.objects.get_at(now).filter(
|
||||
diff = Diffusion.objects.at(station, now).filter(
|
||||
type = Diffusion.Type.normal,
|
||||
sound__type = Sound.Type.archive,
|
||||
**args
|
||||
|
Reference in New Issue
Block a user