From 00b6759c4b853a5bf7454f60f7cc8f90485ece98 Mon Sep 17 00:00:00 2001 From: P-M Lejon <15982689+pmex@users.noreply.github.com> Date: Tue, 18 Feb 2025 11:11:04 +0100 Subject: [PATCH 1/4] Add Blackmagic DaVinci Resolve Studio --- fragments/labels/davinciresolvestudio.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 fragments/labels/davinciresolvestudio.sh diff --git a/fragments/labels/davinciresolvestudio.sh b/fragments/labels/davinciresolvestudio.sh new file mode 100644 index 000000000..d16fbb947 --- /dev/null +++ b/fragments/labels/davinciresolvestudio.sh @@ -0,0 +1,17 @@ +davinciresolvestudio | \ +blackmagicdavinciresolvestudio) + name="DaVinci Resolve Studio" + appName="DaVinci Resolve/DaVinci Resolve.app" + type="pkgInDmgInZip" + downloadURL=$(curl --compressed --location --header "Content-Type: application/json;charset=UTF-8" --header "User-Agent: Mozilla/5.0" --data '{"country": "us", "platform": "Mac OS X", "product": "Videohub"}' \ + "$(curl -fs https://www.blackmagicdesign.com/api/support/us/downloads.json | /usr/bin/osascript -l 'JavaScript' \ + -e "let json = $.NSString.alloc.initWithDataEncoding($.NSFileHandle.fileHandleWithStandardInput.readDataToEndOfFile$(/usr/bin/uname -r | /usr/bin/awk -F '.' '($1 > 18) { print "AndReturnError(ObjC.wrap())" }'), $.NSUTF8StringEncoding)" \ + -e 'if ($.NSFileManager.defaultManager.fileExistsAtPath(json)) json = $.NSString.stringWithContentsOfFileEncodingError(json, $.NSUTF8StringEncoding, ObjC.wrap())' \ + -e 'parsed = JSON.parse(json.js)' \ + -e "update = parsed.downloads.filter((download) => download.name.match(/^DaVinci Resolve Studio/))[0]" \ + -e 'download_id = update.urls["Mac OS X"][0].downloadId' \ + -e '"https://www.blackmagicdesign.com/api/register/us/download/" + download_id')") + appNewVersion=$(echo ${downloadURL} | grep -oE '/v([0-9.]+)' | cut -d'v' -f2) + blockingProcesses=( Resolve "DaVinci Control Panels Setup" "DaVinci Remote Monitor" "Fairlight Studio Utility" ) + expectedTeamID="9ZGFBWLSYP" + ;; From 4973b77dcf3b19b63edc6a42ba28965fa82a581a Mon Sep 17 00:00:00 2001 From: P-M Lejon <15982689+pmex@users.noreply.github.com> Date: Tue, 9 Sep 2025 11:01:51 +0200 Subject: [PATCH 2/4] jq instead of javascript for appNewVersion --- fragments/labels/davinciresolvestudio.sh | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/fragments/labels/davinciresolvestudio.sh b/fragments/labels/davinciresolvestudio.sh index d16fbb947..b104dd636 100644 --- a/fragments/labels/davinciresolvestudio.sh +++ b/fragments/labels/davinciresolvestudio.sh @@ -3,14 +3,9 @@ blackmagicdavinciresolvestudio) name="DaVinci Resolve Studio" appName="DaVinci Resolve/DaVinci Resolve.app" type="pkgInDmgInZip" - downloadURL=$(curl --compressed --location --header "Content-Type: application/json;charset=UTF-8" --header "User-Agent: Mozilla/5.0" --data '{"country": "us", "platform": "Mac OS X", "product": "Videohub"}' \ - "$(curl -fs https://www.blackmagicdesign.com/api/support/us/downloads.json | /usr/bin/osascript -l 'JavaScript' \ - -e "let json = $.NSString.alloc.initWithDataEncoding($.NSFileHandle.fileHandleWithStandardInput.readDataToEndOfFile$(/usr/bin/uname -r | /usr/bin/awk -F '.' '($1 > 18) { print "AndReturnError(ObjC.wrap())" }'), $.NSUTF8StringEncoding)" \ - -e 'if ($.NSFileManager.defaultManager.fileExistsAtPath(json)) json = $.NSString.stringWithContentsOfFileEncodingError(json, $.NSUTF8StringEncoding, ObjC.wrap())' \ - -e 'parsed = JSON.parse(json.js)' \ - -e "update = parsed.downloads.filter((download) => download.name.match(/^DaVinci Resolve Studio/))[0]" \ - -e 'download_id = update.urls["Mac OS X"][0].downloadId' \ - -e '"https://www.blackmagicdesign.com/api/register/us/download/" + download_id')") + downloadID=$(curl -fs https://www.blackmagicdesign.com/api/support/us/downloads.json | jq -r '[.downloads.[]|select(.name | startswith ("DaVinci Resolve Studio"))][0].urls|."Mac OS X".[].downloadId') + downloadURL=$(curl --compressed --location --header "Content-Type: application/json;charset=UTF-8" --header "User-Agent: Mozilla/5.0" --data '{"country": "us", "platform": "Mac OS X", "product": "DaVinci Resolve Studio"}' \ + "https://www.blackmagicdesign.com/api/register/us/download/${downloadID}") appNewVersion=$(echo ${downloadURL} | grep -oE '/v([0-9.]+)' | cut -d'v' -f2) blockingProcesses=( Resolve "DaVinci Control Panels Setup" "DaVinci Remote Monitor" "Fairlight Studio Utility" ) expectedTeamID="9ZGFBWLSYP" From 858d848a522d64280ff4776e7665f08b3485fb72 Mon Sep 17 00:00:00 2001 From: P-M Lejon <15982689+pmex@users.noreply.github.com> Date: Wed, 10 Sep 2025 13:21:05 +0200 Subject: [PATCH 3/4] Add support for url with only two digits --- fragments/labels/davinciresolvestudio.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fragments/labels/davinciresolvestudio.sh b/fragments/labels/davinciresolvestudio.sh index b104dd636..bd81c1da5 100644 --- a/fragments/labels/davinciresolvestudio.sh +++ b/fragments/labels/davinciresolvestudio.sh @@ -6,7 +6,12 @@ blackmagicdavinciresolvestudio) downloadID=$(curl -fs https://www.blackmagicdesign.com/api/support/us/downloads.json | jq -r '[.downloads.[]|select(.name | startswith ("DaVinci Resolve Studio"))][0].urls|."Mac OS X".[].downloadId') downloadURL=$(curl --compressed --location --header "Content-Type: application/json;charset=UTF-8" --header "User-Agent: Mozilla/5.0" --data '{"country": "us", "platform": "Mac OS X", "product": "DaVinci Resolve Studio"}' \ "https://www.blackmagicdesign.com/api/register/us/download/${downloadID}") - appNewVersion=$(echo ${downloadURL} | grep -oE '/v([0-9.]+)' | cut -d'v' -f2) + appNewVersionRAW=$(echo ${downloadURL} | grep -oE '_([0-9.]+)' | cut -d'_' -f2) + if [[ $(echo ${appNewVersionRAW} | awk -F'.' '{ print NF }') -gt 2 ]]; then + appNewVersion="${appNewVersionRAW}" + else + appNewVersion="${appNewVersionRAW}.0" + fi blockingProcesses=( Resolve "DaVinci Control Panels Setup" "DaVinci Remote Monitor" "Fairlight Studio Utility" ) expectedTeamID="9ZGFBWLSYP" ;; From 531db619af8486e3ae390a78d7f521dd84f1c13a Mon Sep 17 00:00:00 2001 From: P-M Lejon <15982689+pmex@users.noreply.github.com> Date: Wed, 10 Sep 2025 14:00:43 +0200 Subject: [PATCH 4/4] appNewVersion based on json instead of url parsing --- fragments/labels/davinciresolvestudio.sh | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/fragments/labels/davinciresolvestudio.sh b/fragments/labels/davinciresolvestudio.sh index bd81c1da5..137974686 100644 --- a/fragments/labels/davinciresolvestudio.sh +++ b/fragments/labels/davinciresolvestudio.sh @@ -6,12 +6,7 @@ blackmagicdavinciresolvestudio) downloadID=$(curl -fs https://www.blackmagicdesign.com/api/support/us/downloads.json | jq -r '[.downloads.[]|select(.name | startswith ("DaVinci Resolve Studio"))][0].urls|."Mac OS X".[].downloadId') downloadURL=$(curl --compressed --location --header "Content-Type: application/json;charset=UTF-8" --header "User-Agent: Mozilla/5.0" --data '{"country": "us", "platform": "Mac OS X", "product": "DaVinci Resolve Studio"}' \ "https://www.blackmagicdesign.com/api/register/us/download/${downloadID}") - appNewVersionRAW=$(echo ${downloadURL} | grep -oE '_([0-9.]+)' | cut -d'_' -f2) - if [[ $(echo ${appNewVersionRAW} | awk -F'.' '{ print NF }') -gt 2 ]]; then - appNewVersion="${appNewVersionRAW}" - else - appNewVersion="${appNewVersionRAW}.0" - fi + appNewVersion=$(curl -fs https://www.blackmagicdesign.com/api/support/us/downloads.json | jq -r '[.downloads.[]|select(.name | startswith ("DaVinci Resolve Studio"))][0].urls|."Mac OS X".[]|"\(.major).\(.minor).\(.releaseNum)"') blockingProcesses=( Resolve "DaVinci Control Panels Setup" "DaVinci Remote Monitor" "Fairlight Studio Utility" ) expectedTeamID="9ZGFBWLSYP" ;;