diff --git a/.env.test b/.env.test index 9321907..2b95e8b 100644 --- a/.env.test +++ b/.env.test @@ -14,7 +14,7 @@ REACT_APP_FRONTEND_SERVER="${PROTOCOL}${DOMAIN_NAME}" REACT_APP_ACCOUNT_SERVER="${PROTOCOL}account.${DOMAIN_NAME}" REACT_APP_ADMIN_SERVER="${PROTOCOL}admin.${DOMAIN_NAME}" REACT_APP_COOKIE_DOMAIN=".${DOMAIN_NAME}" -REACT_APP_ADMIN_EMAIL=luke@robotastic.com +REACT_APP_ADMIN_EMAIL=support@openmhz.com REACT_APP_SITE_NAME=OpenMHz REACT_APP_ARCHIVE_DAYS=30 STRIPE_PUBLISHABLE_KEY="" @@ -25,7 +25,7 @@ ADMIN_SERVER="${PROTOCOL}admin.${DOMAIN_NAME}" ACCOUNT_SERVER="${PROTOCOL}account.${DOMAIN_NAME}" COOKIE_DOMAIN=".${DOMAIN_NAME}" SITE_NAME="OpenMHz" -ADMIN_EMAIL="luke@robotastic.com" +ADMIN_EMAIL="support@openmhz.com" S3_PROFILE='wasabi-account' S3_ENPOINT='s3.us-west-1.wasabisys.com' FREE_PLAN=0 diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 0edabc9..d084127 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,6 @@ # These are supported funding model platforms -github: robotastic +github: # Replace with a single Github username patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username diff --git a/account/server/config/express.js b/account/server/config/express.js index 5ddf39a..028b27c 100644 --- a/account/server/config/express.js +++ b/account/server/config/express.js @@ -5,10 +5,10 @@ const bodyParser = require("body-parser"); const MongoStore = require("connect-mongo"); const secrets = require("./secrets"); -var cookie_domain = process.env['REACT_APP_COOKIE_DOMAIN'] != null ? process.env['REACT_APP_COOKIE_DOMAIN'] : '.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; +var cookie_domain = process.env['REACT_APP_COOKIE_DOMAIN'] != null ? process.env['REACT_APP_COOKIE_DOMAIN'] : '.openmhz.com'; var backend_server = process.env['REACT_APP_BACKEND_SERVER'] != null ? process.env['REACT_APP_BACKEND_SERVER'] : 'https://api.openmhz.com'; var frontend_server = process.env['REACT_APP_FRONTEND_SERVER'] != null ? process.env['REACT_APP_FRONTEND_SERVER'] : 'https://openmhz.com'; -var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : 'https://account.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; +var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : 'https://account.openmhz.com'; var admin_server = process.env['REACT_APP_ADMIN_SERVER'] != null ? process.env['REACT_APP_ADMIN_SERVER'] : 'https://admin.openmhz.com'; var account_dev_server = "http://account.openmhz.test:3000" var admin_dev_server = "http://admin.openmhz.test:3000" diff --git a/account/server/controllers/users.js b/account/server/controllers/users.js index db9c243..42e9460 100644 --- a/account/server/controllers/users.js +++ b/account/server/controllers/users.js @@ -4,10 +4,10 @@ const Mailjet = require('node-mailjet'); const crypto = require("crypto"); -var admin_email = process.env['REACT_APP_ADMIN_EMAIL'] != null ? process.env['REACT_APP_ADMIN_EMAIL'] : "luke@openmhz.com"; +var admin_email = process.env['REACT_APP_ADMIN_EMAIL'] != null ? process.env['REACT_APP_ADMIN_EMAIL'] : "support@openmhz.com"; var site_name = process.env['REACT_APP_SITE_NAME'] != null ? process.env['REACT_APP_SITE_NAME'] : "OpenMHz"; var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : "https://account.openmhz.com"; -var cookie_domain = process.env['REACT_APP_COOKIE_DOMAIN'] != null ? process.env['REACT_APP_COOKIE_DOMAIN'] : '.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; +var cookie_domain = process.env['REACT_APP_COOKIE_DOMAIN'] != null ? process.env['REACT_APP_COOKIE_DOMAIN'] : '.openmhz.com'; const mailjet = new Mailjet({ diff --git a/account/server/index.js b/account/server/index.js index a127c49..e1dc8cc 100644 --- a/account/server/index.js +++ b/account/server/index.js @@ -62,8 +62,8 @@ const isDev = process.env.NODE_ENV === "development" var frontend_server = process.env['REACT_APP_FRONTEND_SERVER'] != null ? process.env['REACT_APP_FRONTEND_SERVER'] : 'https://openmhz.com'; -var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : 'https://account.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; -var admin_server = process.env['REACT_APP_ADMIN_SERVER'] != null ? process.env['REACT_APP_ADMIN_SERVER'] : 'https://admin.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; +var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : 'https://account.openmhz.com'; +var admin_server = process.env['REACT_APP_ADMIN_SERVER'] != null ? process.env['REACT_APP_ADMIN_SERVER'] : 'https://admin.openmhz.com'; // ------------------------------------------- diff --git a/account/src/User/Login.js b/account/src/User/Login.js index 1f40944..3980db6 100644 --- a/account/src/User/Login.js +++ b/account/src/User/Login.js @@ -102,7 +102,7 @@ const Login = (props) => {
Let's get this started!
{process.env.REACT_APP_SITE_NAME} makes it easy to share recordings from{" "} - + Trunk Recorder .

diff --git a/account/src/User/Register.js b/account/src/User/Register.js index c6c408f..697d4bc 100644 --- a/account/src/User/Register.js +++ b/account/src/User/Register.js @@ -33,7 +33,7 @@ function Register(props) { Welcome!

Creating an account on OpenMHz is the first step in sharing radio system recordings using Trunk Recorder.

-

After creating an account, head over here to learn more about Trunk Recorder

+

After creating an account, head over here to learn more about Trunk Recorder

- Luke

diff --git a/account/src/User/Terms.js b/account/src/User/Terms.js index 38fb405..f3ef764 100644 --- a/account/src/User/Terms.js +++ b/account/src/User/Terms.js @@ -66,7 +66,7 @@ You agree not to sell, resell, or offer for any commercial purposes, any portion
5. API Access
-The OpenMHz API is designed solely to support the OpenMHz website frontend and iOS app. You may not use the API for any other purpose without explicit permission from OpenMHz. The infrastructure for OpenMHz has not been well designed, and unauthorized use may result in the whole thing crashing. Additionally, some API calls may place a significant load on the server, and preplanning is required to avoid this. We will allow for API access on a case-by-case basis. Please contact us at: luke@robotastic.com +The OpenMHz API is designed solely to support the OpenMHz website frontend and iOS app. You may not use the API for any other purpose without explicit permission from OpenMHz. The infrastructure for OpenMHz has not been well designed, and unauthorized use may result in the whole thing crashing. Additionally, some API calls may place a significant load on the server, and preplanning is required to avoid this. We will allow for API access on a case-by-case basis. Please contact us at: support@openmhz.com
6. Legal Compliance
@@ -102,7 +102,7 @@ The Services are provided as a labor of love by a single individual. I have a li
14. Contact Me
-If you have any questions or concerns about these Terms, please contact me at luke@robotastic.com. +If you have any questions or concerns about these Terms, please contact me at support@openmhz.com. By using OpenMHz, you acknowledge that you have read, understood, and agree to be bound by these Terms of Service. Thank you for using our Services! diff --git a/admin/server/config/express.js b/admin/server/config/express.js index 01d1632..a0762bd 100644 --- a/admin/server/config/express.js +++ b/admin/server/config/express.js @@ -5,10 +5,10 @@ const bodyParser = require("body-parser"); const MongoStore = require("connect-mongo"); const secrets = require("./secrets"); -var cookie_domain = process.env['REACT_APP_COOKIE_DOMAIN'] != null ? process.env['REACT_APP_COOKIE_DOMAIN'] : '.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; +var cookie_domain = process.env['REACT_APP_COOKIE_DOMAIN'] != null ? process.env['REACT_APP_COOKIE_DOMAIN'] : '.openmhz.com'; var backend_server = process.env['REACT_APP_BACKEND_SERVER'] != null ? process.env['REACT_APP_BACKEND_SERVER'] : 'https://api.openmhz.com'; var frontend_server = process.env['REACT_APP_FRONTEND_SERVER'] != null ? process.env['REACT_APP_FRONTEND_SERVER'] : 'https://openmhz.com'; -var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : 'https://account.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; +var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : 'https://account.openmhz.com'; var dev_server = "http://admin.openmhz.test:3000" module.exports = function(app, passport) { diff --git a/admin/src/Components/About.js b/admin/src/Components/About.js index b02bda7..22e2629 100644 --- a/admin/src/Components/About.js +++ b/admin/src/Components/About.js @@ -7,7 +7,7 @@ const About = () => { return (
Share the Air
-

{process.env.REACT_APP_SITE_NAME} makes it easy to share and archive recordings from Trunk Recorder. +

{process.env.REACT_APP_SITE_NAME} makes it easy to share and archive recordings from Trunk Recorder. Sharing access to these radio systems allows for other members of your community to follow local events. Raising awareness of what our local fire, police and EMS have to go through everyday should lead to greater appreciation for all the work they do that goes largely unseen.

diff --git a/backend/config/express.js b/backend/config/express.js index 00e29f2..0558013 100644 --- a/backend/config/express.js +++ b/backend/config/express.js @@ -4,7 +4,7 @@ var bodyParser = require("body-parser"); var backend_server = process.env['REACT_APP_BACKEND_SERVER'] != null ? process.env['REACT_APP_BACKEND_SERVER'] : 'https://api.openmhz.com'; var frontend_server = process.env['REACT_APP_FRONTEND_SERVER'] != null ? process.env['REACT_APP_FRONTEND_SERVER'] : 'https://openmhz.com'; -var admin_server = process.env['REACT_APP_ADMIN_SERVER'] != null ? process.env['REACT_APP_ADMIN_SERVER'] : 'https://admin.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; +var admin_server = process.env['REACT_APP_ADMIN_SERVER'] != null ? process.env['REACT_APP_ADMIN_SERVER'] : 'https://admin.openmhz.com'; var dev_server = frontend_server + ":3000" diff --git a/backend/controllers/systems.js b/backend/controllers/systems.js index 70eee8f..04aee07 100644 --- a/backend/controllers/systems.js +++ b/backend/controllers/systems.js @@ -4,7 +4,7 @@ var System = require("../models/system"); const Mailjet = require('node-mailjet'); var schedule = require('node-schedule'); -var admin_email = process.env['REACT_APP_ADMIN_EMAIL'] != null ? process.env['REACT_APP_ADMIN_EMAIL'] : "luke@openmhz.com"; +var admin_email = process.env['REACT_APP_ADMIN_EMAIL'] != null ? process.env['REACT_APP_ADMIN_EMAIL'] : "support@openmhz.com"; var admin_server = process.env['REACT_APP_ADMIN_SERVER'] != null ? process.env['REACT_APP_ADMIN_SERVER'] : "https://admin.openmhz.com"; var site_name = process.env['REACT_APP_SITE_NAME'] != null ? process.env['REACT_APP_SITE_NAME'] : "OpenMHz"; diff --git a/frontend/public/app-terms.html b/frontend/public/app-terms.html index ed4eddb..4750c00 100644 --- a/frontend/public/app-terms.html +++ b/frontend/public/app-terms.html @@ -107,7 +107,7 @@

Contact Us

If you have any questions or suggestions about my Terms and Conditions, do not hesitate to contact me - at luke@robotastic.com. + at support@openmhz.com.

This Terms and Conditions page was generated by App Privacy Policy Generator

diff --git a/frontend/public/privacy.html b/frontend/public/privacy.html index bd93e91..1d559df 100644 --- a/frontend/public/privacy.html +++ b/frontend/public/privacy.html @@ -87,7 +87,7 @@ this page.

This policy is effective as of 2023-09-16

Contact Us

If you have any questions or suggestions about my - Privacy Policy, do not hesitate to contact me at luke@robotastic.com. + Privacy Policy, do not hesitate to contact me at support@openmhz.com.

This privacy policy page was created at privacypolicytemplate.net and modified/generated by App Privacy Policy Generator

diff --git a/frontend/server/config/express.js b/frontend/server/config/express.js index 86f9477..21ec263 100644 --- a/frontend/server/config/express.js +++ b/frontend/server/config/express.js @@ -5,10 +5,10 @@ var favicon = require('serve-favicon') const secrets = require("./secrets"); -var cookie_domain = process.env['REACT_APP_COOKIE_DOMAIN'] != null ? process.env['REACT_APP_COOKIE_DOMAIN'] : '.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; +var cookie_domain = process.env['REACT_APP_COOKIE_DOMAIN'] != null ? process.env['REACT_APP_COOKIE_DOMAIN'] : '.openmhz.com'; var backend_server = process.env['REACT_APP_BACKEND_SERVER'] != null ? process.env['REACT_APP_BACKEND_SERVER'] : 'https://api.openmhz.com'; var frontend_server = process.env['REACT_APP_FRONTEND_SERVER'] != null ? process.env['REACT_APP_FRONTEND_SERVER'] : 'https://openmhz.com'; -var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : 'https://account.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; +var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : 'https://account.openmhz.com'; var dev_server = frontend_server + ":3000" module.exports = function(app) { diff --git a/frontend/server/index.js b/frontend/server/index.js index 9f8a60c..47f53e5 100644 --- a/frontend/server/index.js +++ b/frontend/server/index.js @@ -70,136 +70,6 @@ function getCard(req, res, next) { }); } -/* -exports.get_card = function(req, res) { - var objectId = req.params.id; - try { - var o_id = ObjectID.createFromHexString(objectId); - } catch (err) { - console.warn("Error - /card/:id generating ObjectID " + err); - res.status(500); - res.send(JSON.stringify({ - error: err, - "_id": objectId - })); - return; - } - db.get().collection('calls', function(err, transCollection) { - transCollection.findOne({ - '_id': o_id - }, - function(err, item) { - //console.log(util.inspect(item)); - if (item) { - var time = new Date(item.time); - var timeString = time.toLocaleTimeString("en-US"); - var dateString = time.toDateString(); - res.render('card', { - item: item, - channel: channels[item.talkgroupNum], - time: timeString, - date: dateString - }); - } else { - console.warn("Error - /card/:id Could not find Item " + err); - res.send(404, 'Sorry, we cannot find that!'); - } - }); - }); -} -*/ -/* -async function getPodcast(req, res, next) { - const now = new Date().toLocaleString(); - - const feedStart = ` - - - - <![CDATA[ OpenMHz ]]> - - - 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. ]]> - - https://openmhz.com - Podcast for Node - ${now} - - - - - ${now} - - - - - - - 60 - OpenMHz - I am a sub title - 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. - - Luke Berndt - luke@robotastic.com - - false - - - - - ` - - - - const feedEnd = ` - - -` - 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 + ` - - -<![CDATA[ ${podcast.title} ]]> - - - - -${podcast.downloadUrl} - - - -${podcast.eventUrl} -${podcast.startTime} - -OpenMHz -${description} -false - -` - } - - - xml = xml + feedEnd; - res.set('Content-Type', 'text/xml'); - res.send(xml); - }); - - } catch (err) { - console.error(err); - return; - } -}*/ const dateRange = (start, end) => { if (start.getYear() != end.getYear()) { return { "part1": start.toLocaleDateString('en-us', { weekday: "short", year: "numeric", month: "short", day: "numeric" }) + " " + start.toLocaleTimeString([], { hour: 'numeric', minute: '2-digit' }), "part2": end.toLocaleDateString('en-us', { weekday: "short", year: "numeric", month: "short", day: "numeric" }) + " " + end.toLocaleTimeString([], { hour: 'numeric', minute: '2-digit' }) }; @@ -227,14 +97,14 @@ async function getPodcast(req, res, next) { siteUrl: 'https://openmhz.com', imageUrl: 'https://openmhz.com/podcast/cover.png', author: 'OpenMHz', - copyright: '© 2022 Robotastic', + copyright: '© 2026 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' }, + itunesOwner: { name: 'Luke Berndt', email: 'support@openmhz.com' }, itunesExplicit: false, itunesCategory: [{ text: 'Government' diff --git a/frontend/src/About/AboutComponent.js b/frontend/src/About/AboutComponent.js index e25ebec..04e54a6 100644 --- a/frontend/src/About/AboutComponent.js +++ b/frontend/src/About/AboutComponent.js @@ -17,7 +17,7 @@ const AboutComponent = () => {
About
-

I wrote Trunk Recorder because I was curious +

I wrote Trunk Recorder because I was curious about what my local fire station was up to and I put together the original version of OpenMHz because I figured other people might want to listen to the recordings too.

The latest version of this site makes it easy for other people running Trunk Recorder to share their recordings. @@ -39,7 +39,7 @@ const AboutComponent = () => { Where do the different feeds come from - It is a team effort! There are contributors from around country and even internationally, that are running Trunk Recorder to capture local radio systems and sending the transmissions to OpenMHz. + It is a team effort! There are contributors from around country and even internationally, that are running Trunk Recorder to capture local radio systems and sending the transmissions to OpenMHz. @@ -92,7 +92,7 @@ const AboutComponent = () => { I have other questions

- Check out the Terms of Service, there might be an answer there or send me an email at luke@robotastic.com + Check out the Terms of Service, there might be an answer there or send me an email at support@openmhz.com

diff --git a/frontend/src/About/Terms.js b/frontend/src/About/Terms.js index 8e82628..62fad25 100644 --- a/frontend/src/About/Terms.js +++ b/frontend/src/About/Terms.js @@ -55,7 +55,7 @@ You agree not to sell, resell, or offer for any commercial purposes, any portion
5. API Access
-The OpenMHz API is designed solely to support the OpenMHz website frontend and iOS app. You may not use the API for any other purpose without explicit permission from OpenMHz. The infrastructure for OpenMHz has not been well designed, and unauthorized use may result in the whole thing crashing. Additionally, some API calls may place a significant load on the server, and preplanning is required to avoid this. We will allow for API access on a case-by-case basis. Please contact us at: luke@robotastic.com +The OpenMHz API is designed solely to support the OpenMHz website frontend and iOS app. You may not use the API for any other purpose without explicit permission from OpenMHz. The infrastructure for OpenMHz has not been well designed, and unauthorized use may result in the whole thing crashing. Additionally, some API calls may place a significant load on the server, and preplanning is required to avoid this. We will allow for API access on a case-by-case basis. Please contact us at: support@openmhz.com
6. Legal Compliance
@@ -91,7 +91,7 @@ The Services are provided as a labor of love by a single individual. I have a li
14. Contact Me
-If you have any questions or concerns about these Terms, please contact me at luke@robotastic.com. +If you have any questions or concerns about these Terms, please contact me at support@openmhz.com. By using OpenMHz, you acknowledge that you have read, understood, and agree to be bound by these Terms of Service. Thank you for using our Services! diff --git a/frontend/src/Call/components/PlaylistBuilder.js b/frontend/src/Call/components/PlaylistBuilder.js index bfbd6c2..2d2a5fb 100644 --- a/frontend/src/Call/components/PlaylistBuilder.js +++ b/frontend/src/Call/components/PlaylistBuilder.js @@ -159,7 +159,7 @@ function PlaylistBuilder(props) { - The Events feature is a work in progress! Things may break, change, or get deleted. Contact me with ideas or problems: luke@robotastic.com + The Events feature is a work in progress! Things may break, change, or get deleted. Contact me with ideas or problems: support@openmhz.com
Event
diff --git a/frontend/src/Main/Main.js b/frontend/src/Main/Main.js index 6f0425a..ba46402 100644 --- a/frontend/src/Main/Main.js +++ b/frontend/src/Main/Main.js @@ -650,7 +650,7 @@ const Main = (props) => { Join us! Record a local radio system and share it with the world. If you have a spare computer, it is easy to get started. With a $25 SDR or two, you can capture an entire system. It does take a little bit of work to get things setup, but we are here to help and answer questions.

- + diff --git a/frontend/src/System/ContactModal.js b/frontend/src/System/ContactModal.js index c606a8e..9147506 100644 --- a/frontend/src/System/ContactModal.js +++ b/frontend/src/System/ContactModal.js @@ -64,7 +64,7 @@ function ContactModal(props) {

If you have general questions about OpenMHz send me an email,

-

- Luke luke@robotastic.com

+

- Luke support@openmhz.com