Skip to content

Commit de5b74b

Browse files
committed
DBC22-6244: updated stale/delayed stauts when updating webcam
1 parent c637270 commit de5b74b

3 files changed

Lines changed: 13 additions & 2 deletions

File tree

src/backend/apps/consumer/processor.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,6 @@ async def process_message(message: aio_pika.IncomingMessage):
254254
filename = message.headers.get("filename", "unknown.jpg")
255255
camera_id = filename.split("_")[0].split(".")[0]
256256
timestamp_utc = message.headers.get("timestamp", "unknown")
257-
# camera_status = calculate_camera_status(camera_id, timestamp_utc)
258257
camera_status = await sync_to_async(calculate_camera_status)(camera_id, timestamp_utc)
259258

260259
timestamp_local = await sync_to_async(safe_db_call)(

src/backend/apps/webcam/enums.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@
44
'caption',
55
'is_on',
66
'should_appear',
7+
'marked_stale',
8+
'marked_delayed',
79
]
810

911
CAMERA_FIELD_MAPPING = {
1012
'name': 'cam_internetname',
1113
'caption': 'cam_internetcaption',
1214
'is_on': 'isOn',
1315
'should_appear': 'should_appear',
16+
'marked_stale': 'stale',
17+
'marked_delayed': 'delayed',
18+
1419
}

src/backend/apps/webcam/tasks.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,10 @@ def update_webcam_db(cam_id: int, cam_data: dict):
173173
for field in CAMERA_DIFF_FIELDS:
174174
source_field = CAMERA_FIELD_MAPPING.get(field, field)
175175
webcam_value = getattr(existing_webcam, field)
176-
source_value = cam_data.get(source_field)
176+
if field in ['marked_stale', 'marked_delayed']:
177+
source_value = camera_status[source_field]
178+
else:
179+
source_value = cam_data.get(source_field)
177180
if webcam_value != source_value:
178181
Webcam.objects.filter(id=cam_id).update(
179182
is_on=True if cam_data.get("isOn") == 1 else False,
@@ -184,6 +187,10 @@ def update_webcam_db(cam_id: int, cam_data: dict):
184187
is_on_demand=cam_data.get("isOnDemand"),
185188
last_update_attempt=dt_utc,
186189
last_update_modified=dt_utc,
190+
update_period_mean=camera_status["mean_interval"],
191+
update_period_stddev=camera_status["stddev_interval"],
192+
marked_stale=camera_status["stale"],
193+
marked_delayed=camera_status["delayed"],
187194
)
188195
is_updated = True
189196
return is_updated

0 commit comments

Comments
 (0)