diff --git a/jam-ui/src/components/public/JKDownloads.js b/jam-ui/src/components/public/JKDownloads.js index 47a5b1f06..c06eb6bcb 100644 --- a/jam-ui/src/components/public/JKDownloads.js +++ b/jam-ui/src/components/public/JKDownloads.js @@ -116,7 +116,7 @@ const JKDownloads = () => {
Download the free JamKazam app
{/*

{currentOS}

*/} -

+

You must use the JamKazam app to get into online sessions with other musicians. Our app also gives you the most feature-rich experience for JamTracks, recordings, live broadcasting, and other features. Click the button below to download the JamKazam app installer, then double click the installer to run it. For more detailed instructions,  {isMacOS ? see this help article : isWindows && see this help article}.

@@ -126,7 +126,7 @@ const JKDownloads = () => { Download JamKazam
-
+
Need a different version?
-
+
Need a different version?
    {availablePlatforms.filter(platform => platform !== selectedPlatform).map(platform => ( @@ -142,7 +142,7 @@ const JKDownloadsLegacy = () => {
-
+
System Requirements
{selectedPlatform === 'MacOSX' ? (

diff --git a/jam-ui/src/components/public/JKObsDownloads.js b/jam-ui/src/components/public/JKObsDownloads.js index ce00b8f48..2a200912a 100644 --- a/jam-ui/src/components/public/JKObsDownloads.js +++ b/jam-ui/src/components/public/JKObsDownloads.js @@ -1,20 +1,20 @@ import React, { useState, useEffect } from 'react' import { detectOS, isAppleSilicon } from '../../helpers/utils' -import { getClientDownloads } from '../../helpers/rest' +import {getClientDownloads, getObsPluginDownloads} from '../../helpers/rest' import { Link } from 'react-router-dom' -const DownloadButtonMacAppleMx = '/img/downloads/Download-Button-Obs-Mac-Apple-Mx.svg' -const DownloadButtonMacIntel = '/img/downloads/Download-Button-Obs-Mac-Intel.svg' -const DownloadButtonWindows = '/img/downloads/Download-Button-Obs-Windows.svg' +const DownloadButtonMacAppleMx = '/img/downloads/Download-Button-Obs-Mac-Apple-Mx.png' +const DownloadButtonMacIntel = '/img/downloads/Download-Button-Obs-Mac-Intel.png' +const DownloadButtonWindows = '/img/downloads/Download-Button-Obs-Windows.png' -const JKDownloads = () => { +const JKObsDownloads = () => { const [currentOS, setCurrentOS] = useState(null) const [downloads, setDownloads] = useState({}) const availablePlatforms = React.useMemo(() => { const keys = Object.keys(downloads) //only show JamClientModern versions - const sortedStrings = keys.filter(key => key.startsWith('JamClientModern') && key !== 'MacOSX').map(key => key.substring('JamClientModern/'.length)) + const sortedStrings = keys.filter(key => key.startsWith('OBSPlugin')).map(key => key.substring('OBSPlugin/'.length)) return sortedStrings }, [downloads]) @@ -38,7 +38,7 @@ const JKDownloads = () => { } const fetchClientDownloads = () => { - getClientDownloads() + getObsPluginDownloads() .then(resp => { if (resp.status === 200) { return resp.json() @@ -46,7 +46,7 @@ const JKDownloads = () => { }).then(data => { const platforms = Object.keys(data) const downloadUris = {} - platforms.filter(p => p === 'JamClientModern/MacOSX-M' || p === 'JamClientModern/MacOSX-Intel' || p === 'JamClientModern/Win32').forEach(platform => { + platforms.filter(p => p === 'OBSPlugin/MacOSX-M' || p === 'OBSPlugin/MacOSX-Intel' || p === 'OBSPlugin/Win32').forEach(platform => { downloadUris[platform] = data[platform].uri }) setDownloads(downloadUris) @@ -63,7 +63,7 @@ const JKDownloads = () => { const downloadLink = React.useMemo(() => { if (!currentOS) return null - return downloads[`JamClientModern/${currentOS}`] + return downloads[`OBSPlugin/${currentOS}`] }, [currentOS]); const selectPlatform = (platform) => { @@ -114,11 +114,22 @@ const JKDownloads = () => { <> {Object.keys(downloads).length > 0 && currentOS ? (

-
Download the free JamKazam app
+
Download and install OBS Studio
{/*

{currentOS}

*/}

- You must use the JamKazam app to get into online sessions with other musicians. Our app also gives you the most feature-rich experience for JamTracks, recordings, live broadcasting, and other features. Click the button below to download the JamKazam app installer, then double click the installer to run it. For more detailed instructions,  - {isMacOS ? see this help article : isWindows && see this help article}. + +Before installing the JamKazam plugin for OBS, you must first download and install OBS Studio. + If you have not already done so, follow the instructions in this help article to download + and install OBS Studio version 30.2.3. Please note that you cannot use OBS video features with the legacy + JamKazam application - only with the current version of our app. +

+
Download and install JamKazam plugin for OBS
+

+ After installing OBS Studio as explained above, you'll need to install the JamKazam + plugin for OBS. This plugin lets JamKazam and OBS Studio work together. Click the button + below to download the plugin installer. When the download is complete, double click the + installer, and then follow the on-screen instructions to install the plugin. For more detailed + instructions, see this help article.

@@ -126,7 +137,7 @@ const JKDownloads = () => { Download JamKazam
-
+
Need a different version?
    {availablePlatforms.filter(platform => platform !== currentOS).map(platform => ( @@ -135,48 +146,23 @@ const JKDownloads = () => {
-
-
System Requirements
+
+
System Requirements
{isMacOS ? (

- To play an online session on JamKazam, you will need the following:
- - macOS 10.15 (Catalina) or higher
- - 75MB hard disk space for app installation
- - External audio interface for audio processing (see recommendations if you don't have one)
- - Ability to connect computer to home router using Ethernet cable. WiFi not recommended (learn how to do this)
- - Broadband internet service with at least 1Mbps download and upload bandwidth (3-5Mbps preferred)
+ To install the JamKazam plugin for OBS Studio:
+ - OBS Studio version 30.2.3 must already be installed on your computer
+ - Your Mac must be running macOS 10.15 (Catalina) or higher

) : isWindows ? (

- To play an online session on JamKazam, you will need the following:
- - Windows 10 or 11, 64-bit (32-bit not supported)
- - Dual core processor or higher (quad or higher preferred)
- - 75MB hard disk space for app installation
- - External audio interface for audio processing (see recommendations if you don't have one)
- - Ability to connect computer to home router using Ethernet cable, WiFi not recommended (learn how to do this)
- - Broadband Internet service with at least 1Mbps download and upload bandwidth (3-5Mbps preferred) + To install the JamKazam plugin for OBS Studio
+ - OBS Studio version 30.2.3 must already be installed on your computer
+ - Your computer must be running Windows 10 or 11, 64-bit (32-bit not supported)

) : null}
- - {isMacOS ? ( -
-
Instructions for Users With Older Macs
-

- If your Mac cannot support macOS 10.15 (Catalina) or higher, you can still play with everyone else on JamKazam using our legacy app. To do this, click here to go to a page where you can download JamKazam legacy app for older Macs. Download and install legacy app on your computer. Then read this help article about how to use the legacy app. -

-
- ) : isWindows ? ( -
-
Instructions for Users With Older Windows PCs
-

- If your Windows computer cannot support Win10 or Win11, you can still play with everyone else on JamKazam using our legacy app. To do this click here to go to a page where you can download the JamKazam legacy app for older Windows PCs. Download and install the legacy app on your Win7 computer. Then read this help article about how to use the legacy app. -

-
- ) : null} - -
) : (
Loading...
@@ -185,4 +171,4 @@ const JKDownloads = () => { ) } -export default JKDownloads \ No newline at end of file +export default JKObsDownloads \ No newline at end of file diff --git a/jam-ui/src/helpers/rest.js b/jam-ui/src/helpers/rest.js index 13c1673f4..aabcbee09 100644 --- a/jam-ui/src/helpers/rest.js +++ b/jam-ui/src/helpers/rest.js @@ -661,6 +661,13 @@ export const getClientDownloads = () => { .catch(error => reject(error)); }); } +export const getObsPluginDownloads = () => { + return new Promise((resolve, reject) => { + apiFetch(`/artifacts/OBSPlugin`) + .then(response => resolve(response)) + .catch(error => reject(error)); + }); +} //paypalPlaceOrder export const paypalPlaceOrder = (options = {}) => { diff --git a/jam-ui/src/layouts/JKPublicRoutes.js b/jam-ui/src/layouts/JKPublicRoutes.js index 19c2b621e..9b09ef6ba 100644 --- a/jam-ui/src/layouts/JKPublicRoutes.js +++ b/jam-ui/src/layouts/JKPublicRoutes.js @@ -10,6 +10,7 @@ import JKForum from '../components/public/help/JKForum'; import JKUnsubscribe from '../components/public/JKUnsubscribe'; import JKDownloads from '../components/public/JKDownloads'; import JKDownloadsLegacy from '../components/public/JKDownloadsLegacy'; +import JKObsDownloads from '../components/public/JKObsDownloads'; import JKJamTracksLanding from '../components/jamtracks/JKJamTracksLandingDev'; import JKJamTracksArtistLanding from '../components/jamtracks/JKJamTracksArtistLandingDev'; @@ -24,7 +25,7 @@ const JKPublicRoutes = ({ match: { url } }) => ( - + diff --git a/web/app/controllers/artifacts_controller.rb b/web/app/controllers/artifacts_controller.rb index c1232b8db..173c29b15 100644 --- a/web/app/controllers/artifacts_controller.rb +++ b/web/app/controllers/artifacts_controller.rb @@ -16,7 +16,13 @@ class ArtifactsController < ApiController clients = ArtifactUpdate.where('product ilike ? and environment = ?', "JamClient/#{params[:type]}", ArtifactUpdate::DEFAULT_ENVIRONMENT).order(:product) end else - clients = ArtifactUpdate.where("product like '%JamClient%' and environment = '#{ArtifactUpdate::DEFAULT_ENVIRONMENT}'").order(:product) + if params[:type] + clients = ArtifactUpdate.where("product like ? and environment = '#{ArtifactUpdate::DEFAULT_ENVIRONMENT}'", "%" + params[:type] + "%").order(:product) + else + clients = ArtifactUpdate.where("product like '%JamClient%' and environment = '#{ArtifactUpdate::DEFAULT_ENVIRONMENT}'").order(:product) + + end + end if is_jamblaster && params[:serialno]