From 7fbb7a426a711836c33c7fab21f62e262c151cf7 Mon Sep 17 00:00:00 2001 From: Chandler Swift Date: Mon, 29 Jan 2024 20:05:35 -0600 Subject: [PATCH] MNDOT cameras _do_ expose a source! Co-Authored-By: Eric Villnow --- layers/dot-cams/mn/get_data.py | 10 +++++++++- layers/dot-cams/mn/layer.js | 4 +--- layers/dot-cams/mn/query.graphql | 5 +++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/layers/dot-cams/mn/get_data.py b/layers/dot-cams/mn/get_data.py index 4d3bf3e..285171d 100755 --- a/layers/dot-cams/mn/get_data.py +++ b/layers/dot-cams/mn/get_data.py @@ -40,9 +40,17 @@ for c in camera_views: print(c) raise Exception(f"Unexpected number of features: {len(c['features'])}") - if re.match(r"Show [\d]* cameras", c['tooltip']): + if re.match(r"Show .* cameras", c['tooltip']): raise Exception(f"Not zoomed in enough! Finding aggregate cameras: {c}") + for view in c['views']: + if len(view['sources']) != 1 if view['category'] == 'VIDEO' else 0: + print(view) + raise Exception(f"Unexpected number of sources ({len(view['sources'])})") + for source in view['sources'] or []: + if source['type'] != 'application/x-mpegURL': + raise Exception(f"Unexpected type {source['type']}") + viewCount += len(c['views']) cameras.append({ "type": "Feature", diff --git a/layers/dot-cams/mn/layer.js b/layers/dot-cams/mn/layer.js index 0f7cfd7..bf985d2 100644 --- a/layers/dot-cams/mn/layer.js +++ b/layers/dot-cams/mn/layer.js @@ -39,9 +39,7 @@ vectorLayer.customPopupCallback = function(feature) { if (view.category.toLowerCase() == "video") { const video = document.getElementById('popupVideo'); - const videoID = view.url.split('/').pop(); - - const videoSrc = `https://video.dot.state.mn.us/public/${videoID}.stream/playlist.m3u8`; + const videoSrc = view.sources[0].src; if (Hls.isSupported()) { var hls = new Hls(); hls.loadSource(videoSrc); diff --git a/layers/dot-cams/mn/query.graphql b/layers/dot-cams/mn/query.graphql index d032daa..8c53b14 100644 --- a/layers/dot-cams/mn/query.graphql +++ b/layers/dot-cams/mn/query.graphql @@ -18,6 +18,11 @@ query MapFeatures($input: MapFeaturesArgs!, $plowType: String) { uri ... on CameraView { url + sources { + type + src + } + title } category }