Update index.js

This commit is contained in:
Luke Berndt
2023-02-26 09:44:04 -05:00
parent 614eddb4a0
commit c5b7ccdb0a

View File

@@ -4,7 +4,7 @@ const express = require("express");
const path = require("path");
const secrets = require("./config/secrets");
const configureExpress = require("./config/express");
const { Podcast,Item,FeedOptions } = require('podcast');
const { Podcast, Item, FeedOptions } = require('podcast');
// -------------------------------------------
@@ -53,8 +53,8 @@ function getCard(req, res, next) {
function (err, item) {
if (item) {
var time = new Date(item.time);
var timeString = time.toLocaleTimeString('en-US', {timeZone: "America/New_York"});
var dateString = time.toLocaleDateString('en-US', {timeZone: "America/New_York"});
var timeString = time.toLocaleTimeString('en-US', { timeZone: "America/New_York" });
var dateString = time.toLocaleDateString('en-US', { timeZone: "America/New_York" });
//console.log(item)
res.render('card.ejs', {
item: item,
@@ -108,58 +108,153 @@ exports.get_card = function(req, res) {
});
}
*/
/*
async function getPodcast(req, res, next) {
const now = new Date().toLocaleString();
const feedStart = `
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:psc="http://podlove.org/simple-chapters" xmlns:podcast="https://podcastindex.org/namespace/1.0" version="2.0">
<channel>
<title>
<![CDATA[ OpenMHz ]]>
</title>
<description>
<![CDATA[ Real public safety radio recordings, from across the country. <a href="hhtps://openmhz.com">OpenMHz</a> is a website that makes it easy to share recordings of public safety radio system. This podcast is a collection of interesting events that has been curated by the OpenMHz community. ]]>
</description>
<link>https://openmhz.com</link>
<generator>Podcast for Node</generator>
<lastBuildDate>${now}</lastBuildDate>
<atom:link href="https://openmhz.com/rss.xml" rel="self" type="application/rss+xml"/>
<author>
<![CDATA[ OpenMHz ]]>
</author>
<pubDate>${now}</pubDate>
<copyright>
<![CDATA[ &#169; 2023 Robotastic ]]>
</copyright>
<language>
<![CDATA[ en ]]>
</language>
<ttl>60</ttl>
<itunes:author>OpenMHz</itunes:author>
<itunes:subtitle>I am a sub title</itunes:subtitle>
<itunes:summary>Real public safety radio recordings, from across the country. OpenMHz is a website that makes it easy to share recordings of public safety radio system. This podcast is a collection of interesting events that has been curated by the OpenMHz community.</itunes:summary>
<itunes:owner>
<itunes:name>Luke Berndt</itunes:name>
<itunes:email>luke@robotastic.com</itunes:email>
</itunes:owner>
<itunes:explicit>false</itunes:explicit>
<itunes:category text="Government"/>
<itunes:category text="Daily News"/>
<itunes:category text="True Crime"/>
<itunes:image href="https://openmhz.com/podcast/cover.png"/>
`
const feedEnd = `
</channel>
</rss>
`
let xml = feedStart;
try {
const podcastsCollection = db.get().collection('podcasts');
podcastsCollection.find().toArray(function (err, podcasts) {
for (const podcast of podcasts) {
let description = podcast.description + "\n\nRadio Systems: \n";
for (const system of podcast.systems) {
description = description + " - " + system + "\n";
}
xml = xml + `
<item>
<title>
<![CDATA[ ${podcast.title} ]]>
</title>
<description>
<![CDATA[ ${description} ]]>
</description>
<guid isPermaLink="false">${podcast.downloadUrl}</guid>
<dc:creator>
<![CDATA[ OpenMHz ]]>
</dc:creator>
<url>${podcast.eventUrl}</url>
<pubDate>${podcast.startTime}</pubDate>
<enclosure url="${podcast.downloadUrl}" length="0" type="audio/mp4"/>
<itunes:author>OpenMHz</itunes:author>
<itunes:summary>${description}</itunes:summary>
<itunes:explicit>false</itunes:explicit>
</item>
`
}
xml = xml + feedEnd;
res.set('Content-Type', 'text/xml');
res.send(xml);
});
} catch (err) {
console.error(err);
return;
}
}*/
async function getPodcast(req, res, next) {
const now = new Date();
try {
const podcastsCollection = db.get().collection('podcasts');
podcastsCollection.find().toArray(function(err, podcasts) {
const feed = new Podcast({
title: 'OpenMHz',
description: 'Real public safety radio recordings, from across the country. OpenMHz is a website that makes it easy to share recordings of public safety radio system. This podcast is a collection of interesting events that has been curated by the OpenMHz community.',
feedUrl: 'https://openmhz.com/rss.xml',
siteUrl: 'https://openmhz.com',
imageUrl: 'https://openmhz.com/podcast/cover.png',
author: 'OpenMHz',
copyright: '&#169; 2022 Robotastic',
language: 'en',
pubDate: 'May 20, 2012 04:00:00 GMT',
ttl: 60,
itunesAuthor: 'OpenMHz',
itunesSubtitle: 'I am a sub title',
itunesSummary: 'Real public safety radio recordings, from across the country. OpenMHz is a website that makes it easy to share recordings of public safety radio system. This podcast is a collection of interesting events that has been curated by the OpenMHz community.',
itunesOwner: { name: 'Luke Berndt', email: 'luke@robotastic.com' },
itunesExplicit: false,
itunesCategory: [{
text: 'Government'
}, { text: "Daily News"}, {text: "True Crime"}],
itunesImage: 'https://openmhz.com/podcast/cover.png'
podcastsCollection.find().toArray(function (err, podcasts) {
const feed = new Podcast({
title: 'OpenMHz',
description: 'Real public safety radio recordings, from across the country. OpenMHz is a website that makes it easy to share recordings of public safety radio system. This podcast is a collection of interesting events that has been curated by the OpenMHz community.',
feedUrl: 'https://openmhz.com/rss.xml',
siteUrl: 'https://openmhz.com',
imageUrl: 'https://openmhz.com/podcast/cover.png',
author: 'OpenMHz',
copyright: '&#169; 2022 Robotastic',
language: 'en',
pubDate: 'May 20, 2012 04:00:00 GMT',
ttl: 60,
itunesAuthor: 'OpenMHz',
itunesSubtitle: 'I am a sub title',
itunesSummary: 'Real public safety radio recordings, from across the country. OpenMHz is a website that makes it easy to share recordings of public safety radio system. This podcast is a collection of interesting events that has been curated by the OpenMHz community.',
itunesOwner: { name: 'Luke Berndt', email: 'luke@robotastic.com' },
itunesExplicit: false,
itunesCategory: [{
text: 'Government'
}, { text: "Daily News" }, { text: "True Crime" }],
itunesImage: 'https://openmhz.com/podcast/cover.png'
});
for (const podcast of podcasts) {
let description = podcast.description +"\\n\\nRadio Systems:\\n";
let description = podcast.description + `
Radio Systems:
`;
for (const system of podcast.systems) {
description = description + " - " + system + "\\n"
description = description + " - " + system + "\n"
}
feed.addItem({
title: podcast.title,
title: podcast.title,
description: description,
enclosure: {
url: podcast.downloadUrl, // link to the item
},
},
author: 'OpenMHz', // optional - defaults to feed author property
url: podcast.eventUrl,
date: podcast.startTime, // any format that js Date can parse.
itunesAuthor: 'OpenMHz',
itunesExplicit: false,
itunesSummary: podcast.description,
itunesSummary: description,
itunesDuration: podcast.len
});
}
const xml = feed.buildXml();
res.set('Content-Type', 'text/xml');
res.send(xml);
});
});
} catch (err) {
console.error(err);
@@ -180,27 +275,27 @@ async function getCalls(req, res, next) {
}
try {
db.get().collection('calls', function (err, transCollection) {
transCollection.findOne({
'_id': o_id
},
async function (err, item) {
if (item) {
var time = new Date(item.time);
var timeString = time.toLocaleTimeString('en-US', {timeZone: "America/New_York"});
var dateString = time.toDateString('en-US', {timeZone: "America/New_York"});
//console.log(item)
const tg_coll = db.get().collection('talkgroups');
const tg = await tg_coll.findOne({ "num": item.talkgroupNum, 'shortName': req.params.shortName.toLowerCase()})
var title = item.len + " second transmission"
db.get().collection('calls', function (err, transCollection) {
transCollection.findOne({
'_id': o_id
},
async function (err, item) {
if (item) {
var time = new Date(item.time);
var timeString = time.toLocaleTimeString('en-US', { timeZone: "America/New_York" });
var dateString = time.toDateString('en-US', { timeZone: "America/New_York" });
//console.log(item)
const tg_coll = db.get().collection('talkgroups');
const tg = await tg_coll.findOne({ "num": item.talkgroupNum, 'shortName': req.params.shortName.toLowerCase() })
var title = item.len + " second transmission"
if (tg) {
//console.log(tg)
title = tg.description;
}
const callId = req.query["call-id"];
const callUrl = "https://s3.us-west-1.wasabisys.com/openmhz-west/media/dcfd-1039-1613917169.m4a"
const twitterMeta = `
if (tg) {
//console.log(tg)
title = tg.description;
}
const callId = req.query["call-id"];
const callUrl = "https://s3.us-west-1.wasabisys.com/openmhz-west/media/dcfd-1039-1613917169.m4a"
const twitterMeta = `
<meta name="twitter:card" content="player"/>
<meta name="twitter:site" content="@openmhz"/>
@@ -212,19 +307,19 @@ async function getCalls(req, res, next) {
<meta name="twitter:player:stream:content_type" content="audio/mp4"/>
<meta name="twitter:player:width" content="425"/>
<meta name="twitter:player:height" content="165"/>`
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!');
}
});
});
} catch (err) {
console.error(err);
next()
return;
}
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!');
}
});
});
} catch (err) {
console.error(err);
next()
return;
}
} else {