From 9522f60e60a4d4c9248ea2010fdb297a839ea199 Mon Sep 17 00:00:00 2001 From: Luke Berndt Date: Sun, 17 Nov 2024 08:34:49 -0500 Subject: [PATCH] updated about page --- admin/server/controllers/systems.js | 2 - frontend/src/About/AboutComponent.js | 83 +++++++++++++++++++-- frontend/src/About/Terms.js | 105 +++++++++++++++++++++++++++ frontend/src/app.js | 2 + 4 files changed, 182 insertions(+), 10 deletions(-) create mode 100644 frontend/src/About/Terms.js diff --git a/admin/server/controllers/systems.js b/admin/server/controllers/systems.js index 33618c6..44ef108 100644 --- a/admin/server/controllers/systems.js +++ b/admin/server/controllers/systems.js @@ -339,8 +339,6 @@ exports.uniqueShortName = async function (req, res, next) { } else { next(); } - - } catch (err) { console.error("ERROR: Unique ShortName - caught: " + err); res.status(500); diff --git a/frontend/src/About/AboutComponent.js b/frontend/src/About/AboutComponent.js index dbfa3d7..b778e45 100644 --- a/frontend/src/About/AboutComponent.js +++ b/frontend/src/About/AboutComponent.js @@ -1,6 +1,6 @@ -import React, {useState} from "react"; +import React, { useState } from "react"; import { Link } from 'react-router-dom' -import { Container, Header, Divider, Icon, Menu, Button, Accordion, } from "semantic-ui-react"; +import { Container, Header, Divider, Icon, Menu, Button, List, ListContent, ListIcon, ListItem, ListDescription, ListHeader, LabelDetail } from "semantic-ui-react"; const AboutComponent = () => { @@ -14,19 +14,21 @@ const AboutComponent = () => { const panels = [ { key: 'feeds', - title: {content: (Where do the different feeds come from?)}, + title: { content: (Where do the different feeds come from?) }, content: [ 'It is a team effort! There are contributers from around country and even internationally, that are running Trunk Recorder to capture local radio systems and sending the transmissions to OpenMHz.', ].join(' '), } ] - + return (
Home + Events Listen + Terms of Service
About
@@ -39,7 +41,7 @@ const AboutComponent = () => { lead to a greater appreciation for all the work they do, which goes largely unseen.

The audio from each system is archived for 30 days, so you can go back and listen to events you may have missed.

-

- Luke luke@robotastic.com

+

- Luke

100% Open Source

Have changes you would like to suggest? Want to run your own server for your community? All of the code for OpenMHz is available as open source:

@@ -48,13 +50,78 @@ const AboutComponent = () => {

If OpenMHz brings you joy, think about becoming a supporter! It will cover hosting costs and help keep me focused on development.

FAQ
- - + + + + + 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. + + + + + + + My favorite System has disappeared + +

+ Since all of the system feed are contributed by the community, there is not much I can do to bring it back. Your best bet is to reach out to the contributor to check on the status of the feed. + Often times, the feed is just down for maintenance.

+

You can send a Message to the contributor by:

+
    +
  • going to Systems
  • +
  • finding that system
  • +
  • and clicking on the Message button
  • +
+ +

If the System doesn't come back, think about running your own Trunk Recorder and contributing the feed to OpenMHz!

+
+
+
+ + + + Can I use audio from OpenMHz + +

Yes! You can use the audio from OpenMHz as long as you give credit to OpenMHz. You can't use the audio to misrepresent a situation or for any unlawful purpose.

+

BUT - if lots of people are listening to the audio from your site, you should host the audio yourself and not use OpenMHz's infrastructure. Linking to the OpenMHz website is acceptable, linking directly to the audio files is not.

+
+
+
+ + + + Can I use OpenMHz's API + +

+ Please don't - the API is designed solely to support the OpenMHz website frontend and iOS app. 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. In the future, I do want to create a public API that the community can use. +

+
+
+
+ + + + 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 +

+
+
+
+
+ +
); diff --git a/frontend/src/About/Terms.js b/frontend/src/About/Terms.js new file mode 100644 index 0000000..8e82628 --- /dev/null +++ b/frontend/src/About/Terms.js @@ -0,0 +1,105 @@ +import React from "react"; +import { Link } from 'react-router-dom' +import { Segment, Container,Header, Menu, Icon } from "semantic-ui-react"; + + +const Terms = () => { + return ( +
+ + + Home + Events + Listen + Terms of Service + + +
Terms of Service
+Last updated: June 28, 2024 + +
Introduction
+ +Welcome and thank you for using OpenMHz. While it has been written and maintained by one person, the community around OpenMHz is very generous in contributing code and recordings. The goal of the Terms of Service is to help better define the relationship between OpenMHz and the people who use it. + +When we say “Company”, "I", "me", “we”, “our”, or “us” in this document, we are referring to Robotastic, which is a Sole Proprietorship based in Washington, DC. + +When we say “Services”, we mean any product created and maintained by Robotastic. That includes the OpenMHz.com website, content, API, and podcast, whether delivered within a web browser, desktop application, mobile application, or another format. + +When we say “You” or “your”, we are referring to the people or organizations that own an account with one or more of our Services. + +We may update these Terms of Service ("Terms") in the future. You can track all changes made since mid-2024 on GitHub. Typically these changes have been to clarify some of these terms by linking to an expanded related policy. Whenever we make a significant change to our policies, we will refresh the date at the top of this page and take any other appropriate steps to notify account holders. + +When you use our Services, now or in the future, you are agreeing to the latest Terms. There may be times where we do not exercise or enforce a right or provision of the Terms; however, that does not mean we are waiving that right or provision. These Terms do contain a limitation of our liability. + +If you violate any of the Terms, we may terminate your account. That’s a broad statement and it means you need to place a lot of trust in us. + +
1. Use of Services
+ +OpenMHz provides access to live and archived audio from public safety radio systems, as well as associated metadata and statistics ("Content"). You may access this content through the web interface and iOS app. Additionally, you may contribute Content to OpenMHz using our API. + +
2. Contributing Content
+ +By contributing Content to OpenMHz, you grant OpenMHz a perpetual, irrevocable, worldwide, royalty-free license to distribute, sublicense, and otherwise make the Content available to others. + +
3. Reuse of Content
+ +You may reuse Content obtained from the OpenMHz website and app, subject to the following conditions: +- Credit is given to OpenMHz, if it is feasible for the type of distribution medium and it doesn't make things look ugly for You. +- The Content is not provided en masse to others via scraping or other means. +- The Content is not used to misrepresent a situation or for any unlawful purpose. +- The Content is hosted by You and does not make use of OpenMHz's infrastructure. Linking to the OpenMHz website is acceptable, linking directly to the audio files is not. + +
4. No Resale of Services
+ +You agree not to sell, resell, or offer for any commercial purposes, any portion of OpenMHz. This includes the wrapping of the OpenMHz website as a mobile or desktop app. + +
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 + +
6. Legal Compliance
+ +Contributors are solely responsible for ensuring that the contributed Content provided to OpenMHz complies with all applicable laws and regulations. OpenMHz is not liable for any Content that violates legal statutes. + +
7. Right to Remove Content
+ +OpenMHz reserves the right to remove any recordings from our Services at our discretion, for any reason, without prior notice. + +
8. No Guarantees
+ +OpenMHz does not guarantee that our Services will be available at all times or that they will function without interruption or errors. We provide our Services “as is” and “as available,” without any warranties of any kind, either express or implied. While we strive to provide accurate information, we do not guarantee that the Content on our Services is complete, accurate, or up-to-date. There is a good chance that at some point in time I will mess up and accidentally delete the database for the website and associated recordings. You should not assume that contributed Content will be reliably maintained. + +
9. Limitation of Liability
+ +To the fullest extent permitted by law, OpenMHz shall not be liable for any direct, indirect, incidental, special, consequential, or punitive damages arising out of your use of, or inability to use, our Services. + +
10. Amendments
+ +OpenMHz reserves the right to amend these Terms at any time. Your continued use of our Services following any changes indicates your acceptance of the new Terms. + +
11. OpenMHz Intellectual Property
+ +All intellectual property rights in the Services, including trademarks, logos, and any content created by OpenMHz, are owned by Robotastic. You may use the OpenMHz name to describe where content was obtained from. Do not you use the OpenMHz name in a way that implies endorsement or affiliation with OpenMHz. Do not call your App OpenMHz. + +
12. Indemnification
+ +You agree to indemnify, defend, and hold harmless OpenMHz, its officers, directors, employees, and agents from and against any claims, liabilities, damages, losses, and expenses, including reasonable attorney’s fees, arising out of or in any way connected with your access to or use of the Services or your violation of these Terms. + +
13. Be Nice
+ +The Services are provided as a labor of love by a single individual. I have a limited amount of time to work on the Services and funding to support the infrastructure. Please keep this in mind as you use the Services and act respectfully. + +
14. Contact Me
+ +If you have any questions or concerns about these Terms, please contact me at luke@robotastic.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! + +These Terms were written to help set expectations around usage. If you think something is missing or could be better stated, please reach out. +
+
+
+ ); +}; + +export default Terms; diff --git a/frontend/src/app.js b/frontend/src/app.js index 8fcb605..f4c0ef7 100644 --- a/frontend/src/app.js +++ b/frontend/src/app.js @@ -15,6 +15,7 @@ import ListSystems from "./System/ListSystems" import Calls from "./Call/Calls" import AboutComponent from "./About/AboutComponent" +import Terms from "./About/Terms" // Event import ListEvents from "./Event/ListEvents" @@ -34,6 +35,7 @@ return ( } /> } /> } /> + } /> ) }