diff --git a/frontend/Dockerfile b/frontend/Dockerfile index e5b8aea..09b56b2 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -21,4 +21,5 @@ RUN cp -a /tmp/node_modules /app WORKDIR /app COPY server /app COPY --from=build /app/build /app/public +RUN sed 's//<%- TWITTER_META%>/g' /app/public/index.html > /app/index.ejs CMD ["node", "index.js"] \ No newline at end of file diff --git a/frontend/public/card.js b/frontend/public/card.js deleted file mode 100644 index 8f06a9c..0000000 --- a/frontend/public/card.js +++ /dev/null @@ -1,34 +0,0 @@ -'use strict'; - -// Create an instance -let wavesurfer; - -// Init & load audio file -document.addEventListener('DOMContentLoaded', function() { - // Init - wavesurfer = WaveSurfer.create({ - container: document.querySelector('#waveform'), - waveColor: '#A8DBA8', - progressColor: '#3B8686', - backend: 'MediaElement', - mediaControls: false - }); - - wavesurfer.once('ready', function() { - console.log('Using wavesurfer.js ' + WaveSurfer.VERSION); - }); - - wavesurfer.on('error', function(e) { - console.warn(e); - }); - - // Load audio from URL - wavesurfer.load('https://s3.us-west-1.wasabisys.com/openmhz-west/media/dcfd-1039-1613917169.m4a'); - - // toggle play button - document - .querySelector('[data-action="play"]') - .addEventListener('click', wavesurfer.playPause.bind(wavesurfer)); - - -}); \ No newline at end of file diff --git a/frontend/public/index.html b/frontend/public/index.html index 47ae8c7..3cefde5 100644 --- a/frontend/public/index.html +++ b/frontend/public/index.html @@ -9,6 +9,7 @@ name="%REACT_APP_SITE_NAME%" content="Listen to live Police and Fire radio broadcasts. Archived for 30 days and searchable." /> + - + wavesurfer.on("error", function (e) { + console.warn(e); + }); -
- -
- - + // Load audio from URL + wavesurfer.load(call_url); + + // toggle play button + document + .querySelector('[data-action="play"]') + .addEventListener("click", wavesurfer.playPause.bind(wavesurfer)); + }); + + + + +
+
+ +
+ +
+ +
+
+ - \ No newline at end of file diff --git a/frontend/server/index.ejs b/frontend/server/index.ejs deleted file mode 100644 index f0abcfb..0000000 --- a/frontend/server/index.ejs +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - %REACT_APP_SITE_NAME% - - - -
- - - diff --git a/frontend/server/index.js b/frontend/server/index.js index d049688..80ff374 100644 --- a/frontend/server/index.js +++ b/frontend/server/index.js @@ -61,6 +61,7 @@ function getCard(req, res, next) { var time = new Date(item.time); var timeString = time.toLocaleTimeString("en-US"); var dateString = time.toDateString(); + //console.log(item) res.render('card.ejs', { item: item, url: item.url, @@ -115,12 +116,53 @@ exports.get_card = function(req, res) { */ function getCalls(req, res, next) { - for (const key in req.query) { - console.log(key, req.query[key]) - } + if (req.query && req.query["call-id"]) { - const callId = req.query["call-id"]; - res.render("index.ejs", { PUBLIC_URL: "/", REACT_APP_SITE_NAME: process.env["REACT_APP_SITE_NAME"], REACT_APP_BACKEND_SERVER: process.env["REACT_APP_BACKEND_SERVER"], CALL_ID: callId, CALL_URL: "https://s3.us-west-1.wasabisys.com/openmhz-west/media/dcfd-1039-1613917169.m4a" }) + + var objectId = req.query["call-id"]; + try { + var o_id = ObjectID.createFromHexString(objectId); + } catch (err) { + next() + return; + } + + db.get().collection('calls', function (err, transCollection) { + transCollection.findOne({ + '_id': o_id + }, + function (err, item) { + if (item) { + var time = new Date(item.time); + var timeString = time.toLocaleTimeString("en-US"); + var dateString = time.toDateString(); + //console.log(item) + + const callId = req.query["call-id"]; + const callUrl = "https://s3.us-west-1.wasabisys.com/openmhz-west/media/dcfd-1039-1613917169.m4a" + const twitterMeta = ` + + + + + + + + + ` + res.render("index.ejs", { TWITTER_META: twitterMeta }) + } else { + console.warn("Error - /card/:id Could not find Item " + err); + res.send(404, 'Sorry, we cannot find that!'); + } + }); + }); + + + + } else { next() } @@ -129,7 +171,7 @@ function getCalls(req, res, next) { // ------------------------------------------- app.use(express.static(path.join(__dirname, "public"))); -app.get("/systems/:shortName", getCalls) +app.get("/system/:shortName", getCalls) app.get("/cards/:id", getCard) app.get("*", (req, res, next) => {